[Midnightbsd-cvs] src [9115] trunk/sys/dev/cxgbe: rollback driver to before toecore changes.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat Oct 1 20:13:34 EDT 2016
Revision: 9115
http://svnweb.midnightbsd.org/src/?rev=9115
Author: laffer1
Date: 2016-10-01 20:13:34 -0400 (Sat, 01 Oct 2016)
Log Message:
-----------
rollback driver to before toecore changes.
Modified Paths:
--------------
trunk/sys/dev/cxgbe/adapter.h
trunk/sys/dev/cxgbe/common/common.h
trunk/sys/dev/cxgbe/common/t4_hw.c
trunk/sys/dev/cxgbe/common/t4_hw.h
trunk/sys/dev/cxgbe/common/t4_msg.h
trunk/sys/dev/cxgbe/common/t4_regs.h
trunk/sys/dev/cxgbe/common/t4_regs_values.h
trunk/sys/dev/cxgbe/common/t4_tcb.h
trunk/sys/dev/cxgbe/firmware/t4fw_cfg.txt
trunk/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt
trunk/sys/dev/cxgbe/firmware/t4fw_interface.h
trunk/sys/dev/cxgbe/offload.h
trunk/sys/dev/cxgbe/osdep.h
trunk/sys/dev/cxgbe/t4_ioctl.h
trunk/sys/dev/cxgbe/t4_l2t.c
trunk/sys/dev/cxgbe/t4_l2t.h
trunk/sys/dev/cxgbe/t4_main.c
trunk/sys/dev/cxgbe/t4_sge.c
trunk/sys/dev/cxgbe/tom/t4_connect.c
trunk/sys/dev/cxgbe/tom/t4_cpl_io.c
trunk/sys/dev/cxgbe/tom/t4_ddp.c
trunk/sys/dev/cxgbe/tom/t4_listen.c
trunk/sys/dev/cxgbe/tom/t4_tom.c
trunk/sys/dev/cxgbe/tom/t4_tom.h
trunk/sys/dev/cxgbe/tom/t4_tom_l2t.c
trunk/sys/dev/cxgbe/tom/t4_tom_l2t.h
Added Paths:
-----------
trunk/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu
Modified: trunk/sys/dev/cxgbe/adapter.h
===================================================================
--- trunk/sys/dev/cxgbe/adapter.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/adapter.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/adapter.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/adapter.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -50,6 +50,9 @@
#include "offload.h"
#include "firmware/t4fw_interface.h"
+#define T4_CFGNAME "t4fw_cfg"
+#define T4_FWNAME "t4fw"
+
MALLOC_DECLARE(M_CXGBE);
#define CXGBE_UNIMPLEMENTED(s) \
panic("%s (%s, line %d) not implemented yet.", s, __FILE__, __LINE__)
@@ -132,6 +135,7 @@
#else
FL_BUF_SIZES = 3, /* cluster, jumbo9k, jumbo16k */
#endif
+ OFLD_BUF_SIZE = MJUM16BYTES, /* size of fl buffer for TOE rxq */
CTRL_EQ_QSIZE = 128,
@@ -140,6 +144,12 @@
TX_WR_FLITS = SGE_MAX_WR_LEN / 8
};
+#ifdef T4_PKT_TIMESTAMP
+#define RX_COPY_THRESHOLD (MINCLSIZE - 8)
+#else
+#define RX_COPY_THRESHOLD MINCLSIZE
+#endif
+
enum {
/* adapter intr_type */
INTR_INTX = (1 << 0),
@@ -218,7 +228,6 @@
int qsize_rxq;
int qsize_txq;
- int linkdnrc;
struct link_config link_cfg;
struct port_stats stats;
@@ -318,9 +327,6 @@
EQ_STALLED = (1 << 6), /* out of hw descriptors or dmamaps */
};
-/* Listed in order of preference. Update t4_sysctls too if you change these */
-enum {DOORBELL_UDB, DOORBELL_WCWR, DOORBELL_UDBWC, DOORBELL_KDB};
-
/*
* Egress Queue: driver is producer, T4 is consumer.
*
@@ -338,9 +344,6 @@
struct tx_desc *desc; /* KVA of descriptor ring */
bus_addr_t ba; /* bus address of descriptor ring */
struct sge_qstat *spg; /* status page, for convenience */
- int doorbells;
- volatile uint32_t *udb; /* KVA of doorbell (lies within BAR2) */
- u_int udb_qid; /* relative qid within the doorbell page */
uint16_t cap; /* max # of desc, for convenience */
uint16_t avail; /* available descriptors, for convenience */
uint16_t qsize; /* size (# of entries) of the queue */
@@ -493,7 +496,6 @@
int timer_val[SGE_NTIMERS];
int counter_val[SGE_NCOUNTERS];
int fl_starve_threshold;
- int s_qpp;
int nrxq; /* total # of Ethernet rx queues */
int ntxq; /* total # of Ethernet tx tx queues */
@@ -539,9 +541,6 @@
bus_space_handle_t bh;
bus_space_tag_t bt;
bus_size_t mmio_len;
- int udbs_rid;
- struct resource *udbs_res;
- volatile uint8_t *udbs_base;
unsigned int pf;
unsigned int mbox;
@@ -562,6 +561,7 @@
struct taskqueue *tq[NCHAN]; /* taskqueues that flush data out */
struct port_info *port[MAX_NPORTS];
uint8_t chan_map[NCHAN];
+ uint32_t filter_mode;
#ifdef TCP_OFFLOAD
void *tom_softc; /* (struct tom_data *) */
@@ -570,7 +570,6 @@
struct l2t_data *l2t; /* L2 table */
struct tid_info tids;
- int doorbells;
int open_device_map;
#ifdef TCP_OFFLOAD
int offload_map;
@@ -749,24 +748,15 @@
bcopy(hw_addr, sc->port[idx]->hw_addr, ETHER_ADDR_LEN);
}
-static inline bool
-is_10G_port(const struct port_info *pi)
+static inline bool is_10G_port(const struct port_info *pi)
{
return ((pi->link_cfg.supported & FW_PORT_CAP_SPEED_10G) != 0);
}
-static inline bool
-is_40G_port(const struct port_info *pi)
+static inline int tx_resume_threshold(struct sge_eq *eq)
{
- return ((pi->link_cfg.supported & FW_PORT_CAP_SPEED_40G) != 0);
-}
-
-static inline int
-tx_resume_threshold(struct sge_eq *eq)
-{
-
return (eq->qsize / 4);
}
@@ -777,7 +767,7 @@
int t4_os_pci_save_state(struct adapter *);
int t4_os_pci_restore_state(struct adapter *);
void t4_os_portmod_changed(const struct adapter *, int);
-void t4_os_link_changed(struct adapter *, int, int, int);
+void t4_os_link_changed(struct adapter *, int, int);
void t4_iterate(void (*)(struct adapter *, void *), void *);
int t4_register_cpl_handler(struct adapter *, int, cpl_handler_t);
int t4_register_an_handler(struct adapter *, an_handler_t);
@@ -788,9 +778,7 @@
/* t4_sge.c */
void t4_sge_modload(void);
-void t4_init_sge_cpl_handlers(struct adapter *);
-void t4_tweak_chip_settings(struct adapter *);
-int t4_read_chip_settings(struct adapter *);
+int t4_sge_init(struct adapter *);
int t4_create_dma_tag(struct adapter *);
int t4_destroy_dma_tag(struct adapter *);
int t4_setup_adapter_queues(struct adapter *);
Modified: trunk/sys/dev/cxgbe/common/common.h
===================================================================
--- trunk/sys/dev/cxgbe/common/common.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/common.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/common/common.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/common/common.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -42,7 +42,7 @@
MACADDR_LEN = 12, /* MAC Address length */
};
-enum { MEM_EDC0, MEM_EDC1, MEM_MC, MEM_MC0 = MEM_MC, MEM_MC1 };
+enum { MEM_EDC0, MEM_EDC1, MEM_MC };
enum {
MEMWIN0_APERTURE = 2048,
@@ -49,12 +49,8 @@
MEMWIN0_BASE = 0x1b800,
MEMWIN1_APERTURE = 32768,
MEMWIN1_BASE = 0x28000,
-
- MEMWIN2_APERTURE_T4 = 65536,
- MEMWIN2_BASE_T4 = 0x30000,
-
- MEMWIN2_APERTURE_T5 = 128 * 1024,
- MEMWIN2_BASE_T5 = 0x60000,
+ MEMWIN2_APERTURE = 65536,
+ MEMWIN2_BASE = 0x30000,
};
enum dev_master { MASTER_CANT, MASTER_MAY, MASTER_MUST };
@@ -67,11 +63,16 @@
PAUSE_AUTONEG = 1 << 2
};
-struct memwin {
- uint32_t base;
- uint32_t aperture;
-};
+#define FW_VERSION_MAJOR 1
+#define FW_VERSION_MINOR 8
+#define FW_VERSION_MICRO 4
+#define FW_VERSION_BUILD 0
+#define FW_VERSION (V_FW_HDR_FW_VER_MAJOR(FW_VERSION_MAJOR) | \
+ V_FW_HDR_FW_VER_MINOR(FW_VERSION_MINOR) | \
+ V_FW_HDR_FW_VER_MICRO(FW_VERSION_MICRO) | \
+ V_FW_HDR_FW_VER_BUILD(FW_VERSION_BUILD))
+
struct port_stats {
u64 tx_octets; /* total # of octets in good frames */
u64 tx_frames; /* all good frames */
@@ -219,12 +220,6 @@
unsigned int dack_re; /* DACK timer resolution */
unsigned int la_mask; /* what events are recorded by TP LA */
unsigned short tx_modq[NCHAN]; /* channel to modulation queue map */
- uint32_t vlan_pri_map;
- uint32_t ingress_config;
- int8_t vlan_shift;
- int8_t vnic_shift;
- int8_t port_shift;
- int8_t protocol_shift;
};
struct vpd_params {
@@ -272,20 +267,18 @@
unsigned int cim_la_size;
- uint8_t nports; /* # of ethernet ports */
- uint8_t portvec;
- unsigned int chipid:4; /* chip ID. T4 = 4, T5 = 5, ... */
- unsigned int rev:4; /* chip revision */
- unsigned int fpga:1; /* this is an FPGA */
- unsigned int offload:1; /* hw is TOE capable, fw has divvied up card
- resources for TOE operation. */
- unsigned int bypass:1; /* this is a bypass card */
+ /* Used as int in sysctls, do not reduce size */
+ unsigned int nports; /* # of ethernet ports */
+ unsigned int portvec;
+ unsigned int rev; /* chip revision */
+ unsigned int offload;
unsigned int ofldq_wr_cred;
};
-#define CHELSIO_T4 0x4
-#define CHELSIO_T5 0x5
+enum { /* chip revisions */
+ T4_REV_A = 0,
+};
struct trace_params {
u32 data[TRACE_LEN / 4];
@@ -323,31 +316,6 @@
return adap->params.offload;
}
-static inline int chip_id(struct adapter *adap)
-{
- return adap->params.chipid;
-}
-
-static inline int chip_rev(struct adapter *adap)
-{
- return adap->params.rev;
-}
-
-static inline int is_t4(struct adapter *adap)
-{
- return adap->params.chipid == CHELSIO_T4;
-}
-
-static inline int is_t5(struct adapter *adap)
-{
- return adap->params.chipid == CHELSIO_T5;
-}
-
-static inline int is_fpga(struct adapter *adap)
-{
- return adap->params.fpga;
-}
-
static inline unsigned int core_ticks_per_usec(const struct adapter *adap)
{
return adap->params.vpd.cclk / 1000;
@@ -420,7 +388,7 @@
int t4_load_fw(struct adapter *adapter, const u8 *fw_data, unsigned int size);
int t4_load_boot(struct adapter *adap, u8 *boot_data,
unsigned int boot_addr, unsigned int size);
-int t4_flash_cfg_addr(struct adapter *adapter);
+unsigned int t4_flash_cfg_addr(struct adapter *adapter);
int t4_load_cfg(struct adapter *adapter, const u8 *cfg_data, unsigned int size);
int t4_get_fw_version(struct adapter *adapter, u32 *vers);
int t4_get_tp_version(struct adapter *adapter, u32 *vers);
@@ -427,8 +395,6 @@
int t4_check_fw_version(struct adapter *adapter);
int t4_init_hw(struct adapter *adapter, u32 fw_params);
int t4_prep_adapter(struct adapter *adapter);
-int t4_init_tp_params(struct adapter *adap);
-int t4_filter_field_shift(const struct adapter *adap, int filter_sel);
int t4_port_init(struct port_info *p, int mbox, int pf, int vf);
int t4_reinit_adapter(struct adapter *adap);
void t4_fatal_err(struct adapter *adapter);
@@ -471,8 +437,7 @@
void t4_cim_read_pif_la(struct adapter *adap, u32 *pif_req, u32 *pif_rsp,
unsigned int *pif_req_wrptr, unsigned int *pif_rsp_wrptr);
void t4_cim_read_ma_la(struct adapter *adap, u32 *ma_req, u32 *ma_rsp);
-int t4_mc_read(struct adapter *adap, int idx, u32 addr,
- __be32 *data, u64 *parity);
+int t4_mc_read(struct adapter *adap, u32 addr, __be32 *data, u64 *parity);
int t4_edc_read(struct adapter *adap, int idx, u32 addr, __be32 *data, u64 *parity);
int t4_mem_read(struct adapter *adap, int mtype, u32 addr, u32 size,
__be32 *data);
Modified: trunk/sys/dev/cxgbe/common/t4_hw.c
===================================================================
--- trunk/sys/dev/cxgbe/common/t4_hw.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/t4_hw.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/common/t4_hw.c 252814 2013-07-05 18:27:38Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/common/t4_hw.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
@@ -176,7 +176,9 @@
u32 pcie_fw;
pcie_fw = t4_read_reg(adap, A_PCIE_FW);
- if (pcie_fw & F_PCIE_FW_ERR)
+ if (!(pcie_fw & F_PCIE_FW_ERR))
+ CH_ERR(adap, "Firmware error report called with no error\n");
+ else
CH_ERR(adap, "Firmware reports adapter error: %s\n",
reason[G_PCIE_FW_EVAL(pcie_fw)]);
}
@@ -310,7 +312,6 @@
/**
* t4_mc_read - read from MC through backdoor accesses
* @adap: the adapter
- * @idx: which MC to access
* @addr: address of first byte requested
* @data: 64 bytes of data containing the requested address
* @ecc: where to store the corresponding 64-bit ECC word
@@ -319,40 +320,22 @@
* that covers the requested address @addr. If @parity is not %NULL it
* is assigned the 64-bit ECC word for the read data.
*/
-int t4_mc_read(struct adapter *adap, int idx, u32 addr, __be32 *data, u64 *ecc)
+int t4_mc_read(struct adapter *adap, u32 addr, __be32 *data, u64 *ecc)
{
int i;
- u32 mc_bist_cmd_reg, mc_bist_cmd_addr_reg, mc_bist_cmd_len_reg;
- u32 mc_bist_status_rdata_reg, mc_bist_data_pattern_reg;
- if (is_t4(adap)) {
- mc_bist_cmd_reg = A_MC_BIST_CMD;
- mc_bist_cmd_addr_reg = A_MC_BIST_CMD_ADDR;
- mc_bist_cmd_len_reg = A_MC_BIST_CMD_LEN;
- mc_bist_status_rdata_reg = A_MC_BIST_STATUS_RDATA;
- mc_bist_data_pattern_reg = A_MC_BIST_DATA_PATTERN;
- } else {
- mc_bist_cmd_reg = MC_REG(A_MC_P_BIST_CMD, idx);
- mc_bist_cmd_addr_reg = MC_REG(A_MC_P_BIST_CMD_ADDR, idx);
- mc_bist_cmd_len_reg = MC_REG(A_MC_P_BIST_CMD_LEN, idx);
- mc_bist_status_rdata_reg = MC_REG(A_MC_P_BIST_STATUS_RDATA,
- idx);
- mc_bist_data_pattern_reg = MC_REG(A_MC_P_BIST_DATA_PATTERN,
- idx);
- }
-
- if (t4_read_reg(adap, mc_bist_cmd_reg) & F_START_BIST)
+ if (t4_read_reg(adap, A_MC_BIST_CMD) & F_START_BIST)
return -EBUSY;
- t4_write_reg(adap, mc_bist_cmd_addr_reg, addr & ~0x3fU);
- t4_write_reg(adap, mc_bist_cmd_len_reg, 64);
- t4_write_reg(adap, mc_bist_data_pattern_reg, 0xc);
- t4_write_reg(adap, mc_bist_cmd_reg, V_BIST_OPCODE(1) |
- F_START_BIST | V_BIST_CMD_GAP(1));
- i = t4_wait_op_done(adap, mc_bist_cmd_reg, F_START_BIST, 0, 10, 1);
+ t4_write_reg(adap, A_MC_BIST_CMD_ADDR, addr & ~0x3fU);
+ t4_write_reg(adap, A_MC_BIST_CMD_LEN, 64);
+ t4_write_reg(adap, A_MC_BIST_DATA_PATTERN, 0xc);
+ t4_write_reg(adap, A_MC_BIST_CMD, V_BIST_OPCODE(1) | F_START_BIST |
+ V_BIST_CMD_GAP(1));
+ i = t4_wait_op_done(adap, A_MC_BIST_CMD, F_START_BIST, 0, 10, 1);
if (i)
return i;
-#define MC_DATA(i) MC_BIST_STATUS_REG(mc_bist_status_rdata_reg, i)
+#define MC_DATA(i) MC_BIST_STATUS_REG(A_MC_BIST_STATUS_RDATA, i)
for (i = 15; i >= 0; i--)
*data++ = ntohl(t4_read_reg(adap, MC_DATA(i)));
@@ -377,47 +360,20 @@
int t4_edc_read(struct adapter *adap, int idx, u32 addr, __be32 *data, u64 *ecc)
{
int i;
- u32 edc_bist_cmd_reg, edc_bist_cmd_addr_reg, edc_bist_cmd_len_reg;
- u32 edc_bist_cmd_data_pattern, edc_bist_status_rdata_reg;
- if (is_t4(adap)) {
- edc_bist_cmd_reg = EDC_REG(A_EDC_BIST_CMD, idx);
- edc_bist_cmd_addr_reg = EDC_REG(A_EDC_BIST_CMD_ADDR, idx);
- edc_bist_cmd_len_reg = EDC_REG(A_EDC_BIST_CMD_LEN, idx);
- edc_bist_cmd_data_pattern = EDC_REG(A_EDC_BIST_DATA_PATTERN,
- idx);
- edc_bist_status_rdata_reg = EDC_REG(A_EDC_BIST_STATUS_RDATA,
- idx);
- } else {
-/*
- * These macro are missing in t4_regs.h file.
- * Added temporarily for testing.
- */
-#define EDC_STRIDE_T5 (EDC_T51_BASE_ADDR - EDC_T50_BASE_ADDR)
-#define EDC_REG_T5(reg, idx) (reg + EDC_STRIDE_T5 * idx)
- edc_bist_cmd_reg = EDC_REG_T5(A_EDC_H_BIST_CMD, idx);
- edc_bist_cmd_addr_reg = EDC_REG_T5(A_EDC_H_BIST_CMD_ADDR, idx);
- edc_bist_cmd_len_reg = EDC_REG_T5(A_EDC_H_BIST_CMD_LEN, idx);
- edc_bist_cmd_data_pattern = EDC_REG_T5(A_EDC_H_BIST_DATA_PATTERN,
- idx);
- edc_bist_status_rdata_reg = EDC_REG_T5(A_EDC_H_BIST_STATUS_RDATA,
- idx);
-#undef EDC_REG_T5
-#undef EDC_STRIDE_T5
- }
-
- if (t4_read_reg(adap, edc_bist_cmd_reg) & F_START_BIST)
+ idx *= EDC_STRIDE;
+ if (t4_read_reg(adap, A_EDC_BIST_CMD + idx) & F_START_BIST)
return -EBUSY;
- t4_write_reg(adap, edc_bist_cmd_addr_reg, addr & ~0x3fU);
- t4_write_reg(adap, edc_bist_cmd_len_reg, 64);
- t4_write_reg(adap, edc_bist_cmd_data_pattern, 0xc);
- t4_write_reg(adap, edc_bist_cmd_reg,
+ t4_write_reg(adap, A_EDC_BIST_CMD_ADDR + idx, addr & ~0x3fU);
+ t4_write_reg(adap, A_EDC_BIST_CMD_LEN + idx, 64);
+ t4_write_reg(adap, A_EDC_BIST_DATA_PATTERN + idx, 0xc);
+ t4_write_reg(adap, A_EDC_BIST_CMD + idx,
V_BIST_OPCODE(1) | V_BIST_CMD_GAP(1) | F_START_BIST);
- i = t4_wait_op_done(adap, edc_bist_cmd_reg, F_START_BIST, 0, 10, 1);
+ i = t4_wait_op_done(adap, A_EDC_BIST_CMD + idx, F_START_BIST, 0, 10, 1);
if (i)
return i;
-#define EDC_DATA(i) EDC_BIST_STATUS_REG(edc_bist_status_rdata_reg, i)
+#define EDC_DATA(i) (EDC_BIST_STATUS_REG(A_EDC_BIST_STATUS_RDATA, i) + idx)
for (i = 15; i >= 0; i--)
*data++ = ntohl(t4_read_reg(adap, EDC_DATA(i)));
@@ -469,8 +425,8 @@
/*
* Read the chip's memory block and bail if there's an error.
*/
- if ((mtype == MEM_MC) || (mtype == MEM_MC1))
- ret = t4_mc_read(adap, mtype - MEM_MC, pos, data, NULL);
+ if (mtype == MEM_MC)
+ ret = t4_mc_read(adap, pos, data, NULL);
else
ret = t4_edc_read(adap, mtype, pos, data, NULL);
if (ret)
@@ -508,9 +464,8 @@
#define EEPROM_STAT_ADDR 0x7bfc
#define VPD_BASE 0x400
#define VPD_BASE_OLD 0
-#define VPD_LEN 1024
+#define VPD_LEN 512
#define VPD_INFO_FLD_HDR_SIZE 3
-#define CHELSIO_VPD_UNIQUE_ID 0x82
/**
* t4_seeprom_read - read a serial EEPROM location
@@ -675,7 +630,7 @@
* it at 0.
*/
ret = t4_seeprom_read(adapter, VPD_BASE, (u32 *)(vpd));
- addr = *vpd == CHELSIO_VPD_UNIQUE_ID ? VPD_BASE : VPD_BASE_OLD;
+ addr = *vpd == 0x82 ? VPD_BASE : VPD_BASE_OLD;
for (i = 0; i < sizeof(vpd); i += 4) {
ret = t4_seeprom_read(adapter, addr + i, (u32 *)(vpd + i));
@@ -713,10 +668,8 @@
i = vpd[sn - VPD_INFO_FLD_HDR_SIZE + 2];
memcpy(p->sn, vpd + sn, min(i, SERNUM_LEN));
strstrip(p->sn);
- i = vpd[pn - VPD_INFO_FLD_HDR_SIZE + 2];
memcpy(p->pn, vpd + pn, min(i, PN_LEN));
strstrip((char *)p->pn);
- i = vpd[na - VPD_INFO_FLD_HDR_SIZE + 2];
memcpy(p->na, vpd + na, min(i, MACADDR_LEN));
strstrip((char *)p->na);
@@ -961,7 +914,6 @@
int t4_check_fw_version(struct adapter *adapter)
{
int ret, major, minor, micro;
- int exp_major, exp_minor, exp_micro;
ret = t4_get_fw_version(adapter, &adapter->params.fw_vers);
if (!ret)
@@ -973,30 +925,13 @@
minor = G_FW_HDR_FW_VER_MINOR(adapter->params.fw_vers);
micro = G_FW_HDR_FW_VER_MICRO(adapter->params.fw_vers);
- switch (chip_id(adapter)) {
- case CHELSIO_T4:
- exp_major = T4FW_VERSION_MAJOR;
- exp_minor = T4FW_VERSION_MINOR;
- exp_micro = T4FW_VERSION_MICRO;
- break;
- case CHELSIO_T5:
- exp_major = T5FW_VERSION_MAJOR;
- exp_minor = T5FW_VERSION_MINOR;
- exp_micro = T5FW_VERSION_MICRO;
- break;
- default:
- CH_ERR(adapter, "Unsupported chip type, %x\n",
- chip_id(adapter));
- return -EINVAL;
- }
-
- if (major != exp_major) { /* major mismatch - fail */
+ if (major != FW_VERSION_MAJOR) { /* major mismatch - fail */
CH_ERR(adapter, "card FW has major version %u, driver wants "
- "%u\n", major, exp_major);
+ "%u\n", major, FW_VERSION_MAJOR);
return -EINVAL;
}
- if (minor == exp_minor && micro == exp_micro)
+ if (minor == FW_VERSION_MINOR && micro == FW_VERSION_MICRO)
return 0; /* perfect match */
/* Minor/micro version mismatch. Report it but often it's OK. */
@@ -1035,19 +970,14 @@
* @adapter: the adapter
*
* Return the address within the flash where the Firmware Configuration
- * File is stored, or an error if the device FLASH is too small to contain
- * a Firmware Configuration File.
+ * File is stored.
*/
-int t4_flash_cfg_addr(struct adapter *adapter)
+unsigned int t4_flash_cfg_addr(struct adapter *adapter)
{
- /*
- * If the device FLASH isn't large enough to hold a Firmware
- * Configuration File, return an error.
- */
- if (adapter->params.sf_size < FLASH_CFG_START + FLASH_CFG_MAX_SIZE)
- return -ENOSPC;
-
- return FLASH_CFG_START;
+ if (adapter->params.sf_size == 0x100000)
+ return FLASH_FPGA_CFG_START;
+ else
+ return FLASH_CFG_START;
}
/**
@@ -1060,16 +990,12 @@
*/
int t4_load_cfg(struct adapter *adap, const u8 *cfg_data, unsigned int size)
{
- int ret, i, n, cfg_addr;
+ int ret, i, n;
unsigned int addr;
unsigned int flash_cfg_start_sec;
unsigned int sf_sec_size = adap->params.sf_size / adap->params.sf_nsec;
- cfg_addr = t4_flash_cfg_addr(adap);
- if (cfg_addr < 0)
- return cfg_addr;
-
- addr = cfg_addr;
+ addr = t4_flash_cfg_addr(adap);
flash_cfg_start_sec = addr / SF_SEC_SIZE;
if (size > FLASH_CFG_MAX_SIZE) {
@@ -1128,19 +1054,7 @@
const u32 *p = (const u32 *)fw_data;
const struct fw_hdr *hdr = (const struct fw_hdr *)fw_data;
unsigned int sf_sec_size = adap->params.sf_size / adap->params.sf_nsec;
- unsigned int fw_start_sec;
- unsigned int fw_start;
- unsigned int fw_size;
- if (ntohl(hdr->magic) == FW_HDR_MAGIC_BOOTSTRAP) {
- fw_start_sec = FLASH_FWBOOTSTRAP_START_SEC;
- fw_start = FLASH_FWBOOTSTRAP_START;
- fw_size = FLASH_FWBOOTSTRAP_MAX_SIZE;
- } else {
- fw_start_sec = FLASH_FW_START_SEC;
- fw_start = FLASH_FW_START;
- fw_size = FLASH_FW_MAX_SIZE;
- }
if (!size) {
CH_ERR(adap, "FW image has no data\n");
return -EINVAL;
@@ -1153,17 +1067,11 @@
CH_ERR(adap, "FW image size differs from size in FW header\n");
return -EINVAL;
}
- if (size > fw_size) {
- CH_ERR(adap, "FW image too large, max is %u bytes\n", fw_size);
+ if (size > FLASH_FW_MAX_SIZE) {
+ CH_ERR(adap, "FW image too large, max is %u bytes\n",
+ FLASH_FW_MAX_SIZE);
return -EFBIG;
}
- if ((is_t4(adap) && hdr->chip != FW_HDR_CHIP_T4) ||
- (is_t5(adap) && hdr->chip != FW_HDR_CHIP_T5)) {
- CH_ERR(adap,
- "FW image (%d) is not suitable for this adapter (%d)\n",
- hdr->chip, chip_id(adap));
- return -EINVAL;
- }
for (csum = 0, i = 0; i < size / sizeof(csum); i++)
csum += ntohl(p[i]);
@@ -1175,7 +1083,8 @@
}
i = DIV_ROUND_UP(size, sf_sec_size); /* # of sectors spanned */
- ret = t4_flash_erase_sectors(adap, fw_start_sec, fw_start_sec + i - 1);
+ ret = t4_flash_erase_sectors(adap, FLASH_FW_START_SEC,
+ FLASH_FW_START_SEC + i - 1);
if (ret)
goto out;
@@ -1186,11 +1095,11 @@
*/
memcpy(first_page, fw_data, SF_PAGE_SIZE);
((struct fw_hdr *)first_page)->fw_ver = htonl(0xffffffff);
- ret = t4_write_flash(adap, fw_start, SF_PAGE_SIZE, first_page, 1);
+ ret = t4_write_flash(adap, FLASH_FW_START, SF_PAGE_SIZE, first_page, 1);
if (ret)
goto out;
- addr = fw_start;
+ addr = FLASH_FW_START;
for (size -= SF_PAGE_SIZE; size; size -= SF_PAGE_SIZE) {
addr += SF_PAGE_SIZE;
fw_data += SF_PAGE_SIZE;
@@ -1200,7 +1109,7 @@
}
ret = t4_write_flash(adap,
- fw_start + offsetof(struct fw_hdr, fw_ver),
+ FLASH_FW_START + offsetof(struct fw_hdr, fw_ver),
sizeof(hdr->fw_ver), (const u8 *)&hdr->fw_ver, 1);
out:
if (ret)
@@ -1498,7 +1407,6 @@
void t4_read_cimq_cfg(struct adapter *adap, u16 *base, u16 *size, u16 *thres)
{
unsigned int i, v;
- int cim_num_obq = is_t4(adap) ? CIM_NUM_OBQ : CIM_NUM_OBQ_T5;
for (i = 0; i < CIM_NUM_IBQ; i++) {
t4_write_reg(adap, A_CIM_QUEUE_CONFIG_REF, F_IBQSELECT |
@@ -1508,7 +1416,7 @@
*size++ = G_CIMQSIZE(v) * 256; /* value is in 256-byte units */
*thres++ = G_QUEFULLTHRSH(v) * 8; /* 8-byte unit */
}
- for (i = 0; i < cim_num_obq; i++) {
+ for (i = 0; i < CIM_NUM_OBQ; i++) {
t4_write_reg(adap, A_CIM_QUEUE_CONFIG_REF, F_OBQSELECT |
V_QUENUMSELECT(i));
v = t4_read_reg(adap, A_CIM_QUEUE_CONFIG_CTRL);
@@ -1544,12 +1452,8 @@
for (i = 0; i < n; i++, addr++) {
t4_write_reg(adap, A_CIM_IBQ_DBG_CFG, V_IBQDBGADDR(addr) |
F_IBQDBGEN);
- /*
- * It might take 3-10ms before the IBQ debug read access is
- * allowed. Wait for 1 Sec with a delay of 1 usec.
- */
err = t4_wait_op_done(adap, A_CIM_IBQ_DBG_CFG, F_IBQDBGBUSY, 0,
- 1000000, 1);
+ 2, 1);
if (err)
return err;
*data++ = t4_read_reg(adap, A_CIM_IBQ_DBG_DATA);
@@ -1573,9 +1477,8 @@
{
int i, err;
unsigned int addr, v, nwords;
- int cim_num_obq = is_t4(adap) ? CIM_NUM_OBQ : CIM_NUM_OBQ_T5;
- if (qid >= cim_num_obq || (n & 3))
+ if (qid > 5 || (n & 3))
return -EINVAL;
t4_write_reg(adap, A_CIM_QUEUE_CONFIG_REF, F_OBQSELECT |
@@ -1859,8 +1762,7 @@
}
#define ADVERT_MASK (FW_PORT_CAP_SPEED_100M | FW_PORT_CAP_SPEED_1G |\
- FW_PORT_CAP_SPEED_10G | FW_PORT_CAP_SPEED_40G | \
- FW_PORT_CAP_SPEED_100G | FW_PORT_CAP_ANEG)
+ FW_PORT_CAP_SPEED_10G | FW_PORT_CAP_ANEG)
/**
* t4_link_start - apply link configuration to MAC/PHY
@@ -2031,47 +1933,6 @@
{ 0 }
};
- static struct intr_info t5_pcie_intr_info[] = {
- { F_MSTGRPPERR, "Master Response Read Queue parity error",
- -1, 1 },
- { F_MSTTIMEOUTPERR, "Master Timeout FIFO parity error", -1, 1 },
- { F_MSIXSTIPERR, "MSI-X STI SRAM parity error", -1, 1 },
- { F_MSIXADDRLPERR, "MSI-X AddrL parity error", -1, 1 },
- { F_MSIXADDRHPERR, "MSI-X AddrH parity error", -1, 1 },
- { F_MSIXDATAPERR, "MSI-X data parity error", -1, 1 },
- { F_MSIXDIPERR, "MSI-X DI parity error", -1, 1 },
- { F_PIOCPLGRPPERR, "PCI PIO completion Group FIFO parity error",
- -1, 1 },
- { F_PIOREQGRPPERR, "PCI PIO request Group FIFO parity error",
- -1, 1 },
- { F_TARTAGPERR, "PCI PCI target tag FIFO parity error", -1, 1 },
- { F_MSTTAGQPERR, "PCI master tag queue parity error", -1, 1 },
- { F_CREQPERR, "PCI CMD channel request parity error", -1, 1 },
- { F_CRSPPERR, "PCI CMD channel response parity error", -1, 1 },
- { F_DREQWRPERR, "PCI DMA channel write request parity error",
- -1, 1 },
- { F_DREQPERR, "PCI DMA channel request parity error", -1, 1 },
- { F_DRSPPERR, "PCI DMA channel response parity error", -1, 1 },
- { F_HREQWRPERR, "PCI HMA channel count parity error", -1, 1 },
- { F_HREQPERR, "PCI HMA channel request parity error", -1, 1 },
- { F_HRSPPERR, "PCI HMA channel response parity error", -1, 1 },
- { F_CFGSNPPERR, "PCI config snoop FIFO parity error", -1, 1 },
- { F_FIDPERR, "PCI FID parity error", -1, 1 },
- { F_VFIDPERR, "PCI INTx clear parity error", -1, 1 },
- { F_MAGRPPERR, "PCI MA group FIFO parity error", -1, 1 },
- { F_PIOTAGPERR, "PCI PIO tag parity error", -1, 1 },
- { F_IPRXHDRGRPPERR, "PCI IP Rx header group parity error",
- -1, 1 },
- { F_IPRXDATAGRPPERR, "PCI IP Rx data group parity error",
- -1, 1 },
- { F_RPLPERR, "PCI IP replay buffer parity error", -1, 1 },
- { F_IPSOTPERR, "PCI IP SOT buffer parity error", -1, 1 },
- { F_TRGT1GRPPERR, "PCI TRGT1 group FIFOs parity error", -1, 1 },
- { F_READRSPERR, "Outbound read error", -1,
- 0 },
- { 0 }
- };
-
int fat;
fat = t4_handle_intr_status(adapter,
@@ -2080,9 +1941,7 @@
t4_handle_intr_status(adapter,
A_PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS,
pcie_port_intr_info) +
- t4_handle_intr_status(adapter, A_PCIE_INT_CAUSE,
- is_t4(adapter) ?
- pcie_intr_info : t5_pcie_intr_info);
+ t4_handle_intr_status(adapter, A_PCIE_INT_CAUSE, pcie_intr_info);
if (fat)
t4_fatal_err(adapter);
}
@@ -2427,13 +2286,8 @@
addr = EDC_REG(A_EDC_INT_CAUSE, idx);
cnt_addr = EDC_REG(A_EDC_ECC_STATUS, idx);
} else {
- if (is_t4(adapter)) {
- addr = A_MC_INT_CAUSE;
- cnt_addr = A_MC_ECC_STATUS;
- } else {
- addr = A_MC_P_INT_CAUSE;
- cnt_addr = A_MC_P_ECC_STATUS;
- }
+ addr = A_MC_INT_CAUSE;
+ cnt_addr = A_MC_ECC_STATUS;
}
v = t4_read_reg(adapter, addr) & MEM_INT_MASK;
@@ -2514,15 +2368,9 @@
*/
static void xgmac_intr_handler(struct adapter *adap, int port)
{
- u32 v, int_cause_reg;
+ u32 v = t4_read_reg(adap, PORT_REG(port, A_XGMAC_PORT_INT_CAUSE));
- if (is_t4(adap))
- int_cause_reg = PORT_REG(port, A_XGMAC_PORT_INT_CAUSE);
- else
- int_cause_reg = T5_PORT_REG(port, A_MAC_PORT_INT_CAUSE);
-
- v = t4_read_reg(adap, int_cause_reg);
- v &= (F_TXFIFO_PRTY_ERR | F_RXFIFO_PRTY_ERR);
+ v &= F_TXFIFO_PRTY_ERR | F_RXFIFO_PRTY_ERR;
if (!v)
return;
@@ -2530,7 +2378,7 @@
CH_ALERT(adap, "XGMAC %d Tx FIFO parity error\n", port);
if (v & F_RXFIFO_PRTY_ERR)
CH_ALERT(adap, "XGMAC %d Rx FIFO parity error\n", port);
- t4_write_reg(adap, int_cause_reg, v);
+ t4_write_reg(adap, PORT_REG(port, A_XGMAC_PORT_INT_CAUSE), v);
t4_fatal_err(adap);
}
@@ -2540,19 +2388,12 @@
static void pl_intr_handler(struct adapter *adap)
{
static struct intr_info pl_intr_info[] = {
- { F_FATALPERR, "Fatal parity error", -1, 1 },
+ { F_FATALPERR, "T4 fatal parity error", -1, 1 },
{ F_PERRVFID, "PL VFID_MAP parity error", -1, 1 },
{ 0 }
};
- static struct intr_info t5_pl_intr_info[] = {
- { F_PL_BUSPERR, "PL bus parity error", -1, 1 },
- { F_FATALPERR, "Fatal parity error", -1, 1 },
- { 0 }
- };
-
- if (t4_handle_intr_status(adap, A_PL_PL_INT_CAUSE,
- is_t4(adap) ? pl_intr_info : t5_pl_intr_info))
+ if (t4_handle_intr_status(adap, A_PL_PL_INT_CAUSE, pl_intr_info))
t4_fatal_err(adap);
}
@@ -2685,6 +2526,7 @@
A_PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS,
A_PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS,
A_PCIE_NONFAT_ERR, A_PCIE_INT_CAUSE,
+ A_MC_INT_CAUSE,
A_MA_INT_WRAP_STATUS, A_MA_PARITY_ERROR_STATUS, A_MA_INT_CAUSE,
A_EDC_INT_CAUSE, EDC_REG(A_EDC_INT_CAUSE, 1),
A_CIM_HOST_INT_CAUSE, A_CIM_HOST_UPACC_INT_CAUSE,
@@ -2704,9 +2546,6 @@
for (i = 0; i < ARRAY_SIZE(cause_reg); ++i)
t4_write_reg(adapter, cause_reg[i], 0xffffffff);
- t4_write_reg(adapter, is_t4(adapter) ? A_MC_INT_CAUSE :
- A_MC_P_INT_CAUSE, 0xffffffff);
-
t4_write_reg(adapter, A_PL_INT_CAUSE, GLBL_INTR_MASK);
(void) t4_read_reg(adapter, A_PL_INT_CAUSE); /* flush */
}
@@ -3692,10 +3531,7 @@
V_TFMINPKTSIZE(tp->min_len));
t4_write_reg(adap, A_MPS_TRC_FILTER_MATCH_CTL_A + ofst,
V_TFOFFSET(tp->skip_ofst) | V_TFLENGTH(tp->skip_len) |
- is_t4(adap) ?
- V_TFPORT(tp->port) | F_TFEN | V_TFINVERTMATCH(tp->invert) :
- V_T5_TFPORT(tp->port) | F_T5_TFEN |
- V_T5_TFINVERTMATCH(tp->invert));
+ V_TFPORT(tp->port) | F_TFEN | V_TFINVERTMATCH(tp->invert));
return 0;
}
@@ -3719,18 +3555,13 @@
ctla = t4_read_reg(adap, A_MPS_TRC_FILTER_MATCH_CTL_A + ofst);
ctlb = t4_read_reg(adap, A_MPS_TRC_FILTER_MATCH_CTL_B + ofst);
- if (is_t4(adap)) {
- *enabled = !!(ctla & F_TFEN);
- tp->port = G_TFPORT(ctla);
- } else {
- *enabled = !!(ctla & F_T5_TFEN);
- tp->port = G_T5_TFPORT(ctla);
- }
+ *enabled = !!(ctla & F_TFEN);
tp->snap_len = G_TFCAPTUREMAX(ctlb);
tp->min_len = G_TFMINPKTSIZE(ctlb);
tp->skip_ofst = G_TFOFFSET(ctla);
tp->skip_len = G_TFLENGTH(ctla);
tp->invert = !!(ctla & F_TFINVERTMATCH);
+ tp->port = G_TFPORT(ctla);
ofst = (A_MPS_TRC_FILTER1_MATCH - A_MPS_TRC_FILTER0_MATCH) * idx;
data_reg = A_MPS_TRC_FILTER0_MATCH + ofst;
@@ -3753,19 +3584,11 @@
void t4_pmtx_get_stats(struct adapter *adap, u32 cnt[], u64 cycles[])
{
int i;
- u32 data[2];
for (i = 0; i < PM_NSTATS; i++) {
t4_write_reg(adap, A_PM_TX_STAT_CONFIG, i + 1);
cnt[i] = t4_read_reg(adap, A_PM_TX_STAT_COUNT);
- if (is_t4(adap))
- cycles[i] = t4_read_reg64(adap, A_PM_TX_STAT_LSB);
- else {
- t4_read_indirect(adap, A_PM_TX_DBG_CTRL,
- A_PM_TX_DBG_DATA, data, 2,
- A_PM_TX_DBG_STAT_MSB);
- cycles[i] = (((u64)data[0] << 32) | data[1]);
- }
+ cycles[i] = t4_read_reg64(adap, A_PM_TX_STAT_LSB);
}
}
@@ -3780,19 +3603,11 @@
void t4_pmrx_get_stats(struct adapter *adap, u32 cnt[], u64 cycles[])
{
int i;
- u32 data[2];
for (i = 0; i < PM_NSTATS; i++) {
t4_write_reg(adap, A_PM_RX_STAT_CONFIG, i + 1);
cnt[i] = t4_read_reg(adap, A_PM_RX_STAT_COUNT);
- if (is_t4(adap))
- cycles[i] = t4_read_reg64(adap, A_PM_RX_STAT_LSB);
- else {
- t4_read_indirect(adap, A_PM_RX_DBG_CTRL,
- A_PM_RX_DBG_DATA, data, 2,
- A_PM_RX_DBG_STAT_MSB);
- cycles[i] = (((u64)data[0] << 32) | data[1]);
- }
+ cycles[i] = t4_read_reg64(adap, A_PM_RX_STAT_LSB);
}
}
@@ -3851,9 +3666,7 @@
u32 bgmap = get_mps_bg_map(adap, idx);
#define GET_STAT(name) \
- t4_read_reg64(adap, \
- (is_t4(adap) ? PORT_REG(idx, A_MPS_PORT_STAT_##name##_L) : \
- T5_PORT_REG(idx, A_MPS_PORT_STAT_##name##_L)))
+ t4_read_reg64(adap, PORT_REG(idx, A_MPS_PORT_STAT_##name##_L))
#define GET_STAT_COM(name) t4_read_reg64(adap, A_MPS_STAT_##name##_L)
p->tx_pause = GET_STAT(TX_PORT_PAUSE);
@@ -3932,19 +3745,13 @@
{
unsigned int i;
u32 bgmap = get_mps_bg_map(adap, idx);
- u32 port_base_addr;
- if (is_t4(adap))
- port_base_addr = PORT_BASE(idx);
- else
- port_base_addr = T5_PORT_BASE(idx);
-
for (i = A_MPS_PORT_STAT_TX_PORT_BYTES_L;
- i <= A_MPS_PORT_STAT_TX_PORT_PPP7_H; i += 8)
- t4_write_reg(adap, port_base_addr + i, 0);
+ i <= A_MPS_PORT_STAT_TX_PORT_PPP7_H; i += 8)
+ t4_write_reg(adap, PORT_REG(idx, i), 0);
for (i = A_MPS_PORT_STAT_RX_PORT_BYTES_L;
- i <= A_MPS_PORT_STAT_RX_PORT_LESS_64B_H; i += 8)
- t4_write_reg(adap, port_base_addr + i, 0);
+ i <= A_MPS_PORT_STAT_RX_PORT_LESS_64B_H; i += 8)
+ t4_write_reg(adap, PORT_REG(idx, i), 0);
for (i = 0; i < 4; i++)
if (bgmap & (1 << i)) {
t4_write_reg(adap,
@@ -3967,10 +3774,7 @@
u32 bgmap = get_mps_bg_map(adap, idx);
#define GET_STAT(name) \
- t4_read_reg64(adap, \
- (is_t4(adap) ? \
- PORT_REG(idx, A_MPS_PORT_STAT_LB_PORT_##name##_L) : \
- T5_PORT_REG(idx, A_MPS_PORT_STAT_LB_PORT_##name##_L)))
+ t4_read_reg64(adap, PORT_REG(idx, A_MPS_PORT_STAT_LB_PORT_##name##_L))
#define GET_STAT_COM(name) t4_read_reg64(adap, A_MPS_STAT_##name##_L)
p->octets = GET_STAT(BYTES);
@@ -3987,7 +3791,8 @@
p->frames_512_1023 = GET_STAT(512B_1023B);
p->frames_1024_1518 = GET_STAT(1024B_1518B);
p->frames_1519_max = GET_STAT(1519B_MAX);
- p->drop = GET_STAT(DROP_FRAMES);
+ p->drop = t4_read_reg(adap, PORT_REG(idx,
+ A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES));
p->ovflow0 = (bgmap & 1) ? GET_STAT_COM(RX_BG_0_LB_DROP_FRAME) : 0;
p->ovflow1 = (bgmap & 2) ? GET_STAT_COM(RX_BG_1_LB_DROP_FRAME) : 0;
@@ -4013,26 +3818,14 @@
void t4_wol_magic_enable(struct adapter *adap, unsigned int port,
const u8 *addr)
{
- u32 mag_id_reg_l, mag_id_reg_h, port_cfg_reg;
-
- if (is_t4(adap)) {
- mag_id_reg_l = PORT_REG(port, A_XGMAC_PORT_MAGIC_MACID_LO);
- mag_id_reg_h = PORT_REG(port, A_XGMAC_PORT_MAGIC_MACID_HI);
- port_cfg_reg = PORT_REG(port, A_XGMAC_PORT_CFG2);
- } else {
- mag_id_reg_l = T5_PORT_REG(port, A_MAC_PORT_MAGIC_MACID_LO);
- mag_id_reg_h = T5_PORT_REG(port, A_MAC_PORT_MAGIC_MACID_HI);
- port_cfg_reg = T5_PORT_REG(port, A_MAC_PORT_CFG2);
- }
-
if (addr) {
- t4_write_reg(adap, mag_id_reg_l,
+ t4_write_reg(adap, PORT_REG(port, A_XGMAC_PORT_MAGIC_MACID_LO),
(addr[2] << 24) | (addr[3] << 16) |
(addr[4] << 8) | addr[5]);
- t4_write_reg(adap, mag_id_reg_h,
+ t4_write_reg(adap, PORT_REG(port, A_XGMAC_PORT_MAGIC_MACID_HI),
(addr[0] << 8) | addr[1]);
}
- t4_set_reg_field(adap, port_cfg_reg, F_MAGICEN,
+ t4_set_reg_field(adap, PORT_REG(port, A_XGMAC_PORT_CFG2), F_MAGICEN,
V_MAGICEN(addr != NULL));
}
@@ -4055,23 +3848,16 @@
u64 mask0, u64 mask1, unsigned int crc, bool enable)
{
int i;
- u32 port_cfg_reg;
- if (is_t4(adap))
- port_cfg_reg = PORT_REG(port, A_XGMAC_PORT_CFG2);
- else
- port_cfg_reg = T5_PORT_REG(port, A_MAC_PORT_CFG2);
-
if (!enable) {
- t4_set_reg_field(adap, port_cfg_reg, F_PATEN, 0);
+ t4_set_reg_field(adap, PORT_REG(port, A_XGMAC_PORT_CFG2),
+ F_PATEN, 0);
return 0;
}
if (map > 0xff)
return -EINVAL;
-#define EPIO_REG(name) \
- (is_t4(adap) ? PORT_REG(port, A_XGMAC_PORT_EPIO_##name) : \
- T5_PORT_REG(port, A_MAC_PORT_EPIO_##name))
+#define EPIO_REG(name) PORT_REG(port, A_XGMAC_PORT_EPIO_##name)
t4_write_reg(adap, EPIO_REG(DATA1), mask0 >> 32);
t4_write_reg(adap, EPIO_REG(DATA2), mask1);
@@ -4097,7 +3883,7 @@
}
#undef EPIO_REG
- t4_set_reg_field(adap, port_cfg_reg, 0, F_PATEN);
+ t4_set_reg_field(adap, PORT_REG(port, A_XGMAC_PORT_CFG2), 0, F_PATEN);
return 0;
}
@@ -4632,17 +4418,14 @@
const u8 *fw_data, unsigned int size, int force)
{
const struct fw_hdr *fw_hdr = (const struct fw_hdr *)fw_data;
- unsigned int bootstrap = ntohl(fw_hdr->magic) == FW_HDR_MAGIC_BOOTSTRAP;
int reset, ret;
- if (!bootstrap) {
- ret = t4_fw_halt(adap, mbox, force);
- if (ret < 0 && !force)
- return ret;
- }
+ ret = t4_fw_halt(adap, mbox, force);
+ if (ret < 0 && !force)
+ return ret;
ret = t4_load_fw(adap, fw_data, size);
- if (ret < 0 || bootstrap)
+ if (ret < 0)
return ret;
/*
@@ -4704,8 +4487,8 @@
V_FW_PARAMS_CMD_VFN(vf));
c.retval_len16 = htonl(FW_LEN16(c));
- for (i = 0; i < nparams; i++, p += 2, params++)
- *p = htonl(*params);
+ for (i = 0; i < nparams; i++, p += 2)
+ *p = htonl(*params++);
ret = t4_wr_mbox(adap, mbox, &c, sizeof(c), &c);
if (ret == 0)
@@ -4744,10 +4527,8 @@
c.retval_len16 = htonl(FW_LEN16(c));
while (nparams--) {
- *p++ = htonl(*params);
- params++;
- *p++ = htonl(*val);
- val++;
+ *p++ = htonl(*params++);
+ *p++ = htonl(*val++);
}
return t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL);
@@ -4982,12 +4763,9 @@
int offset, ret = 0;
struct fw_vi_mac_cmd c;
unsigned int nfilters = 0;
- unsigned int max_naddr = is_t4(adap) ?
- NUM_MPS_CLS_SRAM_L_INSTANCES :
- NUM_MPS_T5_CLS_SRAM_L_INSTANCES;
unsigned int rem = naddr;
- if (naddr > max_naddr)
+ if (naddr > NUM_MPS_CLS_SRAM_L_INSTANCES)
return -EINVAL;
for (offset = 0; offset < naddr ; /**/) {
@@ -5028,10 +4806,10 @@
u16 index = G_FW_VI_MAC_CMD_IDX(ntohs(p->valid_to_idx));
if (idx)
- idx[offset+i] = (index >= max_naddr
+ idx[offset+i] = (index >= NUM_MPS_CLS_SRAM_L_INSTANCES
? 0xffff
: index);
- if (index < max_naddr)
+ if (index < NUM_MPS_CLS_SRAM_L_INSTANCES)
nfilters++;
else if (hash)
*hash |= (1ULL << hash_mac_addr(addr[offset+i]));
@@ -5075,9 +4853,6 @@
int ret, mode;
struct fw_vi_mac_cmd c;
struct fw_vi_mac_exact *p = c.u.exact;
- unsigned int max_mac_addr = is_t4(adap) ?
- NUM_MPS_CLS_SRAM_L_INSTANCES :
- NUM_MPS_T5_CLS_SRAM_L_INSTANCES;
if (idx < 0) /* new allocation */
idx = persist ? FW_VI_MAC_ADD_PERSIST_MAC : FW_VI_MAC_ADD_MAC;
@@ -5092,10 +4867,10 @@
V_FW_VI_MAC_CMD_IDX(idx));
memcpy(p->macaddr, addr, sizeof(p->macaddr));
- ret = t4_wr_mbox(adap, mbox, &c, sizeof(c), &c);
+ ret = t4_wr_mbox_ns(adap, mbox, &c, sizeof(c), &c);
if (ret == 0) {
ret = G_FW_VI_MAC_CMD_IDX(ntohs(p->valid_to_idx));
- if (ret >= max_mac_addr)
+ if (ret >= NUM_MPS_CLS_SRAM_L_INSTANCES)
ret = -ENOMEM;
}
return ret;
@@ -5339,8 +5114,6 @@
speed = SPEED_1000;
else if (stat & V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_10G))
speed = SPEED_10000;
- else if (stat & V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_40G))
- speed = SPEED_40000;
for_each_port(adap, i) {
pi = adap2pinfo(adap, i);
@@ -5351,18 +5124,10 @@
if (link_ok != lc->link_ok || speed != lc->speed ||
fc != lc->fc) { /* something changed */
- int reason;
-
- if (!link_ok && lc->link_ok)
- reason = G_FW_PORT_CMD_LINKDNRC(stat);
- else
- reason = -1;
-
lc->link_ok = link_ok;
lc->speed = speed;
lc->fc = fc;
- lc->supported = ntohs(p->u.info.pcap);
- t4_os_link_changed(adap, i, link_ok, reason);
+ t4_os_link_changed(adap, i, link_ok);
}
if (mod != pi->mod_type) {
pi->mod_type = mod;
@@ -5423,6 +5188,21 @@
}
}
+static int __devinit wait_dev_ready(struct adapter *adap)
+{
+ u32 whoami;
+
+ whoami = t4_read_reg(adap, A_PL_WHOAMI);
+
+ if (whoami != 0xffffffff && whoami != X_CIM_PF_NOACCESS)
+ return 0;
+
+ msleep(500);
+ whoami = t4_read_reg(adap, A_PL_WHOAMI);
+ return (whoami != 0xffffffff && whoami != X_CIM_PF_NOACCESS
+ ? 0 : -EIO);
+}
+
static int __devinit get_flash_params(struct adapter *adapter)
{
int ret;
@@ -5475,26 +5255,21 @@
int __devinit t4_prep_adapter(struct adapter *adapter)
{
int ret;
- uint16_t device_id;
- uint32_t pl_rev;
+ ret = wait_dev_ready(adapter);
+ if (ret < 0)
+ return ret;
+
get_pci_mode(adapter, &adapter->params.pci);
- pl_rev = t4_read_reg(adapter, A_PL_REV);
- adapter->params.chipid = G_CHIPID(pl_rev);
- adapter->params.rev = G_REV(pl_rev);
- if (adapter->params.chipid == 0) {
- /* T4 did not have chipid in PL_REV (T5 onwards do) */
- adapter->params.chipid = CHELSIO_T4;
-
- /* T4A1 chip is not supported */
- if (adapter->params.rev == 1) {
- CH_ALERT(adapter, "T4 rev 1 chip is not supported.\n");
- return -EINVAL;
- }
+ adapter->params.rev = t4_read_reg(adapter, A_PL_REV);
+ /* T4A1 chip is no longer supported */
+ if (adapter->params.rev == 1) {
+ CH_ALERT(adapter, "T4 rev 1 chip is no longer supported\n");
+ return -EINVAL;
}
adapter->params.pci.vpd_cap_addr =
- t4_os_find_pci_capability(adapter, PCI_CAP_ID_VPD);
+ t4_os_find_pci_capability(adapter, PCI_CAP_ID_VPD);
ret = get_flash_params(adapter);
if (ret < 0)
@@ -5504,14 +5279,12 @@
if (ret < 0)
return ret;
- /* Cards with real ASICs have the chipid in the PCIe device id */
- t4_os_pci_read_cfg2(adapter, PCI_DEVICE_ID, &device_id);
- if (device_id >> 12 == adapter->params.chipid)
- adapter->params.cim_la_size = CIMLA_SIZE;
- else {
+ if (t4_read_reg(adapter, A_PCIE_REVISION) != 0) {
/* FPGA */
- adapter->params.fpga = 1;
adapter->params.cim_la_size = 2 * CIMLA_SIZE;
+ } else {
+ /* ASIC */
+ adapter->params.cim_la_size = CIMLA_SIZE;
}
init_cong_ctrl(adapter->params.a_wnd, adapter->params.b_wnd);
@@ -5528,91 +5301,6 @@
return 0;
}
-/**
- * t4_init_tp_params - initialize adap->params.tp
- * @adap: the adapter
- *
- * Initialize various fields of the adapter's TP Parameters structure.
- */
-int __devinit t4_init_tp_params(struct adapter *adap)
-{
- int chan;
- u32 v;
-
- v = t4_read_reg(adap, A_TP_TIMER_RESOLUTION);
- adap->params.tp.tre = G_TIMERRESOLUTION(v);
- adap->params.tp.dack_re = G_DELAYEDACKRESOLUTION(v);
-
- /* MODQ_REQ_MAP defaults to setting queues 0-3 to chan 0-3 */
- for (chan = 0; chan < NCHAN; chan++)
- adap->params.tp.tx_modq[chan] = chan;
-
- /*
- * Cache the adapter's Compressed Filter Mode and global Incress
- * Configuration.
- */
- t4_read_indirect(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA,
- &adap->params.tp.vlan_pri_map, 1,
- A_TP_VLAN_PRI_MAP);
- t4_read_indirect(adap, A_TP_PIO_ADDR, A_TP_PIO_DATA,
- &adap->params.tp.ingress_config, 1,
- A_TP_INGRESS_CONFIG);
-
- /*
- * Now that we have TP_VLAN_PRI_MAP cached, we can calculate the field
- * shift positions of several elements of the Compressed Filter Tuple
- * for this adapter which we need frequently ...
- */
- adap->params.tp.vlan_shift = t4_filter_field_shift(adap, F_VLAN);
- adap->params.tp.vnic_shift = t4_filter_field_shift(adap, F_VNIC_ID);
- adap->params.tp.port_shift = t4_filter_field_shift(adap, F_PORT);
- adap->params.tp.protocol_shift = t4_filter_field_shift(adap, F_PROTOCOL);
-
- /*
- * If TP_INGRESS_CONFIG.VNID == 0, then TP_VLAN_PRI_MAP.VNIC_ID
- * represents the presense of an Outer VLAN instead of a VNIC ID.
- */
- if ((adap->params.tp.ingress_config & F_VNIC) == 0)
- adap->params.tp.vnic_shift = -1;
-
- return 0;
-}
-
-/**
- * t4_filter_field_shift - calculate filter field shift
- * @adap: the adapter
- * @filter_sel: the desired field (from TP_VLAN_PRI_MAP bits)
- *
- * Return the shift position of a filter field within the Compressed
- * Filter Tuple. The filter field is specified via its selection bit
- * within TP_VLAN_PRI_MAL (filter mode). E.g. F_VLAN.
- */
-int t4_filter_field_shift(const struct adapter *adap, int filter_sel)
-{
- unsigned int filter_mode = adap->params.tp.vlan_pri_map;
- unsigned int sel;
- int field_shift;
-
- if ((filter_mode & filter_sel) == 0)
- return -1;
-
- for (sel = 1, field_shift = 0; sel < filter_sel; sel <<= 1) {
- switch (filter_mode & sel) {
- case F_FCOE: field_shift += W_FT_FCOE; break;
- case F_PORT: field_shift += W_FT_PORT; break;
- case F_VNIC_ID: field_shift += W_FT_VNIC_ID; break;
- case F_VLAN: field_shift += W_FT_VLAN; break;
- case F_TOS: field_shift += W_FT_TOS; break;
- case F_PROTOCOL: field_shift += W_FT_PROTOCOL; break;
- case F_ETHERTYPE: field_shift += W_FT_ETHERTYPE; break;
- case F_MACMATCH: field_shift += W_FT_MACMATCH; break;
- case F_MPSHITTYPE: field_shift += W_FT_MPSHITTYPE; break;
- case F_FRAGMENTATION: field_shift += W_FT_FRAGMENTATION; break;
- }
- }
- return field_shift;
-}
-
int __devinit t4_port_init(struct port_info *p, int mbox, int pf, int vf)
{
u8 addr[6];
Modified: trunk/sys/dev/cxgbe/common/t4_hw.h
===================================================================
--- trunk/sys/dev/cxgbe/common/t4_hw.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/t4_hw.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/common/t4_hw.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/common/t4_hw.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -33,32 +33,27 @@
#include "osdep.h"
enum {
- NCHAN = 4, /* # of HW channels */
- MAX_MTU = 9600, /* max MAC MTU, excluding header + FCS */
- EEPROMSIZE = 17408, /* Serial EEPROM physical size */
- EEPROMVSIZE = 32768, /* Serial EEPROM virtual address space size */
- EEPROMPFSIZE = 1024, /* EEPROM writable area size for PFn, n>0 */
- RSS_NENTRIES = 2048, /* # of entries in RSS mapping table */
- TCB_SIZE = 128, /* TCB size */
- NMTUS = 16, /* size of MTU table */
- NCCTRL_WIN = 32, /* # of congestion control windows */
- NTX_SCHED = 8, /* # of HW Tx scheduling queues */
- PM_NSTATS = 5, /* # of PM stats */
- MBOX_LEN = 64, /* mailbox size in bytes */
- TRACE_LEN = 112, /* length of trace data and mask */
- FILTER_OPT_LEN = 36, /* filter tuple width of optional components */
- NWOL_PAT = 8, /* # of WoL patterns */
- WOL_PAT_LEN = 128, /* length of WoL patterns */
- UDBS_SEG_SIZE = 128, /* Segment size of BAR2 doorbells */
- UDBS_SEG_SHIFT = 7, /* log2(UDBS_SEG_SIZE) */
- UDBS_DB_OFFSET = 8, /* offset of the 4B doorbell in a segment */
- UDBS_WR_OFFSET = 64, /* offset of the work request in a segment */
+ NCHAN = 4, /* # of HW channels */
+ MAX_MTU = 9600, /* max MAC MTU, excluding header + FCS */
+ EEPROMSIZE = 17408, /* Serial EEPROM physical size */
+ EEPROMVSIZE = 32768, /* Serial EEPROM virtual address space size */
+ EEPROMPFSIZE = 1024, /* EEPROM writable area size for PFn, n>0 */
+ RSS_NENTRIES = 2048, /* # of entries in RSS mapping table */
+ TCB_SIZE = 128, /* TCB size */
+ NMTUS = 16, /* size of MTU table */
+ NCCTRL_WIN = 32, /* # of congestion control windows */
+ NTX_SCHED = 8, /* # of HW Tx scheduling queues */
+ PM_NSTATS = 5, /* # of PM stats */
+ MBOX_LEN = 64, /* mailbox size in bytes */
+ TRACE_LEN = 112, /* length of trace data and mask */
+ FILTER_OPT_LEN = 36, /* filter tuple width for optional components */
+ NWOL_PAT = 8, /* # of WoL patterns */
+ WOL_PAT_LEN = 128, /* length of WoL patterns */
};
enum {
CIM_NUM_IBQ = 6, /* # of CIM IBQs */
CIM_NUM_OBQ = 6, /* # of CIM OBQs */
- CIM_NUM_OBQ_T5 = 8, /* # of CIM OBQs for T5 adapter */
CIMLA_SIZE = 2048, /* # of 32-bit words in CIM LA */
CIM_PIFLA_SIZE = 64, /* # of 192-bit words in CIM PIF LA */
CIM_MALA_SIZE = 64, /* # of 160-bit words in CIM MA LA */
@@ -85,7 +80,6 @@
SGE_CTXT_SIZE = 24, /* size of SGE context */
SGE_NTIMERS = 6, /* # of interrupt holdoff timer values */
SGE_NCOUNTERS = 4, /* # of interrupt packet counter values */
- SGE_MAX_IQ_SIZE = 65520,
};
struct sge_qstat { /* data written to SGE queue status entries */
@@ -227,19 +221,11 @@
* Location of firmware image in FLASH.
*/
FLASH_FW_START_SEC = 8,
- FLASH_FW_NSECS = 16,
+ FLASH_FW_NSECS = 8,
FLASH_FW_START = FLASH_START(FLASH_FW_START_SEC),
FLASH_FW_MAX_SIZE = FLASH_MAX_SIZE(FLASH_FW_NSECS),
-
+
/*
- * Location of bootstrap firmware image in FLASH.
- */
- FLASH_FWBOOTSTRAP_START_SEC = 27,
- FLASH_FWBOOTSTRAP_NSECS = 1,
- FLASH_FWBOOTSTRAP_START = FLASH_START(FLASH_FWBOOTSTRAP_START_SEC),
- FLASH_FWBOOTSTRAP_MAX_SIZE = FLASH_MAX_SIZE(FLASH_FWBOOTSTRAP_NSECS),
-
- /*
* iSCSI persistent/crash information.
*/
FLASH_ISCSI_CRASH_START_SEC = 29,
@@ -256,7 +242,10 @@
FLASH_FCOE_CRASH_MAX_SIZE = FLASH_MAX_SIZE(FLASH_FCOE_CRASH_NSECS),
/*
- * Location of Firmware Configuration File in FLASH.
+ * Location of Firmware Configuration File in FLASH. Since the FPGA
+ * "FLASH" is smaller we need to store the Configuration File in a
+ * different location -- which will overlap the end of the firmware
+ * image if firmware ever gets that large ...
*/
FLASH_CFG_START_SEC = 31,
FLASH_CFG_NSECS = 1,
@@ -263,6 +252,9 @@
FLASH_CFG_START = FLASH_START(FLASH_CFG_START_SEC),
FLASH_CFG_MAX_SIZE = FLASH_MAX_SIZE(FLASH_CFG_NSECS),
+ FLASH_FPGA_CFG_START_SEC = 15,
+ FLASH_FPGA_CFG_START = FLASH_START(FLASH_FPGA_CFG_START_SEC),
+
/*
* Sectors 32-63 are reserved for FLASH failover.
*/
Modified: trunk/sys/dev/cxgbe/common/t4_msg.h
===================================================================
--- trunk/sys/dev/cxgbe/common/t4_msg.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/t4_msg.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/common/t4_msg.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/common/t4_msg.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -104,7 +104,6 @@
CPL_RX_ISCSI_DDP = 0x49,
CPL_RX_FCOE_DIF = 0x4A,
CPL_RX_DATA_DIF = 0x4B,
- CPL_ERR_NOTIFY = 0x4D,
CPL_RDMA_READ_REQ = 0x60,
CPL_RX_ISCSI_DIF = 0x60,
@@ -126,7 +125,6 @@
CPL_RDMA_IMM_DATA_SE = 0xAD,
CPL_TRACE_PKT = 0xB0,
- CPL_TRACE_PKT_T5 = 0x48,
CPL_RX2TX_DATA = 0xB1,
CPL_ISCSI_DATA = 0xB2,
CPL_FCOE_DATA = 0xB3,
@@ -480,11 +478,6 @@
#define V_CONN_POLICY(x) ((x) << S_CONN_POLICY)
#define G_CONN_POLICY(x) (((x) >> S_CONN_POLICY) & M_CONN_POLICY)
-#define S_FILT_INFO 28
-#define M_FILT_INFO 0xfffffffffULL
-#define V_FILT_INFO(x) ((x) << S_FILT_INFO)
-#define G_FILT_INFO(x) (((x) >> S_FILT_INFO) & M_FILT_INFO)
-
/* option 2 fields */
#define S_RSS_QUEUE 0
#define M_RSS_QUEUE 0x3FF
@@ -559,10 +552,6 @@
#define V_SACK_EN(x) ((x) << S_SACK_EN)
#define F_SACK_EN V_SACK_EN(1U)
-#define S_T5_OPT_2_VALID 31
-#define V_T5_OPT_2_VALID(x) ((x) << S_T5_OPT_2_VALID)
-#define F_T5_OPT_2_VALID V_T5_OPT_2_VALID(1U)
-
struct cpl_pass_open_req {
WR_HDR;
union opcode_tid ot;
@@ -678,15 +667,6 @@
__be64 opt0;
};
-struct cpl_t5_pass_accept_rpl {
- WR_HDR;
- union opcode_tid ot;
- __be32 opt2;
- __be64 opt0;
- __be32 iss;
- __be32 rsvd;
-};
-
struct cpl_act_open_req {
WR_HDR;
union opcode_tid ot;
@@ -699,10 +679,6 @@
__be32 opt2;
};
-#define S_FILTER_TUPLE 24
-#define M_FILTER_TUPLE 0xFFFFFFFFFF
-#define V_FILTER_TUPLE(x) ((x) << S_FILTER_TUPLE)
-#define G_FILTER_TUPLE(x) (((x) >> S_FILTER_TUPLE) & M_FILTER_TUPLE)
struct cpl_t5_act_open_req {
WR_HDR;
union opcode_tid ot;
@@ -711,7 +687,7 @@
__be32 local_ip;
__be32 peer_ip;
__be64 opt0;
- __be32 iss;
+ __be32 rsvd;
__be32 opt2;
__be64 params;
};
@@ -740,7 +716,7 @@
__be64 peer_ip_hi;
__be64 peer_ip_lo;
__be64 opt0;
- __be32 iss;
+ __be32 rsvd;
__be32 opt2;
__be64 params;
};
@@ -1077,12 +1053,6 @@
#define V_TXPKT_OVLAN_IDX(x) ((x) << S_TXPKT_OVLAN_IDX)
#define G_TXPKT_OVLAN_IDX(x) (((x) >> S_TXPKT_OVLAN_IDX) & M_TXPKT_OVLAN_IDX)
-#define S_TXPKT_T5_OVLAN_IDX 12
-#define M_TXPKT_T5_OVLAN_IDX 0x7
-#define V_TXPKT_T5_OVLAN_IDX(x) ((x) << S_TXPKT_T5_OVLAN_IDX)
-#define G_TXPKT_T5_OVLAN_IDX(x) (((x) >> S_TXPKT_T5_OVLAN_IDX) & \
- M_TXPKT_T5_OVLAN_IDX)
-
#define S_TXPKT_INTF 16
#define M_TXPKT_INTF 0xF
#define V_TXPKT_INTF(x) ((x) << S_TXPKT_INTF)
@@ -1092,18 +1062,10 @@
#define V_TXPKT_SPECIAL_STAT(x) ((x) << S_TXPKT_SPECIAL_STAT)
#define F_TXPKT_SPECIAL_STAT V_TXPKT_SPECIAL_STAT(1U)
-#define S_TXPKT_T5_FCS_DIS 21
-#define V_TXPKT_T5_FCS_DIS(x) ((x) << S_TXPKT_T5_FCS_DIS)
-#define F_TXPKT_T5_FCS_DIS V_TXPKT_T5_FCS_DIS(1U)
-
#define S_TXPKT_INS_OVLAN 21
#define V_TXPKT_INS_OVLAN(x) ((x) << S_TXPKT_INS_OVLAN)
#define F_TXPKT_INS_OVLAN V_TXPKT_INS_OVLAN(1U)
-#define S_TXPKT_T5_INS_OVLAN 15
-#define V_TXPKT_T5_INS_OVLAN(x) ((x) << S_TXPKT_T5_INS_OVLAN)
-#define F_TXPKT_T5_INS_OVLAN V_TXPKT_T5_INS_OVLAN(1U)
-
#define S_TXPKT_STAT_DIS 22
#define V_TXPKT_STAT_DIS(x) ((x) << S_TXPKT_STAT_DIS)
#define F_TXPKT_STAT_DIS V_TXPKT_STAT_DIS(1U)
@@ -1246,11 +1208,6 @@
#define V_LSO_OPCODE(x) ((x) << S_LSO_OPCODE)
#define G_LSO_OPCODE(x) (((x) >> S_LSO_OPCODE) & M_LSO_OPCODE)
-#define S_LSO_T5_XFER_SIZE 0
-#define M_LSO_T5_XFER_SIZE 0xFFFFFFF
-#define V_LSO_T5_XFER_SIZE(x) ((x) << S_LSO_T5_XFER_SIZE)
-#define G_LSO_T5_XFER_SIZE(x) (((x) >> S_LSO_T5_XFER_SIZE) & M_LSO_T5_XFER_SIZE)
-
/* cpl_tx_pkt_lso_core.mss fields */
#define S_LSO_MSS 0
#define M_LSO_MSS 0x3FFF
@@ -1949,24 +1906,14 @@
#define G_L2T_W_INFO(x) (((x) >> S_L2T_W_INFO) & M_L2T_W_INFO)
#define S_L2T_W_PORT 8
-#define M_L2T_W_PORT 0x3
+#define M_L2T_W_PORT 0xF
#define V_L2T_W_PORT(x) ((x) << S_L2T_W_PORT)
#define G_L2T_W_PORT(x) (((x) >> S_L2T_W_PORT) & M_L2T_W_PORT)
-#define S_L2T_W_LPBK 10
-#define V_L2T_W_LPBK(x) ((x) << S_L2T_W_LPBK)
-#define F_L2T_W_PKBK V_L2T_W_LPBK(1U)
-
-#define S_L2T_W_ARPMISS 11
-#define V_L2T_W_ARPMISS(x) ((x) << S_L2T_W_ARPMISS)
-#define F_L2T_W_ARPMISS V_L2T_W_ARPMISS(1U)
-
#define S_L2T_W_NOREPLY 15
#define V_L2T_W_NOREPLY(x) ((x) << S_L2T_W_NOREPLY)
#define F_L2T_W_NOREPLY V_L2T_W_NOREPLY(1U)
-#define CPL_L2T_VLAN_NONE 0xfff
-
struct cpl_l2t_write_rpl {
RSS_HDR
union opcode_tid ot;
@@ -2447,14 +2394,6 @@
#define V_ULP_MEMIO_ORDER(x) ((x) << S_ULP_MEMIO_ORDER)
#define F_ULP_MEMIO_ORDER V_ULP_MEMIO_ORDER(1U)
-#define S_T5_ULP_MEMIO_IMM 23
-#define V_T5_ULP_MEMIO_IMM(x) ((x) << S_T5_ULP_MEMIO_IMM)
-#define F_T5_ULP_MEMIO_IMM V_T5_ULP_MEMIO_IMM(1U)
-
-#define S_T5_ULP_MEMIO_ORDER 22
-#define V_T5_ULP_MEMIO_ORDER(x) ((x) << S_T5_ULP_MEMIO_ORDER)
-#define F_T5_ULP_MEMIO_ORDER V_T5_ULP_MEMIO_ORDER(1U)
-
/* ulp_mem_io.lock_addr fields */
#define S_ULP_MEMIO_ADDR 0
#define M_ULP_MEMIO_ADDR 0x7FFFFFF
@@ -2469,14 +2408,6 @@
#define M_ULP_MEMIO_DATA_LEN 0x1F
#define V_ULP_MEMIO_DATA_LEN(x) ((x) << S_ULP_MEMIO_DATA_LEN)
-/* ULP_TXPKT field values */
-enum {
- ULP_TXPKT_DEST_TP = 0,
- ULP_TXPKT_DEST_SGE,
- ULP_TXPKT_DEST_UP,
- ULP_TXPKT_DEST_DEVNULL,
-};
-
struct ulp_txpkt {
__be32 cmd_dest;
__be32 len;
Modified: trunk/sys/dev/cxgbe/common/t4_regs.h
===================================================================
--- trunk/sys/dev/cxgbe/common/t4_regs.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/t4_regs.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2013 Chelsio Communications, Inc.
+ * Copyright (c) 2011 Chelsio Communications, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/common/t4_regs.h 252495 2013-07-02 04:27:16Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/common/t4_regs.h 218792 2011-02-18 08:00:26Z np $
*
*/
@@ -60,21 +60,6 @@
#define PF_BASE(idx) (PF0_BASE + (idx) * PF_STRIDE)
#define PF_REG(idx, reg) (PF_BASE(idx) + (reg))
-#define VF_SGE_BASE 0x0
-#define VF_SGE_REG(reg_addr) (VF_SGE_BASE + (reg_addr))
-
-#define VF_MPS_BASE 0x100
-#define VF_MPS_REG(reg_addr) (VF_MPS_BASE + (reg_addr))
-
-#define VF_PL_BASE 0x200
-#define VF_PL_REG(reg_addr) (VF_PL_BASE + (reg_addr))
-
-#define VF_MBDATA_BASE 0x240
-#define VF_MBDATA_REG(reg_addr) (VF_MBDATA_BASE + (reg_addr))
-
-#define VF_CIM_BASE 0x300
-#define VF_CIM_REG(reg_addr) (VF_CIM_BASE + (reg_addr))
-
#define MYPORT_BASE 0x1c000
#define MYPORT_REG(reg_addr) (MYPORT_BASE + (reg_addr))
@@ -94,6 +79,24 @@
#define PORT_BASE(idx) (PORT0_BASE + (idx) * PORT_STRIDE)
#define PORT_REG(idx, reg) (PORT_BASE(idx) + (reg))
+#define VF_SGE_BASE 0x0
+#define VF_SGE_REG(reg_addr) (VF_SGE_BASE + (reg_addr))
+
+#define VF_MPS_BASE 0x100
+#define VF_MPS_REG(reg_addr) (VF_MPS_BASE + (reg_addr))
+
+#define VF_PL_BASE 0x200
+#define VF_PL_REG(reg_addr) (VF_PL_BASE + (reg_addr))
+
+#define VF_MBDATA_BASE 0x240
+#define VF_MBDATA_REG(reg_addr) (VF_MBDATA_BASE + (reg_addr))
+
+#define VF_CIM_BASE 0x300
+#define VF_CIM_REG(reg_addr) (VF_CIM_BASE + (reg_addr))
+
+#define EDC_STRIDE (EDC_1_BASE_ADDR - EDC_0_BASE_ADDR)
+#define EDC_REG(reg, idx) (reg + EDC_STRIDE * idx)
+
#define SGE_QUEUE_BASE_MAP_HIGH(idx) (A_SGE_QUEUE_BASE_MAP_HIGH + (idx) * 8)
#define NUM_SGE_QUEUE_BASE_MAP_HIGH_INSTANCES 136
@@ -262,115 +265,6 @@
#define CIM_CTL_TSCH_CHANNEL_TSCH_CLASS_REG(reg_addr, idx) ((reg_addr) + (idx) * 16)
#define NUM_CIM_CTL_TSCH_CHANNEL_TSCH_CLASS_INSTANCES 16
-#define T5_MYPORT_BASE 0x2c000
-#define T5_MYPORT_REG(reg_addr) (T5_MYPORT_BASE + (reg_addr))
-
-#define T5_PORT0_BASE 0x30000
-#define T5_PORT0_REG(reg_addr) (T5_PORT0_BASE + (reg_addr))
-
-#define T5_PORT1_BASE 0x34000
-#define T5_PORT1_REG(reg_addr) (T5_PORT1_BASE + (reg_addr))
-
-#define T5_PORT2_BASE 0x38000
-#define T5_PORT2_REG(reg_addr) (T5_PORT2_BASE + (reg_addr))
-
-#define T5_PORT3_BASE 0x3c000
-#define T5_PORT3_REG(reg_addr) (T5_PORT3_BASE + (reg_addr))
-
-#define T5_PORT_STRIDE 0x4000
-#define T5_PORT_BASE(idx) (T5_PORT0_BASE + (idx) * T5_PORT_STRIDE)
-#define T5_PORT_REG(idx, reg) (T5_PORT_BASE(idx) + (reg))
-
-#define MC_STRIDE (MC_1_BASE_ADDR - MC_0_BASE_ADDR)
-#define MC_REG(reg, idx) (reg + MC_STRIDE * idx)
-
-#define PCIE_PF_INT_REG(reg_addr, idx) ((reg_addr) + (idx) * 8)
-#define NUM_PCIE_PF_INT_INSTANCES 8
-
-#define PCIE_VF_INT_REG(reg_addr, idx) ((reg_addr) + (idx) * 8)
-#define NUM_PCIE_VF_INT_INSTANCES 128
-
-#define PCIE_FID_VFID(idx) (A_PCIE_FID_VFID + (idx) * 4)
-#define NUM_PCIE_FID_VFID_INSTANCES 2048
-
-#define PCIE_COOKIE_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_PCIE_COOKIE_INSTANCES 8
-
-#define PCIE_T5_DMA_REG(reg_addr, idx) ((reg_addr) + (idx) * 16)
-#define NUM_PCIE_T5_DMA_INSTANCES 4
-
-#define PCIE_T5_CMD_REG(reg_addr, idx) ((reg_addr) + (idx) * 16)
-#define NUM_PCIE_T5_CMD_INSTANCES 3
-
-#define PCIE_T5_HMA_REG(reg_addr, idx) ((reg_addr) + (idx) * 16)
-#define NUM_PCIE_T5_HMA_INSTANCES 1
-
-#define PCIE_PHY_PRESET_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_PCIE_PHY_PRESET_INSTANCES 11
-
-#define MPS_T5_CLS_SRAM_L(idx) (A_MPS_T5_CLS_SRAM_L + (idx) * 8)
-#define NUM_MPS_T5_CLS_SRAM_L_INSTANCES 512
-
-#define MPS_T5_CLS_SRAM_H(idx) (A_MPS_T5_CLS_SRAM_H + (idx) * 8)
-#define NUM_MPS_T5_CLS_SRAM_H_INSTANCES 512
-
-#define LE_T5_DB_MASK_IPV4(idx) (A_LE_T5_DB_MASK_IPV4 + (idx) * 4)
-#define NUM_LE_T5_DB_MASK_IPV4_INSTANCES 5
-
-#define LE_T5_DB_ACTIVE_MASK_IPV4(idx) (A_LE_T5_DB_ACTIVE_MASK_IPV4 + (idx) * 4)
-#define NUM_LE_T5_DB_ACTIVE_MASK_IPV4_INSTANCES 5
-
-#define LE_HASH_MASK_GEN_IPV4T5(idx) (A_LE_HASH_MASK_GEN_IPV4T5 + (idx) * 4)
-#define NUM_LE_HASH_MASK_GEN_IPV4T5_INSTANCES 5
-
-#define LE_HASH_MASK_GEN_IPV6T5(idx) (A_LE_HASH_MASK_GEN_IPV6T5 + (idx) * 4)
-#define NUM_LE_HASH_MASK_GEN_IPV6T5_INSTANCES 12
-
-#define LE_HASH_MASK_CMP_IPV4T5(idx) (A_LE_HASH_MASK_CMP_IPV4T5 + (idx) * 4)
-#define NUM_LE_HASH_MASK_CMP_IPV4T5_INSTANCES 5
-
-#define LE_HASH_MASK_CMP_IPV6T5(idx) (A_LE_HASH_MASK_CMP_IPV6T5 + (idx) * 4)
-#define NUM_LE_HASH_MASK_CMP_IPV6T5_INSTANCES 12
-
-#define LE_DB_SECOND_ACTIVE_MASK_IPV4(idx) (A_LE_DB_SECOND_ACTIVE_MASK_IPV4 + (idx) * 4)
-#define NUM_LE_DB_SECOND_ACTIVE_MASK_IPV4_INSTANCES 5
-
-#define LE_DB_SECOND_GEN_HASH_MASK_IPV4(idx) (A_LE_DB_SECOND_GEN_HASH_MASK_IPV4 + (idx) * 4)
-#define NUM_LE_DB_SECOND_GEN_HASH_MASK_IPV4_INSTANCES 5
-
-#define LE_DB_SECOND_CMP_HASH_MASK_IPV4(idx) (A_LE_DB_SECOND_CMP_HASH_MASK_IPV4 + (idx) * 4)
-#define NUM_LE_DB_SECOND_CMP_HASH_MASK_IPV4_INSTANCES 5
-
-#define MC_ADR_REG(reg_addr, idx) ((reg_addr) + (idx) * 512)
-#define NUM_MC_ADR_INSTANCES 2
-
-#define MC_DDRPHY_DP18_REG(reg_addr, idx) ((reg_addr) + (idx) * 512)
-#define NUM_MC_DDRPHY_DP18_INSTANCES 5
-
-#define MC_CE_ERR_DATA_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_MC_CE_ERR_DATA_INSTANCES 8
-
-#define MC_CE_COR_DATA_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_MC_CE_COR_DATA_INSTANCES 8
-
-#define MC_UE_ERR_DATA_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_MC_UE_ERR_DATA_INSTANCES 8
-
-#define MC_UE_COR_DATA_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_MC_UE_COR_DATA_INSTANCES 8
-
-#define MC_P_BIST_STATUS_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_MC_P_BIST_STATUS_INSTANCES 18
-
-#define EDC_H_BIST_STATUS_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_EDC_H_BIST_STATUS_INSTANCES 18
-
-#define EDC_H_ECC_ERR_DATA_REG(reg_addr, idx) ((reg_addr) + (idx) * 4)
-#define NUM_EDC_H_ECC_ERR_DATA_INSTANCES 16
-
-#define EDC_STRIDE (EDC_1_BASE_ADDR - EDC_0_BASE_ADDR)
-#define EDC_REG(reg, idx) (reg + EDC_STRIDE * idx)
-
/* registers for module SGE */
#define SGE_BASE_ADDR 0x1000
@@ -391,16 +285,6 @@
#define G_PIDX(x) (((x) >> S_PIDX) & M_PIDX)
#define A_SGE_VF_KDOORBELL 0x0
-
-#define S_DBTYPE 13
-#define V_DBTYPE(x) ((x) << S_DBTYPE)
-#define F_DBTYPE V_DBTYPE(1U)
-
-#define S_PIDX_T5 0
-#define M_PIDX_T5 0x1fffU
-#define V_PIDX_T5(x) ((x) << S_PIDX_T5)
-#define G_PIDX_T5(x) (((x) >> S_PIDX_T5) & M_PIDX_T5)
-
#define A_SGE_PF_GTS 0x4
#define S_INGRESSQID 16
@@ -423,16 +307,6 @@
#define G_CIDXINC(x) (((x) >> S_CIDXINC) & M_CIDXINC)
#define A_SGE_VF_GTS 0x4
-#define A_SGE_PF_KTIMESTAMP_LO 0x8
-#define A_SGE_VF_KTIMESTAMP_LO 0x8
-#define A_SGE_PF_KTIMESTAMP_HI 0xc
-
-#define S_TSTAMPVAL 0
-#define M_TSTAMPVAL 0xfffffffU
-#define V_TSTAMPVAL(x) ((x) << S_TSTAMPVAL)
-#define G_TSTAMPVAL(x) (((x) >> S_TSTAMPVAL) & M_TSTAMPVAL)
-
-#define A_SGE_VF_KTIMESTAMP_HI 0xc
#define A_SGE_CONTROL 0x1008
#define S_IGRALLCPLTOFL 31
@@ -789,10 +663,6 @@
#define V_PERR_EGR_CTXT_MIFRSP(x) ((x) << S_PERR_EGR_CTXT_MIFRSP)
#define F_PERR_EGR_CTXT_MIFRSP V_PERR_EGR_CTXT_MIFRSP(1U)
-#define S_PERR_PC_CHPI_RSP2 31
-#define V_PERR_PC_CHPI_RSP2(x) ((x) << S_PERR_PC_CHPI_RSP2)
-#define F_PERR_PC_CHPI_RSP2 V_PERR_PC_CHPI_RSP2(1U)
-
#define A_SGE_INT_ENABLE1 0x1028
#define A_SGE_PERR_ENABLE1 0x102c
#define A_SGE_INT_CAUSE2 0x1030
@@ -921,22 +791,6 @@
#define V_PERR_BASE_SIZE(x) ((x) << S_PERR_BASE_SIZE)
#define F_PERR_BASE_SIZE V_PERR_BASE_SIZE(1U)
-#define S_PERR_DBP_HINT_FL_FIFO 24
-#define V_PERR_DBP_HINT_FL_FIFO(x) ((x) << S_PERR_DBP_HINT_FL_FIFO)
-#define F_PERR_DBP_HINT_FL_FIFO V_PERR_DBP_HINT_FL_FIFO(1U)
-
-#define S_PERR_EGR_DBP_TX_COAL 23
-#define V_PERR_EGR_DBP_TX_COAL(x) ((x) << S_PERR_EGR_DBP_TX_COAL)
-#define F_PERR_EGR_DBP_TX_COAL V_PERR_EGR_DBP_TX_COAL(1U)
-
-#define S_PERR_DBP_FL_FIFO 22
-#define V_PERR_DBP_FL_FIFO(x) ((x) << S_PERR_DBP_FL_FIFO)
-#define F_PERR_DBP_FL_FIFO V_PERR_DBP_FL_FIFO(1U)
-
-#define S_PERR_PC_DBP2 15
-#define V_PERR_PC_DBP2(x) ((x) << S_PERR_PC_DBP2)
-#define F_PERR_PC_DBP2 V_PERR_PC_DBP2(1U)
-
#define A_SGE_INT_ENABLE2 0x1034
#define A_SGE_PERR_ENABLE2 0x1038
#define A_SGE_INT_CAUSE3 0x103c
@@ -1141,11 +995,6 @@
#define V_NOEDRAM(x) ((x) << S_NOEDRAM)
#define F_NOEDRAM V_NOEDRAM(1U)
-#define S_CREDITCNTPACKING 2
-#define M_CREDITCNTPACKING 0x3U
-#define V_CREDITCNTPACKING(x) ((x) << S_CREDITCNTPACKING)
-#define G_CREDITCNTPACKING(x) (((x) >> S_CREDITCNTPACKING) & M_CREDITCNTPACKING)
-
#define A_SGE_CONM_CTRL 0x1094
#define S_EGRTHRESHOLD 8
@@ -1166,11 +1015,6 @@
#define V_TP_ENABLE(x) ((x) << S_TP_ENABLE)
#define F_TP_ENABLE V_TP_ENABLE(1U)
-#define S_EGRTHRESHOLDPACKING 14
-#define M_EGRTHRESHOLDPACKING 0x3fU
-#define V_EGRTHRESHOLDPACKING(x) ((x) << S_EGRTHRESHOLDPACKING)
-#define G_EGRTHRESHOLDPACKING(x) (((x) >> S_EGRTHRESHOLDPACKING) & M_EGRTHRESHOLDPACKING)
-
#define A_SGE_TIMESTAMP_LO 0x1098
#define A_SGE_TIMESTAMP_HI 0x109c
@@ -1228,24 +1072,6 @@
#define V_LP_COUNT(x) ((x) << S_LP_COUNT)
#define G_LP_COUNT(x) (((x) >> S_LP_COUNT) & M_LP_COUNT)
-#define S_BAR2VALID 31
-#define V_BAR2VALID(x) ((x) << S_BAR2VALID)
-#define F_BAR2VALID V_BAR2VALID(1U)
-
-#define S_BAR2FULL 30
-#define V_BAR2FULL(x) ((x) << S_BAR2FULL)
-#define F_BAR2FULL V_BAR2FULL(1U)
-
-#define S_LP_INT_THRESH_T5 18
-#define M_LP_INT_THRESH_T5 0xfffU
-#define V_LP_INT_THRESH_T5(x) ((x) << S_LP_INT_THRESH_T5)
-#define G_LP_INT_THRESH_T5(x) (((x) >> S_LP_INT_THRESH_T5) & M_LP_INT_THRESH_T5)
-
-#define S_LP_COUNT_T5 0
-#define M_LP_COUNT_T5 0x3ffffU
-#define V_LP_COUNT_T5(x) ((x) << S_LP_COUNT_T5)
-#define G_LP_COUNT_T5(x) (((x) >> S_LP_COUNT_T5) & M_LP_COUNT_T5)
-
#define A_SGE_DOORBELL_CONTROL 0x10a8
#define S_HINTDEPTHCTL 27
@@ -1327,23 +1153,6 @@
#define V_THROTTLE_ENABLE(x) ((x) << S_THROTTLE_ENABLE)
#define F_THROTTLE_ENABLE V_THROTTLE_ENABLE(1U)
-#define S_BAR2THROTTLECOUNT 16
-#define M_BAR2THROTTLECOUNT 0xffU
-#define V_BAR2THROTTLECOUNT(x) ((x) << S_BAR2THROTTLECOUNT)
-#define G_BAR2THROTTLECOUNT(x) (((x) >> S_BAR2THROTTLECOUNT) & M_BAR2THROTTLECOUNT)
-
-#define S_CLRCOALESCEDISABLE 15
-#define V_CLRCOALESCEDISABLE(x) ((x) << S_CLRCOALESCEDISABLE)
-#define F_CLRCOALESCEDISABLE V_CLRCOALESCEDISABLE(1U)
-
-#define S_OPENBAR2GATEONCE 14
-#define V_OPENBAR2GATEONCE(x) ((x) << S_OPENBAR2GATEONCE)
-#define F_OPENBAR2GATEONCE V_OPENBAR2GATEONCE(1U)
-
-#define S_FORCEOPENBAR2GATE 13
-#define V_FORCEOPENBAR2GATE(x) ((x) << S_FORCEOPENBAR2GATE)
-#define F_FORCEOPENBAR2GATE V_FORCEOPENBAR2GATE(1U)
-
#define A_SGE_ITP_CONTROL 0x10b4
#define S_CRITICAL_TIME 10
@@ -1498,90 +1307,6 @@
#define V_ERR_UNEXPECTED_TIMER(x) ((x) << S_ERR_UNEXPECTED_TIMER)
#define F_ERR_UNEXPECTED_TIMER V_ERR_UNEXPECTED_TIMER(1U)
-#define S_BAR2_EGRESS_LEN_OR_ADDR_ERR 29
-#define V_BAR2_EGRESS_LEN_OR_ADDR_ERR(x) ((x) << S_BAR2_EGRESS_LEN_OR_ADDR_ERR)
-#define F_BAR2_EGRESS_LEN_OR_ADDR_ERR V_BAR2_EGRESS_LEN_OR_ADDR_ERR(1U)
-
-#define S_ERR_CPL_EXCEED_MAX_IQE_SIZE1 28
-#define V_ERR_CPL_EXCEED_MAX_IQE_SIZE1(x) ((x) << S_ERR_CPL_EXCEED_MAX_IQE_SIZE1)
-#define F_ERR_CPL_EXCEED_MAX_IQE_SIZE1 V_ERR_CPL_EXCEED_MAX_IQE_SIZE1(1U)
-
-#define S_ERR_CPL_EXCEED_MAX_IQE_SIZE0 27
-#define V_ERR_CPL_EXCEED_MAX_IQE_SIZE0(x) ((x) << S_ERR_CPL_EXCEED_MAX_IQE_SIZE0)
-#define F_ERR_CPL_EXCEED_MAX_IQE_SIZE0 V_ERR_CPL_EXCEED_MAX_IQE_SIZE0(1U)
-
-#define S_ERR_WR_LEN_TOO_LARGE3 26
-#define V_ERR_WR_LEN_TOO_LARGE3(x) ((x) << S_ERR_WR_LEN_TOO_LARGE3)
-#define F_ERR_WR_LEN_TOO_LARGE3 V_ERR_WR_LEN_TOO_LARGE3(1U)
-
-#define S_ERR_WR_LEN_TOO_LARGE2 25
-#define V_ERR_WR_LEN_TOO_LARGE2(x) ((x) << S_ERR_WR_LEN_TOO_LARGE2)
-#define F_ERR_WR_LEN_TOO_LARGE2 V_ERR_WR_LEN_TOO_LARGE2(1U)
-
-#define S_ERR_WR_LEN_TOO_LARGE1 24
-#define V_ERR_WR_LEN_TOO_LARGE1(x) ((x) << S_ERR_WR_LEN_TOO_LARGE1)
-#define F_ERR_WR_LEN_TOO_LARGE1 V_ERR_WR_LEN_TOO_LARGE1(1U)
-
-#define S_ERR_WR_LEN_TOO_LARGE0 23
-#define V_ERR_WR_LEN_TOO_LARGE0(x) ((x) << S_ERR_WR_LEN_TOO_LARGE0)
-#define F_ERR_WR_LEN_TOO_LARGE0 V_ERR_WR_LEN_TOO_LARGE0(1U)
-
-#define S_ERR_LARGE_MINFETCH_WITH_TXCOAL3 22
-#define V_ERR_LARGE_MINFETCH_WITH_TXCOAL3(x) ((x) << S_ERR_LARGE_MINFETCH_WITH_TXCOAL3)
-#define F_ERR_LARGE_MINFETCH_WITH_TXCOAL3 V_ERR_LARGE_MINFETCH_WITH_TXCOAL3(1U)
-
-#define S_ERR_LARGE_MINFETCH_WITH_TXCOAL2 21
-#define V_ERR_LARGE_MINFETCH_WITH_TXCOAL2(x) ((x) << S_ERR_LARGE_MINFETCH_WITH_TXCOAL2)
-#define F_ERR_LARGE_MINFETCH_WITH_TXCOAL2 V_ERR_LARGE_MINFETCH_WITH_TXCOAL2(1U)
-
-#define S_ERR_LARGE_MINFETCH_WITH_TXCOAL1 20
-#define V_ERR_LARGE_MINFETCH_WITH_TXCOAL1(x) ((x) << S_ERR_LARGE_MINFETCH_WITH_TXCOAL1)
-#define F_ERR_LARGE_MINFETCH_WITH_TXCOAL1 V_ERR_LARGE_MINFETCH_WITH_TXCOAL1(1U)
-
-#define S_ERR_LARGE_MINFETCH_WITH_TXCOAL0 19
-#define V_ERR_LARGE_MINFETCH_WITH_TXCOAL0(x) ((x) << S_ERR_LARGE_MINFETCH_WITH_TXCOAL0)
-#define F_ERR_LARGE_MINFETCH_WITH_TXCOAL0 V_ERR_LARGE_MINFETCH_WITH_TXCOAL0(1U)
-
-#define S_COAL_WITH_HP_DISABLE_ERR 18
-#define V_COAL_WITH_HP_DISABLE_ERR(x) ((x) << S_COAL_WITH_HP_DISABLE_ERR)
-#define F_COAL_WITH_HP_DISABLE_ERR V_COAL_WITH_HP_DISABLE_ERR(1U)
-
-#define S_BAR2_EGRESS_COAL0_ERR 17
-#define V_BAR2_EGRESS_COAL0_ERR(x) ((x) << S_BAR2_EGRESS_COAL0_ERR)
-#define F_BAR2_EGRESS_COAL0_ERR V_BAR2_EGRESS_COAL0_ERR(1U)
-
-#define S_BAR2_EGRESS_SIZE_ERR 16
-#define V_BAR2_EGRESS_SIZE_ERR(x) ((x) << S_BAR2_EGRESS_SIZE_ERR)
-#define F_BAR2_EGRESS_SIZE_ERR V_BAR2_EGRESS_SIZE_ERR(1U)
-
-#define S_FLM_PC_RSP_ERR 15
-#define V_FLM_PC_RSP_ERR(x) ((x) << S_FLM_PC_RSP_ERR)
-#define F_FLM_PC_RSP_ERR V_FLM_PC_RSP_ERR(1U)
-
-#define S_DBFIFO_HP_INT_LOW 14
-#define V_DBFIFO_HP_INT_LOW(x) ((x) << S_DBFIFO_HP_INT_LOW)
-#define F_DBFIFO_HP_INT_LOW V_DBFIFO_HP_INT_LOW(1U)
-
-#define S_DBFIFO_LP_INT_LOW 13
-#define V_DBFIFO_LP_INT_LOW(x) ((x) << S_DBFIFO_LP_INT_LOW)
-#define F_DBFIFO_LP_INT_LOW V_DBFIFO_LP_INT_LOW(1U)
-
-#define S_DBFIFO_FL_INT_LOW 12
-#define V_DBFIFO_FL_INT_LOW(x) ((x) << S_DBFIFO_FL_INT_LOW)
-#define F_DBFIFO_FL_INT_LOW V_DBFIFO_FL_INT_LOW(1U)
-
-#define S_DBFIFO_FL_INT 11
-#define V_DBFIFO_FL_INT(x) ((x) << S_DBFIFO_FL_INT)
-#define F_DBFIFO_FL_INT V_DBFIFO_FL_INT(1U)
-
-#define S_ERR_RX_CPL_PACKET_SIZE1 10
-#define V_ERR_RX_CPL_PACKET_SIZE1(x) ((x) << S_ERR_RX_CPL_PACKET_SIZE1)
-#define F_ERR_RX_CPL_PACKET_SIZE1 V_ERR_RX_CPL_PACKET_SIZE1(1U)
-
-#define S_ERR_RX_CPL_PACKET_SIZE0 9
-#define V_ERR_RX_CPL_PACKET_SIZE0(x) ((x) << S_ERR_RX_CPL_PACKET_SIZE0)
-#define F_ERR_RX_CPL_PACKET_SIZE0 V_ERR_RX_CPL_PACKET_SIZE0(1U)
-
#define A_SGE_INT_ENABLE4 0x10e0
#define A_SGE_STAT_TOTAL 0x10e4
#define A_SGE_STAT_MATCH 0x10e8
@@ -1611,11 +1336,6 @@
#define V_STATSOURCE(x) ((x) << S_STATSOURCE)
#define G_STATSOURCE(x) (((x) >> S_STATSOURCE) & M_STATSOURCE)
-#define S_STATSOURCE_T5 9
-#define M_STATSOURCE_T5 0xfU
-#define V_STATSOURCE_T5(x) ((x) << S_STATSOURCE_T5)
-#define G_STATSOURCE_T5(x) (((x) >> S_STATSOURCE_T5) & M_STATSOURCE_T5)
-
#define A_SGE_HINT_CFG 0x10f0
#define S_HINTSALLOWEDNOHDR 6
@@ -1628,11 +1348,6 @@
#define V_HINTSALLOWEDHDR(x) ((x) << S_HINTSALLOWEDHDR)
#define G_HINTSALLOWEDHDR(x) (((x) >> S_HINTSALLOWEDHDR) & M_HINTSALLOWEDHDR)
-#define S_UPCUTOFFTHRESHLP 12
-#define M_UPCUTOFFTHRESHLP 0x7ffU
-#define V_UPCUTOFFTHRESHLP(x) ((x) << S_UPCUTOFFTHRESHLP)
-#define G_UPCUTOFFTHRESHLP(x) (((x) >> S_UPCUTOFFTHRESHLP) & M_UPCUTOFFTHRESHLP)
-
#define A_SGE_INGRESS_QUEUES_PER_PAGE_PF 0x10f4
#define A_SGE_INGRESS_QUEUES_PER_PAGE_VF 0x10f8
#define A_SGE_PD_WRR_CONFIG 0x10fc
@@ -1657,16 +1372,6 @@
#define V_ERROR_QID(x) ((x) << S_ERROR_QID)
#define G_ERROR_QID(x) (((x) >> S_ERROR_QID) & M_ERROR_QID)
-#define S_CAUSE_REGISTER 24
-#define M_CAUSE_REGISTER 0x7U
-#define V_CAUSE_REGISTER(x) ((x) << S_CAUSE_REGISTER)
-#define G_CAUSE_REGISTER(x) (((x) >> S_CAUSE_REGISTER) & M_CAUSE_REGISTER)
-
-#define S_CAUSE_BIT 19
-#define M_CAUSE_BIT 0x1fU
-#define V_CAUSE_BIT(x) ((x) << S_CAUSE_BIT)
-#define G_CAUSE_BIT(x) (((x) >> S_CAUSE_BIT) & M_CAUSE_BIT)
-
#define A_SGE_SHARED_TAG_CHAN_CFG 0x1104
#define S_MINTAG3 24
@@ -1696,403 +1401,6 @@
#define V_TAGPOOLTOTAL(x) ((x) << S_TAGPOOLTOTAL)
#define G_TAGPOOLTOTAL(x) (((x) >> S_TAGPOOLTOTAL) & M_TAGPOOLTOTAL)
-#define A_SGE_INT_CAUSE5 0x110c
-
-#define S_ERR_T_RXCRC 31
-#define V_ERR_T_RXCRC(x) ((x) << S_ERR_T_RXCRC)
-#define F_ERR_T_RXCRC V_ERR_T_RXCRC(1U)
-
-#define S_PERR_MC_RSPDATA 30
-#define V_PERR_MC_RSPDATA(x) ((x) << S_PERR_MC_RSPDATA)
-#define F_PERR_MC_RSPDATA V_PERR_MC_RSPDATA(1U)
-
-#define S_PERR_PC_RSPDATA 29
-#define V_PERR_PC_RSPDATA(x) ((x) << S_PERR_PC_RSPDATA)
-#define F_PERR_PC_RSPDATA V_PERR_PC_RSPDATA(1U)
-
-#define S_PERR_PD_RDRSPDATA 28
-#define V_PERR_PD_RDRSPDATA(x) ((x) << S_PERR_PD_RDRSPDATA)
-#define F_PERR_PD_RDRSPDATA V_PERR_PD_RDRSPDATA(1U)
-
-#define S_PERR_U_RXDATA 27
-#define V_PERR_U_RXDATA(x) ((x) << S_PERR_U_RXDATA)
-#define F_PERR_U_RXDATA V_PERR_U_RXDATA(1U)
-
-#define S_PERR_UD_RXDATA 26
-#define V_PERR_UD_RXDATA(x) ((x) << S_PERR_UD_RXDATA)
-#define F_PERR_UD_RXDATA V_PERR_UD_RXDATA(1U)
-
-#define S_PERR_UP_DATA 25
-#define V_PERR_UP_DATA(x) ((x) << S_PERR_UP_DATA)
-#define F_PERR_UP_DATA V_PERR_UP_DATA(1U)
-
-#define S_PERR_CIM2SGE_RXDATA 24
-#define V_PERR_CIM2SGE_RXDATA(x) ((x) << S_PERR_CIM2SGE_RXDATA)
-#define F_PERR_CIM2SGE_RXDATA V_PERR_CIM2SGE_RXDATA(1U)
-
-#define S_PERR_HINT_DELAY_FIFO1_T5 23
-#define V_PERR_HINT_DELAY_FIFO1_T5(x) ((x) << S_PERR_HINT_DELAY_FIFO1_T5)
-#define F_PERR_HINT_DELAY_FIFO1_T5 V_PERR_HINT_DELAY_FIFO1_T5(1U)
-
-#define S_PERR_HINT_DELAY_FIFO0_T5 22
-#define V_PERR_HINT_DELAY_FIFO0_T5(x) ((x) << S_PERR_HINT_DELAY_FIFO0_T5)
-#define F_PERR_HINT_DELAY_FIFO0_T5 V_PERR_HINT_DELAY_FIFO0_T5(1U)
-
-#define S_PERR_IMSG_PD_FIFO_T5 21
-#define V_PERR_IMSG_PD_FIFO_T5(x) ((x) << S_PERR_IMSG_PD_FIFO_T5)
-#define F_PERR_IMSG_PD_FIFO_T5 V_PERR_IMSG_PD_FIFO_T5(1U)
-
-#define S_PERR_ULPTX_FIFO1_T5 20
-#define V_PERR_ULPTX_FIFO1_T5(x) ((x) << S_PERR_ULPTX_FIFO1_T5)
-#define F_PERR_ULPTX_FIFO1_T5 V_PERR_ULPTX_FIFO1_T5(1U)
-
-#define S_PERR_ULPTX_FIFO0_T5 19
-#define V_PERR_ULPTX_FIFO0_T5(x) ((x) << S_PERR_ULPTX_FIFO0_T5)
-#define F_PERR_ULPTX_FIFO0_T5 V_PERR_ULPTX_FIFO0_T5(1U)
-
-#define S_PERR_IDMA2IMSG_FIFO1_T5 18
-#define V_PERR_IDMA2IMSG_FIFO1_T5(x) ((x) << S_PERR_IDMA2IMSG_FIFO1_T5)
-#define F_PERR_IDMA2IMSG_FIFO1_T5 V_PERR_IDMA2IMSG_FIFO1_T5(1U)
-
-#define S_PERR_IDMA2IMSG_FIFO0_T5 17
-#define V_PERR_IDMA2IMSG_FIFO0_T5(x) ((x) << S_PERR_IDMA2IMSG_FIFO0_T5)
-#define F_PERR_IDMA2IMSG_FIFO0_T5 V_PERR_IDMA2IMSG_FIFO0_T5(1U)
-
-#define S_PERR_POINTER_DATA_FIFO0 16
-#define V_PERR_POINTER_DATA_FIFO0(x) ((x) << S_PERR_POINTER_DATA_FIFO0)
-#define F_PERR_POINTER_DATA_FIFO0 V_PERR_POINTER_DATA_FIFO0(1U)
-
-#define S_PERR_POINTER_DATA_FIFO1 15
-#define V_PERR_POINTER_DATA_FIFO1(x) ((x) << S_PERR_POINTER_DATA_FIFO1)
-#define F_PERR_POINTER_DATA_FIFO1 V_PERR_POINTER_DATA_FIFO1(1U)
-
-#define S_PERR_POINTER_HDR_FIFO0 14
-#define V_PERR_POINTER_HDR_FIFO0(x) ((x) << S_PERR_POINTER_HDR_FIFO0)
-#define F_PERR_POINTER_HDR_FIFO0 V_PERR_POINTER_HDR_FIFO0(1U)
-
-#define S_PERR_POINTER_HDR_FIFO1 13
-#define V_PERR_POINTER_HDR_FIFO1(x) ((x) << S_PERR_POINTER_HDR_FIFO1)
-#define F_PERR_POINTER_HDR_FIFO1 V_PERR_POINTER_HDR_FIFO1(1U)
-
-#define S_PERR_PAYLOAD_FIFO0 12
-#define V_PERR_PAYLOAD_FIFO0(x) ((x) << S_PERR_PAYLOAD_FIFO0)
-#define F_PERR_PAYLOAD_FIFO0 V_PERR_PAYLOAD_FIFO0(1U)
-
-#define S_PERR_PAYLOAD_FIFO1 11
-#define V_PERR_PAYLOAD_FIFO1(x) ((x) << S_PERR_PAYLOAD_FIFO1)
-#define F_PERR_PAYLOAD_FIFO1 V_PERR_PAYLOAD_FIFO1(1U)
-
-#define S_PERR_EDMA_INPUT_FIFO3 10
-#define V_PERR_EDMA_INPUT_FIFO3(x) ((x) << S_PERR_EDMA_INPUT_FIFO3)
-#define F_PERR_EDMA_INPUT_FIFO3 V_PERR_EDMA_INPUT_FIFO3(1U)
-
-#define S_PERR_EDMA_INPUT_FIFO2 9
-#define V_PERR_EDMA_INPUT_FIFO2(x) ((x) << S_PERR_EDMA_INPUT_FIFO2)
-#define F_PERR_EDMA_INPUT_FIFO2 V_PERR_EDMA_INPUT_FIFO2(1U)
-
-#define S_PERR_EDMA_INPUT_FIFO1 8
-#define V_PERR_EDMA_INPUT_FIFO1(x) ((x) << S_PERR_EDMA_INPUT_FIFO1)
-#define F_PERR_EDMA_INPUT_FIFO1 V_PERR_EDMA_INPUT_FIFO1(1U)
-
-#define S_PERR_EDMA_INPUT_FIFO0 7
-#define V_PERR_EDMA_INPUT_FIFO0(x) ((x) << S_PERR_EDMA_INPUT_FIFO0)
-#define F_PERR_EDMA_INPUT_FIFO0 V_PERR_EDMA_INPUT_FIFO0(1U)
-
-#define S_PERR_MGT_BAR2_FIFO 6
-#define V_PERR_MGT_BAR2_FIFO(x) ((x) << S_PERR_MGT_BAR2_FIFO)
-#define F_PERR_MGT_BAR2_FIFO V_PERR_MGT_BAR2_FIFO(1U)
-
-#define S_PERR_HEADERSPLIT_FIFO1_T5 5
-#define V_PERR_HEADERSPLIT_FIFO1_T5(x) ((x) << S_PERR_HEADERSPLIT_FIFO1_T5)
-#define F_PERR_HEADERSPLIT_FIFO1_T5 V_PERR_HEADERSPLIT_FIFO1_T5(1U)
-
-#define S_PERR_HEADERSPLIT_FIFO0_T5 4
-#define V_PERR_HEADERSPLIT_FIFO0_T5(x) ((x) << S_PERR_HEADERSPLIT_FIFO0_T5)
-#define F_PERR_HEADERSPLIT_FIFO0_T5 V_PERR_HEADERSPLIT_FIFO0_T5(1U)
-
-#define S_PERR_CIM_FIFO1 3
-#define V_PERR_CIM_FIFO1(x) ((x) << S_PERR_CIM_FIFO1)
-#define F_PERR_CIM_FIFO1 V_PERR_CIM_FIFO1(1U)
-
-#define S_PERR_CIM_FIFO0 2
-#define V_PERR_CIM_FIFO0(x) ((x) << S_PERR_CIM_FIFO0)
-#define F_PERR_CIM_FIFO0 V_PERR_CIM_FIFO0(1U)
-
-#define S_PERR_IDMA_SWITCH_OUTPUT_FIFO1 1
-#define V_PERR_IDMA_SWITCH_OUTPUT_FIFO1(x) ((x) << S_PERR_IDMA_SWITCH_OUTPUT_FIFO1)
-#define F_PERR_IDMA_SWITCH_OUTPUT_FIFO1 V_PERR_IDMA_SWITCH_OUTPUT_FIFO1(1U)
-
-#define S_PERR_IDMA_SWITCH_OUTPUT_FIFO0 0
-#define V_PERR_IDMA_SWITCH_OUTPUT_FIFO0(x) ((x) << S_PERR_IDMA_SWITCH_OUTPUT_FIFO0)
-#define F_PERR_IDMA_SWITCH_OUTPUT_FIFO0 V_PERR_IDMA_SWITCH_OUTPUT_FIFO0(1U)
-
-#define A_SGE_INT_ENABLE5 0x1110
-#define A_SGE_PERR_ENABLE5 0x1114
-#define A_SGE_DBFIFO_STATUS2 0x1118
-
-#define S_FL_INT_THRESH 24
-#define M_FL_INT_THRESH 0xfU
-#define V_FL_INT_THRESH(x) ((x) << S_FL_INT_THRESH)
-#define G_FL_INT_THRESH(x) (((x) >> S_FL_INT_THRESH) & M_FL_INT_THRESH)
-
-#define S_FL_COUNT 14
-#define M_FL_COUNT 0x3ffU
-#define V_FL_COUNT(x) ((x) << S_FL_COUNT)
-#define G_FL_COUNT(x) (((x) >> S_FL_COUNT) & M_FL_COUNT)
-
-#define S_HP_INT_THRESH_T5 10
-#define M_HP_INT_THRESH_T5 0xfU
-#define V_HP_INT_THRESH_T5(x) ((x) << S_HP_INT_THRESH_T5)
-#define G_HP_INT_THRESH_T5(x) (((x) >> S_HP_INT_THRESH_T5) & M_HP_INT_THRESH_T5)
-
-#define S_HP_COUNT_T5 0
-#define M_HP_COUNT_T5 0x3ffU
-#define V_HP_COUNT_T5(x) ((x) << S_HP_COUNT_T5)
-#define G_HP_COUNT_T5(x) (((x) >> S_HP_COUNT_T5) & M_HP_COUNT_T5)
-
-#define A_SGE_FETCH_BURST_MAX_0_AND_1 0x111c
-
-#define S_FETCHBURSTMAX0 16
-#define M_FETCHBURSTMAX0 0x3ffU
-#define V_FETCHBURSTMAX0(x) ((x) << S_FETCHBURSTMAX0)
-#define G_FETCHBURSTMAX0(x) (((x) >> S_FETCHBURSTMAX0) & M_FETCHBURSTMAX0)
-
-#define S_FETCHBURSTMAX1 0
-#define M_FETCHBURSTMAX1 0x3ffU
-#define V_FETCHBURSTMAX1(x) ((x) << S_FETCHBURSTMAX1)
-#define G_FETCHBURSTMAX1(x) (((x) >> S_FETCHBURSTMAX1) & M_FETCHBURSTMAX1)
-
-#define A_SGE_FETCH_BURST_MAX_2_AND_3 0x1120
-
-#define S_FETCHBURSTMAX2 16
-#define M_FETCHBURSTMAX2 0x3ffU
-#define V_FETCHBURSTMAX2(x) ((x) << S_FETCHBURSTMAX2)
-#define G_FETCHBURSTMAX2(x) (((x) >> S_FETCHBURSTMAX2) & M_FETCHBURSTMAX2)
-
-#define S_FETCHBURSTMAX3 0
-#define M_FETCHBURSTMAX3 0x3ffU
-#define V_FETCHBURSTMAX3(x) ((x) << S_FETCHBURSTMAX3)
-#define G_FETCHBURSTMAX3(x) (((x) >> S_FETCHBURSTMAX3) & M_FETCHBURSTMAX3)
-
-#define A_SGE_CONTROL2 0x1124
-
-#define S_UPFLCUTOFFDIS 21
-#define V_UPFLCUTOFFDIS(x) ((x) << S_UPFLCUTOFFDIS)
-#define F_UPFLCUTOFFDIS V_UPFLCUTOFFDIS(1U)
-
-#define S_RXCPLSIZEAUTOCORRECT 20
-#define V_RXCPLSIZEAUTOCORRECT(x) ((x) << S_RXCPLSIZEAUTOCORRECT)
-#define F_RXCPLSIZEAUTOCORRECT V_RXCPLSIZEAUTOCORRECT(1U)
-
-#define S_IDMAARBROUNDROBIN 19
-#define V_IDMAARBROUNDROBIN(x) ((x) << S_IDMAARBROUNDROBIN)
-#define F_IDMAARBROUNDROBIN V_IDMAARBROUNDROBIN(1U)
-
-#define S_INGPACKBOUNDARY 16
-#define M_INGPACKBOUNDARY 0x7U
-#define V_INGPACKBOUNDARY(x) ((x) << S_INGPACKBOUNDARY)
-#define G_INGPACKBOUNDARY(x) (((x) >> S_INGPACKBOUNDARY) & M_INGPACKBOUNDARY)
-
-#define S_CGEN_EGRESS_CONTEXT 15
-#define V_CGEN_EGRESS_CONTEXT(x) ((x) << S_CGEN_EGRESS_CONTEXT)
-#define F_CGEN_EGRESS_CONTEXT V_CGEN_EGRESS_CONTEXT(1U)
-
-#define S_CGEN_INGRESS_CONTEXT 14
-#define V_CGEN_INGRESS_CONTEXT(x) ((x) << S_CGEN_INGRESS_CONTEXT)
-#define F_CGEN_INGRESS_CONTEXT V_CGEN_INGRESS_CONTEXT(1U)
-
-#define S_CGEN_IDMA 13
-#define V_CGEN_IDMA(x) ((x) << S_CGEN_IDMA)
-#define F_CGEN_IDMA V_CGEN_IDMA(1U)
-
-#define S_CGEN_DBP 12
-#define V_CGEN_DBP(x) ((x) << S_CGEN_DBP)
-#define F_CGEN_DBP V_CGEN_DBP(1U)
-
-#define S_CGEN_EDMA 11
-#define V_CGEN_EDMA(x) ((x) << S_CGEN_EDMA)
-#define F_CGEN_EDMA V_CGEN_EDMA(1U)
-
-#define S_VFIFO_ENABLE 10
-#define V_VFIFO_ENABLE(x) ((x) << S_VFIFO_ENABLE)
-#define F_VFIFO_ENABLE V_VFIFO_ENABLE(1U)
-
-#define S_FLM_RESCHEDULE_MODE 9
-#define V_FLM_RESCHEDULE_MODE(x) ((x) << S_FLM_RESCHEDULE_MODE)
-#define F_FLM_RESCHEDULE_MODE V_FLM_RESCHEDULE_MODE(1U)
-
-#define S_HINTDEPTHCTLFL 4
-#define M_HINTDEPTHCTLFL 0x1fU
-#define V_HINTDEPTHCTLFL(x) ((x) << S_HINTDEPTHCTLFL)
-#define G_HINTDEPTHCTLFL(x) (((x) >> S_HINTDEPTHCTLFL) & M_HINTDEPTHCTLFL)
-
-#define S_FORCE_ORDERING 3
-#define V_FORCE_ORDERING(x) ((x) << S_FORCE_ORDERING)
-#define F_FORCE_ORDERING V_FORCE_ORDERING(1U)
-
-#define S_TX_COALESCE_SIZE 2
-#define V_TX_COALESCE_SIZE(x) ((x) << S_TX_COALESCE_SIZE)
-#define F_TX_COALESCE_SIZE V_TX_COALESCE_SIZE(1U)
-
-#define S_COAL_STRICT_CIM_PRI 1
-#define V_COAL_STRICT_CIM_PRI(x) ((x) << S_COAL_STRICT_CIM_PRI)
-#define F_COAL_STRICT_CIM_PRI V_COAL_STRICT_CIM_PRI(1U)
-
-#define S_TX_COALESCE_PRI 0
-#define V_TX_COALESCE_PRI(x) ((x) << S_TX_COALESCE_PRI)
-#define F_TX_COALESCE_PRI V_TX_COALESCE_PRI(1U)
-
-#define A_SGE_DEEP_SLEEP 0x1128
-
-#define S_IDMA1_SLEEP_STATUS 11
-#define V_IDMA1_SLEEP_STATUS(x) ((x) << S_IDMA1_SLEEP_STATUS)
-#define F_IDMA1_SLEEP_STATUS V_IDMA1_SLEEP_STATUS(1U)
-
-#define S_IDMA0_SLEEP_STATUS 10
-#define V_IDMA0_SLEEP_STATUS(x) ((x) << S_IDMA0_SLEEP_STATUS)
-#define F_IDMA0_SLEEP_STATUS V_IDMA0_SLEEP_STATUS(1U)
-
-#define S_IDMA1_SLEEP_REQ 9
-#define V_IDMA1_SLEEP_REQ(x) ((x) << S_IDMA1_SLEEP_REQ)
-#define F_IDMA1_SLEEP_REQ V_IDMA1_SLEEP_REQ(1U)
-
-#define S_IDMA0_SLEEP_REQ 8
-#define V_IDMA0_SLEEP_REQ(x) ((x) << S_IDMA0_SLEEP_REQ)
-#define F_IDMA0_SLEEP_REQ V_IDMA0_SLEEP_REQ(1U)
-
-#define S_EDMA3_SLEEP_STATUS 7
-#define V_EDMA3_SLEEP_STATUS(x) ((x) << S_EDMA3_SLEEP_STATUS)
-#define F_EDMA3_SLEEP_STATUS V_EDMA3_SLEEP_STATUS(1U)
-
-#define S_EDMA2_SLEEP_STATUS 6
-#define V_EDMA2_SLEEP_STATUS(x) ((x) << S_EDMA2_SLEEP_STATUS)
-#define F_EDMA2_SLEEP_STATUS V_EDMA2_SLEEP_STATUS(1U)
-
-#define S_EDMA1_SLEEP_STATUS 5
-#define V_EDMA1_SLEEP_STATUS(x) ((x) << S_EDMA1_SLEEP_STATUS)
-#define F_EDMA1_SLEEP_STATUS V_EDMA1_SLEEP_STATUS(1U)
-
-#define S_EDMA0_SLEEP_STATUS 4
-#define V_EDMA0_SLEEP_STATUS(x) ((x) << S_EDMA0_SLEEP_STATUS)
-#define F_EDMA0_SLEEP_STATUS V_EDMA0_SLEEP_STATUS(1U)
-
-#define S_EDMA3_SLEEP_REQ 3
-#define V_EDMA3_SLEEP_REQ(x) ((x) << S_EDMA3_SLEEP_REQ)
-#define F_EDMA3_SLEEP_REQ V_EDMA3_SLEEP_REQ(1U)
-
-#define S_EDMA2_SLEEP_REQ 2
-#define V_EDMA2_SLEEP_REQ(x) ((x) << S_EDMA2_SLEEP_REQ)
-#define F_EDMA2_SLEEP_REQ V_EDMA2_SLEEP_REQ(1U)
-
-#define S_EDMA1_SLEEP_REQ 1
-#define V_EDMA1_SLEEP_REQ(x) ((x) << S_EDMA1_SLEEP_REQ)
-#define F_EDMA1_SLEEP_REQ V_EDMA1_SLEEP_REQ(1U)
-
-#define S_EDMA0_SLEEP_REQ 0
-#define V_EDMA0_SLEEP_REQ(x) ((x) << S_EDMA0_SLEEP_REQ)
-#define F_EDMA0_SLEEP_REQ V_EDMA0_SLEEP_REQ(1U)
-
-#define A_SGE_DOORBELL_THROTTLE_THRESHOLD 0x112c
-
-#define S_THROTTLE_THRESHOLD_FL 16
-#define M_THROTTLE_THRESHOLD_FL 0xfU
-#define V_THROTTLE_THRESHOLD_FL(x) ((x) << S_THROTTLE_THRESHOLD_FL)
-#define G_THROTTLE_THRESHOLD_FL(x) (((x) >> S_THROTTLE_THRESHOLD_FL) & M_THROTTLE_THRESHOLD_FL)
-
-#define S_THROTTLE_THRESHOLD_HP 12
-#define M_THROTTLE_THRESHOLD_HP 0xfU
-#define V_THROTTLE_THRESHOLD_HP(x) ((x) << S_THROTTLE_THRESHOLD_HP)
-#define G_THROTTLE_THRESHOLD_HP(x) (((x) >> S_THROTTLE_THRESHOLD_HP) & M_THROTTLE_THRESHOLD_HP)
-
-#define S_THROTTLE_THRESHOLD_LP 0
-#define M_THROTTLE_THRESHOLD_LP 0xfffU
-#define V_THROTTLE_THRESHOLD_LP(x) ((x) << S_THROTTLE_THRESHOLD_LP)
-#define G_THROTTLE_THRESHOLD_LP(x) (((x) >> S_THROTTLE_THRESHOLD_LP) & M_THROTTLE_THRESHOLD_LP)
-
-#define A_SGE_DBP_FETCH_THRESHOLD 0x1130
-
-#define S_DBP_FETCH_THRESHOLD_FL 21
-#define M_DBP_FETCH_THRESHOLD_FL 0xfU
-#define V_DBP_FETCH_THRESHOLD_FL(x) ((x) << S_DBP_FETCH_THRESHOLD_FL)
-#define G_DBP_FETCH_THRESHOLD_FL(x) (((x) >> S_DBP_FETCH_THRESHOLD_FL) & M_DBP_FETCH_THRESHOLD_FL)
-
-#define S_DBP_FETCH_THRESHOLD_HP 17
-#define M_DBP_FETCH_THRESHOLD_HP 0xfU
-#define V_DBP_FETCH_THRESHOLD_HP(x) ((x) << S_DBP_FETCH_THRESHOLD_HP)
-#define G_DBP_FETCH_THRESHOLD_HP(x) (((x) >> S_DBP_FETCH_THRESHOLD_HP) & M_DBP_FETCH_THRESHOLD_HP)
-
-#define S_DBP_FETCH_THRESHOLD_LP 5
-#define M_DBP_FETCH_THRESHOLD_LP 0xfffU
-#define V_DBP_FETCH_THRESHOLD_LP(x) ((x) << S_DBP_FETCH_THRESHOLD_LP)
-#define G_DBP_FETCH_THRESHOLD_LP(x) (((x) >> S_DBP_FETCH_THRESHOLD_LP) & M_DBP_FETCH_THRESHOLD_LP)
-
-#define S_DBP_FETCH_THRESHOLD_MODE 4
-#define V_DBP_FETCH_THRESHOLD_MODE(x) ((x) << S_DBP_FETCH_THRESHOLD_MODE)
-#define F_DBP_FETCH_THRESHOLD_MODE V_DBP_FETCH_THRESHOLD_MODE(1U)
-
-#define S_DBP_FETCH_THRESHOLD_EN3 3
-#define V_DBP_FETCH_THRESHOLD_EN3(x) ((x) << S_DBP_FETCH_THRESHOLD_EN3)
-#define F_DBP_FETCH_THRESHOLD_EN3 V_DBP_FETCH_THRESHOLD_EN3(1U)
-
-#define S_DBP_FETCH_THRESHOLD_EN2 2
-#define V_DBP_FETCH_THRESHOLD_EN2(x) ((x) << S_DBP_FETCH_THRESHOLD_EN2)
-#define F_DBP_FETCH_THRESHOLD_EN2 V_DBP_FETCH_THRESHOLD_EN2(1U)
-
-#define S_DBP_FETCH_THRESHOLD_EN1 1
-#define V_DBP_FETCH_THRESHOLD_EN1(x) ((x) << S_DBP_FETCH_THRESHOLD_EN1)
-#define F_DBP_FETCH_THRESHOLD_EN1 V_DBP_FETCH_THRESHOLD_EN1(1U)
-
-#define S_DBP_FETCH_THRESHOLD_EN0 0
-#define V_DBP_FETCH_THRESHOLD_EN0(x) ((x) << S_DBP_FETCH_THRESHOLD_EN0)
-#define F_DBP_FETCH_THRESHOLD_EN0 V_DBP_FETCH_THRESHOLD_EN0(1U)
-
-#define A_SGE_DBP_FETCH_THRESHOLD_QUEUE 0x1134
-
-#define S_DBP_FETCH_THRESHOLD_IQ1 16
-#define M_DBP_FETCH_THRESHOLD_IQ1 0xffffU
-#define V_DBP_FETCH_THRESHOLD_IQ1(x) ((x) << S_DBP_FETCH_THRESHOLD_IQ1)
-#define G_DBP_FETCH_THRESHOLD_IQ1(x) (((x) >> S_DBP_FETCH_THRESHOLD_IQ1) & M_DBP_FETCH_THRESHOLD_IQ1)
-
-#define S_DBP_FETCH_THRESHOLD_IQ0 0
-#define M_DBP_FETCH_THRESHOLD_IQ0 0xffffU
-#define V_DBP_FETCH_THRESHOLD_IQ0(x) ((x) << S_DBP_FETCH_THRESHOLD_IQ0)
-#define G_DBP_FETCH_THRESHOLD_IQ0(x) (((x) >> S_DBP_FETCH_THRESHOLD_IQ0) & M_DBP_FETCH_THRESHOLD_IQ0)
-
-#define A_SGE_DBVFIFO_BADDR 0x1138
-#define A_SGE_DBVFIFO_SIZE 0x113c
-
-#define S_DBVFIFO_SIZE 6
-#define M_DBVFIFO_SIZE 0xfffU
-#define V_DBVFIFO_SIZE(x) ((x) << S_DBVFIFO_SIZE)
-#define G_DBVFIFO_SIZE(x) (((x) >> S_DBVFIFO_SIZE) & M_DBVFIFO_SIZE)
-
-#define A_SGE_DBFIFO_STATUS3 0x1140
-
-#define S_LP_PTRS_EQUAL 21
-#define V_LP_PTRS_EQUAL(x) ((x) << S_LP_PTRS_EQUAL)
-#define F_LP_PTRS_EQUAL V_LP_PTRS_EQUAL(1U)
-
-#define S_LP_SNAPHOT 20
-#define V_LP_SNAPHOT(x) ((x) << S_LP_SNAPHOT)
-#define F_LP_SNAPHOT V_LP_SNAPHOT(1U)
-
-#define S_FL_INT_THRESH_LOW 16
-#define M_FL_INT_THRESH_LOW 0xfU
-#define V_FL_INT_THRESH_LOW(x) ((x) << S_FL_INT_THRESH_LOW)
-#define G_FL_INT_THRESH_LOW(x) (((x) >> S_FL_INT_THRESH_LOW) & M_FL_INT_THRESH_LOW)
-
-#define S_HP_INT_THRESH_LOW 12
-#define M_HP_INT_THRESH_LOW 0xfU
-#define V_HP_INT_THRESH_LOW(x) ((x) << S_HP_INT_THRESH_LOW)
-#define G_HP_INT_THRESH_LOW(x) (((x) >> S_HP_INT_THRESH_LOW) & M_HP_INT_THRESH_LOW)
-
-#define S_LP_INT_THRESH_LOW 0
-#define M_LP_INT_THRESH_LOW 0xfffU
-#define V_LP_INT_THRESH_LOW(x) ((x) << S_LP_INT_THRESH_LOW)
-#define G_LP_INT_THRESH_LOW(x) (((x) >> S_LP_INT_THRESH_LOW) & M_LP_INT_THRESH_LOW)
-
-#define A_SGE_CHANGESET 0x1144
-#define A_SGE_PC_RSP_ERROR 0x1148
#define A_SGE_PC0_REQ_BIST_CMD 0x1180
#define A_SGE_PC0_REQ_BIST_ERROR_CNT 0x1184
#define A_SGE_PC1_REQ_BIST_CMD 0x1190
@@ -2138,891 +1446,6 @@
#define A_SGE_CTXT_MASK5 0x1234
#define A_SGE_CTXT_MASK6 0x1238
#define A_SGE_CTXT_MASK7 0x123c
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_0 0x1280
-
-#define S_CIM_WM 24
-#define M_CIM_WM 0x3U
-#define V_CIM_WM(x) ((x) << S_CIM_WM)
-#define G_CIM_WM(x) (((x) >> S_CIM_WM) & M_CIM_WM)
-
-#define S_DEBUG_UP_SOP_CNT 20
-#define M_DEBUG_UP_SOP_CNT 0xfU
-#define V_DEBUG_UP_SOP_CNT(x) ((x) << S_DEBUG_UP_SOP_CNT)
-#define G_DEBUG_UP_SOP_CNT(x) (((x) >> S_DEBUG_UP_SOP_CNT) & M_DEBUG_UP_SOP_CNT)
-
-#define S_DEBUG_UP_EOP_CNT 16
-#define M_DEBUG_UP_EOP_CNT 0xfU
-#define V_DEBUG_UP_EOP_CNT(x) ((x) << S_DEBUG_UP_EOP_CNT)
-#define G_DEBUG_UP_EOP_CNT(x) (((x) >> S_DEBUG_UP_EOP_CNT) & M_DEBUG_UP_EOP_CNT)
-
-#define S_DEBUG_CIM_SOP1_CNT 12
-#define M_DEBUG_CIM_SOP1_CNT 0xfU
-#define V_DEBUG_CIM_SOP1_CNT(x) ((x) << S_DEBUG_CIM_SOP1_CNT)
-#define G_DEBUG_CIM_SOP1_CNT(x) (((x) >> S_DEBUG_CIM_SOP1_CNT) & M_DEBUG_CIM_SOP1_CNT)
-
-#define S_DEBUG_CIM_EOP1_CNT 8
-#define M_DEBUG_CIM_EOP1_CNT 0xfU
-#define V_DEBUG_CIM_EOP1_CNT(x) ((x) << S_DEBUG_CIM_EOP1_CNT)
-#define G_DEBUG_CIM_EOP1_CNT(x) (((x) >> S_DEBUG_CIM_EOP1_CNT) & M_DEBUG_CIM_EOP1_CNT)
-
-#define S_DEBUG_CIM_SOP0_CNT 4
-#define M_DEBUG_CIM_SOP0_CNT 0xfU
-#define V_DEBUG_CIM_SOP0_CNT(x) ((x) << S_DEBUG_CIM_SOP0_CNT)
-#define G_DEBUG_CIM_SOP0_CNT(x) (((x) >> S_DEBUG_CIM_SOP0_CNT) & M_DEBUG_CIM_SOP0_CNT)
-
-#define S_DEBUG_CIM_EOP0_CNT 0
-#define M_DEBUG_CIM_EOP0_CNT 0xfU
-#define V_DEBUG_CIM_EOP0_CNT(x) ((x) << S_DEBUG_CIM_EOP0_CNT)
-#define G_DEBUG_CIM_EOP0_CNT(x) (((x) >> S_DEBUG_CIM_EOP0_CNT) & M_DEBUG_CIM_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_1 0x1284
-
-#define S_DEBUG_T_RX_SOP1_CNT 28
-#define M_DEBUG_T_RX_SOP1_CNT 0xfU
-#define V_DEBUG_T_RX_SOP1_CNT(x) ((x) << S_DEBUG_T_RX_SOP1_CNT)
-#define G_DEBUG_T_RX_SOP1_CNT(x) (((x) >> S_DEBUG_T_RX_SOP1_CNT) & M_DEBUG_T_RX_SOP1_CNT)
-
-#define S_DEBUG_T_RX_EOP1_CNT 24
-#define M_DEBUG_T_RX_EOP1_CNT 0xfU
-#define V_DEBUG_T_RX_EOP1_CNT(x) ((x) << S_DEBUG_T_RX_EOP1_CNT)
-#define G_DEBUG_T_RX_EOP1_CNT(x) (((x) >> S_DEBUG_T_RX_EOP1_CNT) & M_DEBUG_T_RX_EOP1_CNT)
-
-#define S_DEBUG_T_RX_SOP0_CNT 20
-#define M_DEBUG_T_RX_SOP0_CNT 0xfU
-#define V_DEBUG_T_RX_SOP0_CNT(x) ((x) << S_DEBUG_T_RX_SOP0_CNT)
-#define G_DEBUG_T_RX_SOP0_CNT(x) (((x) >> S_DEBUG_T_RX_SOP0_CNT) & M_DEBUG_T_RX_SOP0_CNT)
-
-#define S_DEBUG_T_RX_EOP0_CNT 16
-#define M_DEBUG_T_RX_EOP0_CNT 0xfU
-#define V_DEBUG_T_RX_EOP0_CNT(x) ((x) << S_DEBUG_T_RX_EOP0_CNT)
-#define G_DEBUG_T_RX_EOP0_CNT(x) (((x) >> S_DEBUG_T_RX_EOP0_CNT) & M_DEBUG_T_RX_EOP0_CNT)
-
-#define S_DEBUG_U_RX_SOP1_CNT 12
-#define M_DEBUG_U_RX_SOP1_CNT 0xfU
-#define V_DEBUG_U_RX_SOP1_CNT(x) ((x) << S_DEBUG_U_RX_SOP1_CNT)
-#define G_DEBUG_U_RX_SOP1_CNT(x) (((x) >> S_DEBUG_U_RX_SOP1_CNT) & M_DEBUG_U_RX_SOP1_CNT)
-
-#define S_DEBUG_U_RX_EOP1_CNT 8
-#define M_DEBUG_U_RX_EOP1_CNT 0xfU
-#define V_DEBUG_U_RX_EOP1_CNT(x) ((x) << S_DEBUG_U_RX_EOP1_CNT)
-#define G_DEBUG_U_RX_EOP1_CNT(x) (((x) >> S_DEBUG_U_RX_EOP1_CNT) & M_DEBUG_U_RX_EOP1_CNT)
-
-#define S_DEBUG_U_RX_SOP0_CNT 4
-#define M_DEBUG_U_RX_SOP0_CNT 0xfU
-#define V_DEBUG_U_RX_SOP0_CNT(x) ((x) << S_DEBUG_U_RX_SOP0_CNT)
-#define G_DEBUG_U_RX_SOP0_CNT(x) (((x) >> S_DEBUG_U_RX_SOP0_CNT) & M_DEBUG_U_RX_SOP0_CNT)
-
-#define S_DEBUG_U_RX_EOP0_CNT 0
-#define M_DEBUG_U_RX_EOP0_CNT 0xfU
-#define V_DEBUG_U_RX_EOP0_CNT(x) ((x) << S_DEBUG_U_RX_EOP0_CNT)
-#define G_DEBUG_U_RX_EOP0_CNT(x) (((x) >> S_DEBUG_U_RX_EOP0_CNT) & M_DEBUG_U_RX_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_2 0x1288
-
-#define S_DEBUG_UD_RX_SOP3_CNT 28
-#define M_DEBUG_UD_RX_SOP3_CNT 0xfU
-#define V_DEBUG_UD_RX_SOP3_CNT(x) ((x) << S_DEBUG_UD_RX_SOP3_CNT)
-#define G_DEBUG_UD_RX_SOP3_CNT(x) (((x) >> S_DEBUG_UD_RX_SOP3_CNT) & M_DEBUG_UD_RX_SOP3_CNT)
-
-#define S_DEBUG_UD_RX_EOP3_CNT 24
-#define M_DEBUG_UD_RX_EOP3_CNT 0xfU
-#define V_DEBUG_UD_RX_EOP3_CNT(x) ((x) << S_DEBUG_UD_RX_EOP3_CNT)
-#define G_DEBUG_UD_RX_EOP3_CNT(x) (((x) >> S_DEBUG_UD_RX_EOP3_CNT) & M_DEBUG_UD_RX_EOP3_CNT)
-
-#define S_DEBUG_UD_RX_SOP2_CNT 20
-#define M_DEBUG_UD_RX_SOP2_CNT 0xfU
-#define V_DEBUG_UD_RX_SOP2_CNT(x) ((x) << S_DEBUG_UD_RX_SOP2_CNT)
-#define G_DEBUG_UD_RX_SOP2_CNT(x) (((x) >> S_DEBUG_UD_RX_SOP2_CNT) & M_DEBUG_UD_RX_SOP2_CNT)
-
-#define S_DEBUG_UD_RX_EOP2_CNT 16
-#define M_DEBUG_UD_RX_EOP2_CNT 0xfU
-#define V_DEBUG_UD_RX_EOP2_CNT(x) ((x) << S_DEBUG_UD_RX_EOP2_CNT)
-#define G_DEBUG_UD_RX_EOP2_CNT(x) (((x) >> S_DEBUG_UD_RX_EOP2_CNT) & M_DEBUG_UD_RX_EOP2_CNT)
-
-#define S_DEBUG_UD_RX_SOP1_CNT 12
-#define M_DEBUG_UD_RX_SOP1_CNT 0xfU
-#define V_DEBUG_UD_RX_SOP1_CNT(x) ((x) << S_DEBUG_UD_RX_SOP1_CNT)
-#define G_DEBUG_UD_RX_SOP1_CNT(x) (((x) >> S_DEBUG_UD_RX_SOP1_CNT) & M_DEBUG_UD_RX_SOP1_CNT)
-
-#define S_DEBUG_UD_RX_EOP1_CNT 8
-#define M_DEBUG_UD_RX_EOP1_CNT 0xfU
-#define V_DEBUG_UD_RX_EOP1_CNT(x) ((x) << S_DEBUG_UD_RX_EOP1_CNT)
-#define G_DEBUG_UD_RX_EOP1_CNT(x) (((x) >> S_DEBUG_UD_RX_EOP1_CNT) & M_DEBUG_UD_RX_EOP1_CNT)
-
-#define S_DEBUG_UD_RX_SOP0_CNT 4
-#define M_DEBUG_UD_RX_SOP0_CNT 0xfU
-#define V_DEBUG_UD_RX_SOP0_CNT(x) ((x) << S_DEBUG_UD_RX_SOP0_CNT)
-#define G_DEBUG_UD_RX_SOP0_CNT(x) (((x) >> S_DEBUG_UD_RX_SOP0_CNT) & M_DEBUG_UD_RX_SOP0_CNT)
-
-#define S_DEBUG_UD_RX_EOP0_CNT 0
-#define M_DEBUG_UD_RX_EOP0_CNT 0xfU
-#define V_DEBUG_UD_RX_EOP0_CNT(x) ((x) << S_DEBUG_UD_RX_EOP0_CNT)
-#define G_DEBUG_UD_RX_EOP0_CNT(x) (((x) >> S_DEBUG_UD_RX_EOP0_CNT) & M_DEBUG_UD_RX_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_3 0x128c
-
-#define S_DEBUG_U_TX_SOP3_CNT 28
-#define M_DEBUG_U_TX_SOP3_CNT 0xfU
-#define V_DEBUG_U_TX_SOP3_CNT(x) ((x) << S_DEBUG_U_TX_SOP3_CNT)
-#define G_DEBUG_U_TX_SOP3_CNT(x) (((x) >> S_DEBUG_U_TX_SOP3_CNT) & M_DEBUG_U_TX_SOP3_CNT)
-
-#define S_DEBUG_U_TX_EOP3_CNT 24
-#define M_DEBUG_U_TX_EOP3_CNT 0xfU
-#define V_DEBUG_U_TX_EOP3_CNT(x) ((x) << S_DEBUG_U_TX_EOP3_CNT)
-#define G_DEBUG_U_TX_EOP3_CNT(x) (((x) >> S_DEBUG_U_TX_EOP3_CNT) & M_DEBUG_U_TX_EOP3_CNT)
-
-#define S_DEBUG_U_TX_SOP2_CNT 20
-#define M_DEBUG_U_TX_SOP2_CNT 0xfU
-#define V_DEBUG_U_TX_SOP2_CNT(x) ((x) << S_DEBUG_U_TX_SOP2_CNT)
-#define G_DEBUG_U_TX_SOP2_CNT(x) (((x) >> S_DEBUG_U_TX_SOP2_CNT) & M_DEBUG_U_TX_SOP2_CNT)
-
-#define S_DEBUG_U_TX_EOP2_CNT 16
-#define M_DEBUG_U_TX_EOP2_CNT 0xfU
-#define V_DEBUG_U_TX_EOP2_CNT(x) ((x) << S_DEBUG_U_TX_EOP2_CNT)
-#define G_DEBUG_U_TX_EOP2_CNT(x) (((x) >> S_DEBUG_U_TX_EOP2_CNT) & M_DEBUG_U_TX_EOP2_CNT)
-
-#define S_DEBUG_U_TX_SOP1_CNT 12
-#define M_DEBUG_U_TX_SOP1_CNT 0xfU
-#define V_DEBUG_U_TX_SOP1_CNT(x) ((x) << S_DEBUG_U_TX_SOP1_CNT)
-#define G_DEBUG_U_TX_SOP1_CNT(x) (((x) >> S_DEBUG_U_TX_SOP1_CNT) & M_DEBUG_U_TX_SOP1_CNT)
-
-#define S_DEBUG_U_TX_EOP1_CNT 8
-#define M_DEBUG_U_TX_EOP1_CNT 0xfU
-#define V_DEBUG_U_TX_EOP1_CNT(x) ((x) << S_DEBUG_U_TX_EOP1_CNT)
-#define G_DEBUG_U_TX_EOP1_CNT(x) (((x) >> S_DEBUG_U_TX_EOP1_CNT) & M_DEBUG_U_TX_EOP1_CNT)
-
-#define S_DEBUG_U_TX_SOP0_CNT 4
-#define M_DEBUG_U_TX_SOP0_CNT 0xfU
-#define V_DEBUG_U_TX_SOP0_CNT(x) ((x) << S_DEBUG_U_TX_SOP0_CNT)
-#define G_DEBUG_U_TX_SOP0_CNT(x) (((x) >> S_DEBUG_U_TX_SOP0_CNT) & M_DEBUG_U_TX_SOP0_CNT)
-
-#define S_DEBUG_U_TX_EOP0_CNT 0
-#define M_DEBUG_U_TX_EOP0_CNT 0xfU
-#define V_DEBUG_U_TX_EOP0_CNT(x) ((x) << S_DEBUG_U_TX_EOP0_CNT)
-#define G_DEBUG_U_TX_EOP0_CNT(x) (((x) >> S_DEBUG_U_TX_EOP0_CNT) & M_DEBUG_U_TX_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_4 0x1290
-
-#define S_DEBUG_PC_RSP_SOP1_CNT 28
-#define M_DEBUG_PC_RSP_SOP1_CNT 0xfU
-#define V_DEBUG_PC_RSP_SOP1_CNT(x) ((x) << S_DEBUG_PC_RSP_SOP1_CNT)
-#define G_DEBUG_PC_RSP_SOP1_CNT(x) (((x) >> S_DEBUG_PC_RSP_SOP1_CNT) & M_DEBUG_PC_RSP_SOP1_CNT)
-
-#define S_DEBUG_PC_RSP_EOP1_CNT 24
-#define M_DEBUG_PC_RSP_EOP1_CNT 0xfU
-#define V_DEBUG_PC_RSP_EOP1_CNT(x) ((x) << S_DEBUG_PC_RSP_EOP1_CNT)
-#define G_DEBUG_PC_RSP_EOP1_CNT(x) (((x) >> S_DEBUG_PC_RSP_EOP1_CNT) & M_DEBUG_PC_RSP_EOP1_CNT)
-
-#define S_DEBUG_PC_RSP_SOP0_CNT 20
-#define M_DEBUG_PC_RSP_SOP0_CNT 0xfU
-#define V_DEBUG_PC_RSP_SOP0_CNT(x) ((x) << S_DEBUG_PC_RSP_SOP0_CNT)
-#define G_DEBUG_PC_RSP_SOP0_CNT(x) (((x) >> S_DEBUG_PC_RSP_SOP0_CNT) & M_DEBUG_PC_RSP_SOP0_CNT)
-
-#define S_DEBUG_PC_RSP_EOP0_CNT 16
-#define M_DEBUG_PC_RSP_EOP0_CNT 0xfU
-#define V_DEBUG_PC_RSP_EOP0_CNT(x) ((x) << S_DEBUG_PC_RSP_EOP0_CNT)
-#define G_DEBUG_PC_RSP_EOP0_CNT(x) (((x) >> S_DEBUG_PC_RSP_EOP0_CNT) & M_DEBUG_PC_RSP_EOP0_CNT)
-
-#define S_DEBUG_PC_REQ_SOP1_CNT 12
-#define M_DEBUG_PC_REQ_SOP1_CNT 0xfU
-#define V_DEBUG_PC_REQ_SOP1_CNT(x) ((x) << S_DEBUG_PC_REQ_SOP1_CNT)
-#define G_DEBUG_PC_REQ_SOP1_CNT(x) (((x) >> S_DEBUG_PC_REQ_SOP1_CNT) & M_DEBUG_PC_REQ_SOP1_CNT)
-
-#define S_DEBUG_PC_REQ_EOP1_CNT 8
-#define M_DEBUG_PC_REQ_EOP1_CNT 0xfU
-#define V_DEBUG_PC_REQ_EOP1_CNT(x) ((x) << S_DEBUG_PC_REQ_EOP1_CNT)
-#define G_DEBUG_PC_REQ_EOP1_CNT(x) (((x) >> S_DEBUG_PC_REQ_EOP1_CNT) & M_DEBUG_PC_REQ_EOP1_CNT)
-
-#define S_DEBUG_PC_REQ_SOP0_CNT 4
-#define M_DEBUG_PC_REQ_SOP0_CNT 0xfU
-#define V_DEBUG_PC_REQ_SOP0_CNT(x) ((x) << S_DEBUG_PC_REQ_SOP0_CNT)
-#define G_DEBUG_PC_REQ_SOP0_CNT(x) (((x) >> S_DEBUG_PC_REQ_SOP0_CNT) & M_DEBUG_PC_REQ_SOP0_CNT)
-
-#define S_DEBUG_PC_REQ_EOP0_CNT 0
-#define M_DEBUG_PC_REQ_EOP0_CNT 0xfU
-#define V_DEBUG_PC_REQ_EOP0_CNT(x) ((x) << S_DEBUG_PC_REQ_EOP0_CNT)
-#define G_DEBUG_PC_REQ_EOP0_CNT(x) (((x) >> S_DEBUG_PC_REQ_EOP0_CNT) & M_DEBUG_PC_REQ_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_5 0x1294
-
-#define S_DEBUG_PD_RDREQ_SOP3_CNT 28
-#define M_DEBUG_PD_RDREQ_SOP3_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_SOP3_CNT(x) ((x) << S_DEBUG_PD_RDREQ_SOP3_CNT)
-#define G_DEBUG_PD_RDREQ_SOP3_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_SOP3_CNT) & M_DEBUG_PD_RDREQ_SOP3_CNT)
-
-#define S_DEBUG_PD_RDREQ_EOP3_CNT 24
-#define M_DEBUG_PD_RDREQ_EOP3_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_EOP3_CNT(x) ((x) << S_DEBUG_PD_RDREQ_EOP3_CNT)
-#define G_DEBUG_PD_RDREQ_EOP3_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_EOP3_CNT) & M_DEBUG_PD_RDREQ_EOP3_CNT)
-
-#define S_DEBUG_PD_RDREQ_SOP2_CNT 20
-#define M_DEBUG_PD_RDREQ_SOP2_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_SOP2_CNT(x) ((x) << S_DEBUG_PD_RDREQ_SOP2_CNT)
-#define G_DEBUG_PD_RDREQ_SOP2_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_SOP2_CNT) & M_DEBUG_PD_RDREQ_SOP2_CNT)
-
-#define S_DEBUG_PD_RDREQ_EOP2_CNT 16
-#define M_DEBUG_PD_RDREQ_EOP2_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_EOP2_CNT(x) ((x) << S_DEBUG_PD_RDREQ_EOP2_CNT)
-#define G_DEBUG_PD_RDREQ_EOP2_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_EOP2_CNT) & M_DEBUG_PD_RDREQ_EOP2_CNT)
-
-#define S_DEBUG_PD_RDREQ_SOP1_CNT 12
-#define M_DEBUG_PD_RDREQ_SOP1_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_SOP1_CNT(x) ((x) << S_DEBUG_PD_RDREQ_SOP1_CNT)
-#define G_DEBUG_PD_RDREQ_SOP1_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_SOP1_CNT) & M_DEBUG_PD_RDREQ_SOP1_CNT)
-
-#define S_DEBUG_PD_RDREQ_EOP1_CNT 8
-#define M_DEBUG_PD_RDREQ_EOP1_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_EOP1_CNT(x) ((x) << S_DEBUG_PD_RDREQ_EOP1_CNT)
-#define G_DEBUG_PD_RDREQ_EOP1_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_EOP1_CNT) & M_DEBUG_PD_RDREQ_EOP1_CNT)
-
-#define S_DEBUG_PD_RDREQ_SOP0_CNT 4
-#define M_DEBUG_PD_RDREQ_SOP0_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_SOP0_CNT(x) ((x) << S_DEBUG_PD_RDREQ_SOP0_CNT)
-#define G_DEBUG_PD_RDREQ_SOP0_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_SOP0_CNT) & M_DEBUG_PD_RDREQ_SOP0_CNT)
-
-#define S_DEBUG_PD_RDREQ_EOP0_CNT 0
-#define M_DEBUG_PD_RDREQ_EOP0_CNT 0xfU
-#define V_DEBUG_PD_RDREQ_EOP0_CNT(x) ((x) << S_DEBUG_PD_RDREQ_EOP0_CNT)
-#define G_DEBUG_PD_RDREQ_EOP0_CNT(x) (((x) >> S_DEBUG_PD_RDREQ_EOP0_CNT) & M_DEBUG_PD_RDREQ_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_6 0x1298
-
-#define S_DEBUG_PD_RDRSP_SOP3_CNT 28
-#define M_DEBUG_PD_RDRSP_SOP3_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_SOP3_CNT(x) ((x) << S_DEBUG_PD_RDRSP_SOP3_CNT)
-#define G_DEBUG_PD_RDRSP_SOP3_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_SOP3_CNT) & M_DEBUG_PD_RDRSP_SOP3_CNT)
-
-#define S_DEBUG_PD_RDRSP_EOP3_CNT 24
-#define M_DEBUG_PD_RDRSP_EOP3_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_EOP3_CNT(x) ((x) << S_DEBUG_PD_RDRSP_EOP3_CNT)
-#define G_DEBUG_PD_RDRSP_EOP3_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_EOP3_CNT) & M_DEBUG_PD_RDRSP_EOP3_CNT)
-
-#define S_DEBUG_PD_RDRSP_SOP2_CNT 20
-#define M_DEBUG_PD_RDRSP_SOP2_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_SOP2_CNT(x) ((x) << S_DEBUG_PD_RDRSP_SOP2_CNT)
-#define G_DEBUG_PD_RDRSP_SOP2_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_SOP2_CNT) & M_DEBUG_PD_RDRSP_SOP2_CNT)
-
-#define S_DEBUG_PD_RDRSP_EOP2_CNT 16
-#define M_DEBUG_PD_RDRSP_EOP2_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_EOP2_CNT(x) ((x) << S_DEBUG_PD_RDRSP_EOP2_CNT)
-#define G_DEBUG_PD_RDRSP_EOP2_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_EOP2_CNT) & M_DEBUG_PD_RDRSP_EOP2_CNT)
-
-#define S_DEBUG_PD_RDRSP_SOP1_CNT 12
-#define M_DEBUG_PD_RDRSP_SOP1_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_SOP1_CNT(x) ((x) << S_DEBUG_PD_RDRSP_SOP1_CNT)
-#define G_DEBUG_PD_RDRSP_SOP1_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_SOP1_CNT) & M_DEBUG_PD_RDRSP_SOP1_CNT)
-
-#define S_DEBUG_PD_RDRSP_EOP1_CNT 8
-#define M_DEBUG_PD_RDRSP_EOP1_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_EOP1_CNT(x) ((x) << S_DEBUG_PD_RDRSP_EOP1_CNT)
-#define G_DEBUG_PD_RDRSP_EOP1_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_EOP1_CNT) & M_DEBUG_PD_RDRSP_EOP1_CNT)
-
-#define S_DEBUG_PD_RDRSP_SOP0_CNT 4
-#define M_DEBUG_PD_RDRSP_SOP0_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_SOP0_CNT(x) ((x) << S_DEBUG_PD_RDRSP_SOP0_CNT)
-#define G_DEBUG_PD_RDRSP_SOP0_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_SOP0_CNT) & M_DEBUG_PD_RDRSP_SOP0_CNT)
-
-#define S_DEBUG_PD_RDRSP_EOP0_CNT 0
-#define M_DEBUG_PD_RDRSP_EOP0_CNT 0xfU
-#define V_DEBUG_PD_RDRSP_EOP0_CNT(x) ((x) << S_DEBUG_PD_RDRSP_EOP0_CNT)
-#define G_DEBUG_PD_RDRSP_EOP0_CNT(x) (((x) >> S_DEBUG_PD_RDRSP_EOP0_CNT) & M_DEBUG_PD_RDRSP_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_7 0x129c
-
-#define S_DEBUG_PD_WRREQ_SOP3_CNT 28
-#define M_DEBUG_PD_WRREQ_SOP3_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_SOP3_CNT(x) ((x) << S_DEBUG_PD_WRREQ_SOP3_CNT)
-#define G_DEBUG_PD_WRREQ_SOP3_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_SOP3_CNT) & M_DEBUG_PD_WRREQ_SOP3_CNT)
-
-#define S_DEBUG_PD_WRREQ_EOP3_CNT 24
-#define M_DEBUG_PD_WRREQ_EOP3_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_EOP3_CNT(x) ((x) << S_DEBUG_PD_WRREQ_EOP3_CNT)
-#define G_DEBUG_PD_WRREQ_EOP3_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_EOP3_CNT) & M_DEBUG_PD_WRREQ_EOP3_CNT)
-
-#define S_DEBUG_PD_WRREQ_SOP2_CNT 20
-#define M_DEBUG_PD_WRREQ_SOP2_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_SOP2_CNT(x) ((x) << S_DEBUG_PD_WRREQ_SOP2_CNT)
-#define G_DEBUG_PD_WRREQ_SOP2_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_SOP2_CNT) & M_DEBUG_PD_WRREQ_SOP2_CNT)
-
-#define S_DEBUG_PD_WRREQ_EOP2_CNT 16
-#define M_DEBUG_PD_WRREQ_EOP2_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_EOP2_CNT(x) ((x) << S_DEBUG_PD_WRREQ_EOP2_CNT)
-#define G_DEBUG_PD_WRREQ_EOP2_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_EOP2_CNT) & M_DEBUG_PD_WRREQ_EOP2_CNT)
-
-#define S_DEBUG_PD_WRREQ_SOP1_CNT 12
-#define M_DEBUG_PD_WRREQ_SOP1_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_SOP1_CNT(x) ((x) << S_DEBUG_PD_WRREQ_SOP1_CNT)
-#define G_DEBUG_PD_WRREQ_SOP1_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_SOP1_CNT) & M_DEBUG_PD_WRREQ_SOP1_CNT)
-
-#define S_DEBUG_PD_WRREQ_EOP1_CNT 8
-#define M_DEBUG_PD_WRREQ_EOP1_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_EOP1_CNT(x) ((x) << S_DEBUG_PD_WRREQ_EOP1_CNT)
-#define G_DEBUG_PD_WRREQ_EOP1_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_EOP1_CNT) & M_DEBUG_PD_WRREQ_EOP1_CNT)
-
-#define S_DEBUG_PD_WRREQ_SOP0_CNT 4
-#define M_DEBUG_PD_WRREQ_SOP0_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_SOP0_CNT(x) ((x) << S_DEBUG_PD_WRREQ_SOP0_CNT)
-#define G_DEBUG_PD_WRREQ_SOP0_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_SOP0_CNT) & M_DEBUG_PD_WRREQ_SOP0_CNT)
-
-#define S_DEBUG_PD_WRREQ_EOP0_CNT 0
-#define M_DEBUG_PD_WRREQ_EOP0_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_EOP0_CNT(x) ((x) << S_DEBUG_PD_WRREQ_EOP0_CNT)
-#define G_DEBUG_PD_WRREQ_EOP0_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_EOP0_CNT) & M_DEBUG_PD_WRREQ_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_8 0x12a0
-
-#define S_GLOBALENABLE_OFF 29
-#define V_GLOBALENABLE_OFF(x) ((x) << S_GLOBALENABLE_OFF)
-#define F_GLOBALENABLE_OFF V_GLOBALENABLE_OFF(1U)
-
-#define S_DEBUG_CIM2SGE_RXAFULL_D 27
-#define M_DEBUG_CIM2SGE_RXAFULL_D 0x3U
-#define V_DEBUG_CIM2SGE_RXAFULL_D(x) ((x) << S_DEBUG_CIM2SGE_RXAFULL_D)
-#define G_DEBUG_CIM2SGE_RXAFULL_D(x) (((x) >> S_DEBUG_CIM2SGE_RXAFULL_D) & M_DEBUG_CIM2SGE_RXAFULL_D)
-
-#define S_DEBUG_CPLSW_CIM_TXAFULL_D 25
-#define M_DEBUG_CPLSW_CIM_TXAFULL_D 0x3U
-#define V_DEBUG_CPLSW_CIM_TXAFULL_D(x) ((x) << S_DEBUG_CPLSW_CIM_TXAFULL_D)
-#define G_DEBUG_CPLSW_CIM_TXAFULL_D(x) (((x) >> S_DEBUG_CPLSW_CIM_TXAFULL_D) & M_DEBUG_CPLSW_CIM_TXAFULL_D)
-
-#define S_DEBUG_UP_FULL 24
-#define V_DEBUG_UP_FULL(x) ((x) << S_DEBUG_UP_FULL)
-#define F_DEBUG_UP_FULL V_DEBUG_UP_FULL(1U)
-
-#define S_DEBUG_M_RD_REQ_OUTSTANDING_PC 23
-#define V_DEBUG_M_RD_REQ_OUTSTANDING_PC(x) ((x) << S_DEBUG_M_RD_REQ_OUTSTANDING_PC)
-#define F_DEBUG_M_RD_REQ_OUTSTANDING_PC V_DEBUG_M_RD_REQ_OUTSTANDING_PC(1U)
-
-#define S_DEBUG_M_RD_REQ_OUTSTANDING_VFIFO 22
-#define V_DEBUG_M_RD_REQ_OUTSTANDING_VFIFO(x) ((x) << S_DEBUG_M_RD_REQ_OUTSTANDING_VFIFO)
-#define F_DEBUG_M_RD_REQ_OUTSTANDING_VFIFO V_DEBUG_M_RD_REQ_OUTSTANDING_VFIFO(1U)
-
-#define S_DEBUG_M_RD_REQ_OUTSTANDING_IMSG 21
-#define V_DEBUG_M_RD_REQ_OUTSTANDING_IMSG(x) ((x) << S_DEBUG_M_RD_REQ_OUTSTANDING_IMSG)
-#define F_DEBUG_M_RD_REQ_OUTSTANDING_IMSG V_DEBUG_M_RD_REQ_OUTSTANDING_IMSG(1U)
-
-#define S_DEBUG_M_RD_REQ_OUTSTANDING_CMARB 20
-#define V_DEBUG_M_RD_REQ_OUTSTANDING_CMARB(x) ((x) << S_DEBUG_M_RD_REQ_OUTSTANDING_CMARB)
-#define F_DEBUG_M_RD_REQ_OUTSTANDING_CMARB V_DEBUG_M_RD_REQ_OUTSTANDING_CMARB(1U)
-
-#define S_DEBUG_M_RD_REQ_OUTSTANDING_FLM 19
-#define V_DEBUG_M_RD_REQ_OUTSTANDING_FLM(x) ((x) << S_DEBUG_M_RD_REQ_OUTSTANDING_FLM)
-#define F_DEBUG_M_RD_REQ_OUTSTANDING_FLM V_DEBUG_M_RD_REQ_OUTSTANDING_FLM(1U)
-
-#define S_DEBUG_M_REQVLD 18
-#define V_DEBUG_M_REQVLD(x) ((x) << S_DEBUG_M_REQVLD)
-#define F_DEBUG_M_REQVLD V_DEBUG_M_REQVLD(1U)
-
-#define S_DEBUG_M_REQRDY 17
-#define V_DEBUG_M_REQRDY(x) ((x) << S_DEBUG_M_REQRDY)
-#define F_DEBUG_M_REQRDY V_DEBUG_M_REQRDY(1U)
-
-#define S_DEBUG_M_RSPVLD 16
-#define V_DEBUG_M_RSPVLD(x) ((x) << S_DEBUG_M_RSPVLD)
-#define F_DEBUG_M_RSPVLD V_DEBUG_M_RSPVLD(1U)
-
-#define S_DEBUG_PD_WRREQ_INT3_CNT 12
-#define M_DEBUG_PD_WRREQ_INT3_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_INT3_CNT(x) ((x) << S_DEBUG_PD_WRREQ_INT3_CNT)
-#define G_DEBUG_PD_WRREQ_INT3_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_INT3_CNT) & M_DEBUG_PD_WRREQ_INT3_CNT)
-
-#define S_DEBUG_PD_WRREQ_INT2_CNT 8
-#define M_DEBUG_PD_WRREQ_INT2_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_INT2_CNT(x) ((x) << S_DEBUG_PD_WRREQ_INT2_CNT)
-#define G_DEBUG_PD_WRREQ_INT2_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_INT2_CNT) & M_DEBUG_PD_WRREQ_INT2_CNT)
-
-#define S_DEBUG_PD_WRREQ_INT1_CNT 4
-#define M_DEBUG_PD_WRREQ_INT1_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_INT1_CNT(x) ((x) << S_DEBUG_PD_WRREQ_INT1_CNT)
-#define G_DEBUG_PD_WRREQ_INT1_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_INT1_CNT) & M_DEBUG_PD_WRREQ_INT1_CNT)
-
-#define S_DEBUG_PD_WRREQ_INT0_CNT 0
-#define M_DEBUG_PD_WRREQ_INT0_CNT 0xfU
-#define V_DEBUG_PD_WRREQ_INT0_CNT(x) ((x) << S_DEBUG_PD_WRREQ_INT0_CNT)
-#define G_DEBUG_PD_WRREQ_INT0_CNT(x) (((x) >> S_DEBUG_PD_WRREQ_INT0_CNT) & M_DEBUG_PD_WRREQ_INT0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_9 0x12a4
-
-#define S_DEBUG_CPLSW_TP_RX_SOP1_CNT 28
-#define M_DEBUG_CPLSW_TP_RX_SOP1_CNT 0xfU
-#define V_DEBUG_CPLSW_TP_RX_SOP1_CNT(x) ((x) << S_DEBUG_CPLSW_TP_RX_SOP1_CNT)
-#define G_DEBUG_CPLSW_TP_RX_SOP1_CNT(x) (((x) >> S_DEBUG_CPLSW_TP_RX_SOP1_CNT) & M_DEBUG_CPLSW_TP_RX_SOP1_CNT)
-
-#define S_DEBUG_CPLSW_TP_RX_EOP1_CNT 24
-#define M_DEBUG_CPLSW_TP_RX_EOP1_CNT 0xfU
-#define V_DEBUG_CPLSW_TP_RX_EOP1_CNT(x) ((x) << S_DEBUG_CPLSW_TP_RX_EOP1_CNT)
-#define G_DEBUG_CPLSW_TP_RX_EOP1_CNT(x) (((x) >> S_DEBUG_CPLSW_TP_RX_EOP1_CNT) & M_DEBUG_CPLSW_TP_RX_EOP1_CNT)
-
-#define S_DEBUG_CPLSW_TP_RX_SOP0_CNT 20
-#define M_DEBUG_CPLSW_TP_RX_SOP0_CNT 0xfU
-#define V_DEBUG_CPLSW_TP_RX_SOP0_CNT(x) ((x) << S_DEBUG_CPLSW_TP_RX_SOP0_CNT)
-#define G_DEBUG_CPLSW_TP_RX_SOP0_CNT(x) (((x) >> S_DEBUG_CPLSW_TP_RX_SOP0_CNT) & M_DEBUG_CPLSW_TP_RX_SOP0_CNT)
-
-#define S_DEBUG_CPLSW_TP_RX_EOP0_CNT 16
-#define M_DEBUG_CPLSW_TP_RX_EOP0_CNT 0xfU
-#define V_DEBUG_CPLSW_TP_RX_EOP0_CNT(x) ((x) << S_DEBUG_CPLSW_TP_RX_EOP0_CNT)
-#define G_DEBUG_CPLSW_TP_RX_EOP0_CNT(x) (((x) >> S_DEBUG_CPLSW_TP_RX_EOP0_CNT) & M_DEBUG_CPLSW_TP_RX_EOP0_CNT)
-
-#define S_DEBUG_CPLSW_CIM_SOP1_CNT 12
-#define M_DEBUG_CPLSW_CIM_SOP1_CNT 0xfU
-#define V_DEBUG_CPLSW_CIM_SOP1_CNT(x) ((x) << S_DEBUG_CPLSW_CIM_SOP1_CNT)
-#define G_DEBUG_CPLSW_CIM_SOP1_CNT(x) (((x) >> S_DEBUG_CPLSW_CIM_SOP1_CNT) & M_DEBUG_CPLSW_CIM_SOP1_CNT)
-
-#define S_DEBUG_CPLSW_CIM_EOP1_CNT 8
-#define M_DEBUG_CPLSW_CIM_EOP1_CNT 0xfU
-#define V_DEBUG_CPLSW_CIM_EOP1_CNT(x) ((x) << S_DEBUG_CPLSW_CIM_EOP1_CNT)
-#define G_DEBUG_CPLSW_CIM_EOP1_CNT(x) (((x) >> S_DEBUG_CPLSW_CIM_EOP1_CNT) & M_DEBUG_CPLSW_CIM_EOP1_CNT)
-
-#define S_DEBUG_CPLSW_CIM_SOP0_CNT 4
-#define M_DEBUG_CPLSW_CIM_SOP0_CNT 0xfU
-#define V_DEBUG_CPLSW_CIM_SOP0_CNT(x) ((x) << S_DEBUG_CPLSW_CIM_SOP0_CNT)
-#define G_DEBUG_CPLSW_CIM_SOP0_CNT(x) (((x) >> S_DEBUG_CPLSW_CIM_SOP0_CNT) & M_DEBUG_CPLSW_CIM_SOP0_CNT)
-
-#define S_DEBUG_CPLSW_CIM_EOP0_CNT 0
-#define M_DEBUG_CPLSW_CIM_EOP0_CNT 0xfU
-#define V_DEBUG_CPLSW_CIM_EOP0_CNT(x) ((x) << S_DEBUG_CPLSW_CIM_EOP0_CNT)
-#define G_DEBUG_CPLSW_CIM_EOP0_CNT(x) (((x) >> S_DEBUG_CPLSW_CIM_EOP0_CNT) & M_DEBUG_CPLSW_CIM_EOP0_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_10 0x12a8
-
-#define S_DEBUG_T_RXAFULL_D 30
-#define M_DEBUG_T_RXAFULL_D 0x3U
-#define V_DEBUG_T_RXAFULL_D(x) ((x) << S_DEBUG_T_RXAFULL_D)
-#define G_DEBUG_T_RXAFULL_D(x) (((x) >> S_DEBUG_T_RXAFULL_D) & M_DEBUG_T_RXAFULL_D)
-
-#define S_DEBUG_PD_RDRSPAFULL_D 26
-#define M_DEBUG_PD_RDRSPAFULL_D 0xfU
-#define V_DEBUG_PD_RDRSPAFULL_D(x) ((x) << S_DEBUG_PD_RDRSPAFULL_D)
-#define G_DEBUG_PD_RDRSPAFULL_D(x) (((x) >> S_DEBUG_PD_RDRSPAFULL_D) & M_DEBUG_PD_RDRSPAFULL_D)
-
-#define S_DEBUG_PD_RDREQAFULL_D 22
-#define M_DEBUG_PD_RDREQAFULL_D 0xfU
-#define V_DEBUG_PD_RDREQAFULL_D(x) ((x) << S_DEBUG_PD_RDREQAFULL_D)
-#define G_DEBUG_PD_RDREQAFULL_D(x) (((x) >> S_DEBUG_PD_RDREQAFULL_D) & M_DEBUG_PD_RDREQAFULL_D)
-
-#define S_DEBUG_PD_WRREQAFULL_D 18
-#define M_DEBUG_PD_WRREQAFULL_D 0xfU
-#define V_DEBUG_PD_WRREQAFULL_D(x) ((x) << S_DEBUG_PD_WRREQAFULL_D)
-#define G_DEBUG_PD_WRREQAFULL_D(x) (((x) >> S_DEBUG_PD_WRREQAFULL_D) & M_DEBUG_PD_WRREQAFULL_D)
-
-#define S_DEBUG_PC_RSPAFULL_D 15
-#define M_DEBUG_PC_RSPAFULL_D 0x7U
-#define V_DEBUG_PC_RSPAFULL_D(x) ((x) << S_DEBUG_PC_RSPAFULL_D)
-#define G_DEBUG_PC_RSPAFULL_D(x) (((x) >> S_DEBUG_PC_RSPAFULL_D) & M_DEBUG_PC_RSPAFULL_D)
-
-#define S_DEBUG_PC_REQAFULL_D 12
-#define M_DEBUG_PC_REQAFULL_D 0x7U
-#define V_DEBUG_PC_REQAFULL_D(x) ((x) << S_DEBUG_PC_REQAFULL_D)
-#define G_DEBUG_PC_REQAFULL_D(x) (((x) >> S_DEBUG_PC_REQAFULL_D) & M_DEBUG_PC_REQAFULL_D)
-
-#define S_DEBUG_U_TXAFULL_D 8
-#define M_DEBUG_U_TXAFULL_D 0xfU
-#define V_DEBUG_U_TXAFULL_D(x) ((x) << S_DEBUG_U_TXAFULL_D)
-#define G_DEBUG_U_TXAFULL_D(x) (((x) >> S_DEBUG_U_TXAFULL_D) & M_DEBUG_U_TXAFULL_D)
-
-#define S_DEBUG_UD_RXAFULL_D 4
-#define M_DEBUG_UD_RXAFULL_D 0xfU
-#define V_DEBUG_UD_RXAFULL_D(x) ((x) << S_DEBUG_UD_RXAFULL_D)
-#define G_DEBUG_UD_RXAFULL_D(x) (((x) >> S_DEBUG_UD_RXAFULL_D) & M_DEBUG_UD_RXAFULL_D)
-
-#define S_DEBUG_U_RXAFULL_D 2
-#define M_DEBUG_U_RXAFULL_D 0x3U
-#define V_DEBUG_U_RXAFULL_D(x) ((x) << S_DEBUG_U_RXAFULL_D)
-#define G_DEBUG_U_RXAFULL_D(x) (((x) >> S_DEBUG_U_RXAFULL_D) & M_DEBUG_U_RXAFULL_D)
-
-#define S_DEBUG_CIM_AFULL_D 0
-#define M_DEBUG_CIM_AFULL_D 0x3U
-#define V_DEBUG_CIM_AFULL_D(x) ((x) << S_DEBUG_CIM_AFULL_D)
-#define G_DEBUG_CIM_AFULL_D(x) (((x) >> S_DEBUG_CIM_AFULL_D) & M_DEBUG_CIM_AFULL_D)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_11 0x12ac
-
-#define S_DEBUG_FLM_IDMA1_CACHE_DATA_ACTIVE 24
-#define V_DEBUG_FLM_IDMA1_CACHE_DATA_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA1_CACHE_DATA_ACTIVE)
-#define F_DEBUG_FLM_IDMA1_CACHE_DATA_ACTIVE V_DEBUG_FLM_IDMA1_CACHE_DATA_ACTIVE(1U)
-
-#define S_DEBUG_FLM_IDMA1_CACHE_HDR_ACTIVE 23
-#define V_DEBUG_FLM_IDMA1_CACHE_HDR_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA1_CACHE_HDR_ACTIVE)
-#define F_DEBUG_FLM_IDMA1_CACHE_HDR_ACTIVE V_DEBUG_FLM_IDMA1_CACHE_HDR_ACTIVE(1U)
-
-#define S_DEBUG_FLM_IDMA1_CTXT_DATA_ACTIVE 22
-#define V_DEBUG_FLM_IDMA1_CTXT_DATA_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA1_CTXT_DATA_ACTIVE)
-#define F_DEBUG_FLM_IDMA1_CTXT_DATA_ACTIVE V_DEBUG_FLM_IDMA1_CTXT_DATA_ACTIVE(1U)
-
-#define S_DEBUG_FLM_IDMA1_CTXT_HDR_ACTIVE 21
-#define V_DEBUG_FLM_IDMA1_CTXT_HDR_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA1_CTXT_HDR_ACTIVE)
-#define F_DEBUG_FLM_IDMA1_CTXT_HDR_ACTIVE V_DEBUG_FLM_IDMA1_CTXT_HDR_ACTIVE(1U)
-
-#define S_DEBUG_ST_FLM_IDMA1_CACHE 19
-#define M_DEBUG_ST_FLM_IDMA1_CACHE 0x3U
-#define V_DEBUG_ST_FLM_IDMA1_CACHE(x) ((x) << S_DEBUG_ST_FLM_IDMA1_CACHE)
-#define G_DEBUG_ST_FLM_IDMA1_CACHE(x) (((x) >> S_DEBUG_ST_FLM_IDMA1_CACHE) & M_DEBUG_ST_FLM_IDMA1_CACHE)
-
-#define S_DEBUG_ST_FLM_IDMA1_CTXT 16
-#define M_DEBUG_ST_FLM_IDMA1_CTXT 0x7U
-#define V_DEBUG_ST_FLM_IDMA1_CTXT(x) ((x) << S_DEBUG_ST_FLM_IDMA1_CTXT)
-#define G_DEBUG_ST_FLM_IDMA1_CTXT(x) (((x) >> S_DEBUG_ST_FLM_IDMA1_CTXT) & M_DEBUG_ST_FLM_IDMA1_CTXT)
-
-#define S_DEBUG_FLM_IDMA0_CACHE_DATA_ACTIVE 8
-#define V_DEBUG_FLM_IDMA0_CACHE_DATA_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA0_CACHE_DATA_ACTIVE)
-#define F_DEBUG_FLM_IDMA0_CACHE_DATA_ACTIVE V_DEBUG_FLM_IDMA0_CACHE_DATA_ACTIVE(1U)
-
-#define S_DEBUG_FLM_IDMA0_CACHE_HDR_ACTIVE 7
-#define V_DEBUG_FLM_IDMA0_CACHE_HDR_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA0_CACHE_HDR_ACTIVE)
-#define F_DEBUG_FLM_IDMA0_CACHE_HDR_ACTIVE V_DEBUG_FLM_IDMA0_CACHE_HDR_ACTIVE(1U)
-
-#define S_DEBUG_FLM_IDMA0_CTXT_DATA_ACTIVE 6
-#define V_DEBUG_FLM_IDMA0_CTXT_DATA_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA0_CTXT_DATA_ACTIVE)
-#define F_DEBUG_FLM_IDMA0_CTXT_DATA_ACTIVE V_DEBUG_FLM_IDMA0_CTXT_DATA_ACTIVE(1U)
-
-#define S_DEBUG_FLM_IDMA0_CTXT_HDR_ACTIVE 5
-#define V_DEBUG_FLM_IDMA0_CTXT_HDR_ACTIVE(x) ((x) << S_DEBUG_FLM_IDMA0_CTXT_HDR_ACTIVE)
-#define F_DEBUG_FLM_IDMA0_CTXT_HDR_ACTIVE V_DEBUG_FLM_IDMA0_CTXT_HDR_ACTIVE(1U)
-
-#define S_DEBUG_ST_FLM_IDMA0_CACHE 3
-#define M_DEBUG_ST_FLM_IDMA0_CACHE 0x3U
-#define V_DEBUG_ST_FLM_IDMA0_CACHE(x) ((x) << S_DEBUG_ST_FLM_IDMA0_CACHE)
-#define G_DEBUG_ST_FLM_IDMA0_CACHE(x) (((x) >> S_DEBUG_ST_FLM_IDMA0_CACHE) & M_DEBUG_ST_FLM_IDMA0_CACHE)
-
-#define S_DEBUG_ST_FLM_IDMA0_CTXT 0
-#define M_DEBUG_ST_FLM_IDMA0_CTXT 0x7U
-#define V_DEBUG_ST_FLM_IDMA0_CTXT(x) ((x) << S_DEBUG_ST_FLM_IDMA0_CTXT)
-#define G_DEBUG_ST_FLM_IDMA0_CTXT(x) (((x) >> S_DEBUG_ST_FLM_IDMA0_CTXT) & M_DEBUG_ST_FLM_IDMA0_CTXT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_12 0x12b0
-
-#define S_DEBUG_CPLSW_SOP1_CNT 28
-#define M_DEBUG_CPLSW_SOP1_CNT 0xfU
-#define V_DEBUG_CPLSW_SOP1_CNT(x) ((x) << S_DEBUG_CPLSW_SOP1_CNT)
-#define G_DEBUG_CPLSW_SOP1_CNT(x) (((x) >> S_DEBUG_CPLSW_SOP1_CNT) & M_DEBUG_CPLSW_SOP1_CNT)
-
-#define S_DEBUG_CPLSW_EOP1_CNT 24
-#define M_DEBUG_CPLSW_EOP1_CNT 0xfU
-#define V_DEBUG_CPLSW_EOP1_CNT(x) ((x) << S_DEBUG_CPLSW_EOP1_CNT)
-#define G_DEBUG_CPLSW_EOP1_CNT(x) (((x) >> S_DEBUG_CPLSW_EOP1_CNT) & M_DEBUG_CPLSW_EOP1_CNT)
-
-#define S_DEBUG_CPLSW_SOP0_CNT 20
-#define M_DEBUG_CPLSW_SOP0_CNT 0xfU
-#define V_DEBUG_CPLSW_SOP0_CNT(x) ((x) << S_DEBUG_CPLSW_SOP0_CNT)
-#define G_DEBUG_CPLSW_SOP0_CNT(x) (((x) >> S_DEBUG_CPLSW_SOP0_CNT) & M_DEBUG_CPLSW_SOP0_CNT)
-
-#define S_DEBUG_CPLSW_EOP0_CNT 16
-#define M_DEBUG_CPLSW_EOP0_CNT 0xfU
-#define V_DEBUG_CPLSW_EOP0_CNT(x) ((x) << S_DEBUG_CPLSW_EOP0_CNT)
-#define G_DEBUG_CPLSW_EOP0_CNT(x) (((x) >> S_DEBUG_CPLSW_EOP0_CNT) & M_DEBUG_CPLSW_EOP0_CNT)
-
-#define S_DEBUG_PC_RSP_SOP2_CNT 12
-#define M_DEBUG_PC_RSP_SOP2_CNT 0xfU
-#define V_DEBUG_PC_RSP_SOP2_CNT(x) ((x) << S_DEBUG_PC_RSP_SOP2_CNT)
-#define G_DEBUG_PC_RSP_SOP2_CNT(x) (((x) >> S_DEBUG_PC_RSP_SOP2_CNT) & M_DEBUG_PC_RSP_SOP2_CNT)
-
-#define S_DEBUG_PC_RSP_EOP2_CNT 8
-#define M_DEBUG_PC_RSP_EOP2_CNT 0xfU
-#define V_DEBUG_PC_RSP_EOP2_CNT(x) ((x) << S_DEBUG_PC_RSP_EOP2_CNT)
-#define G_DEBUG_PC_RSP_EOP2_CNT(x) (((x) >> S_DEBUG_PC_RSP_EOP2_CNT) & M_DEBUG_PC_RSP_EOP2_CNT)
-
-#define S_DEBUG_PC_REQ_SOP2_CNT 4
-#define M_DEBUG_PC_REQ_SOP2_CNT 0xfU
-#define V_DEBUG_PC_REQ_SOP2_CNT(x) ((x) << S_DEBUG_PC_REQ_SOP2_CNT)
-#define G_DEBUG_PC_REQ_SOP2_CNT(x) (((x) >> S_DEBUG_PC_REQ_SOP2_CNT) & M_DEBUG_PC_REQ_SOP2_CNT)
-
-#define S_DEBUG_PC_REQ_EOP2_CNT 0
-#define M_DEBUG_PC_REQ_EOP2_CNT 0xfU
-#define V_DEBUG_PC_REQ_EOP2_CNT(x) ((x) << S_DEBUG_PC_REQ_EOP2_CNT)
-#define G_DEBUG_PC_REQ_EOP2_CNT(x) (((x) >> S_DEBUG_PC_REQ_EOP2_CNT) & M_DEBUG_PC_REQ_EOP2_CNT)
-
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_13 0x12b4
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_14 0x12b8
-#define A_SGE_DEBUG_DATA_HIGH_INDEX_15 0x12bc
-#define A_SGE_DEBUG_DATA_LOW_INDEX_0 0x12c0
-
-#define S_DEBUG_ST_IDMA1_FLM_REQ 29
-#define M_DEBUG_ST_IDMA1_FLM_REQ 0x7U
-#define V_DEBUG_ST_IDMA1_FLM_REQ(x) ((x) << S_DEBUG_ST_IDMA1_FLM_REQ)
-#define G_DEBUG_ST_IDMA1_FLM_REQ(x) (((x) >> S_DEBUG_ST_IDMA1_FLM_REQ) & M_DEBUG_ST_IDMA1_FLM_REQ)
-
-#define S_DEBUG_ST_IDMA0_FLM_REQ 26
-#define M_DEBUG_ST_IDMA0_FLM_REQ 0x7U
-#define V_DEBUG_ST_IDMA0_FLM_REQ(x) ((x) << S_DEBUG_ST_IDMA0_FLM_REQ)
-#define G_DEBUG_ST_IDMA0_FLM_REQ(x) (((x) >> S_DEBUG_ST_IDMA0_FLM_REQ) & M_DEBUG_ST_IDMA0_FLM_REQ)
-
-#define S_DEBUG_ST_IMSG_CTXT 23
-#define M_DEBUG_ST_IMSG_CTXT 0x7U
-#define V_DEBUG_ST_IMSG_CTXT(x) ((x) << S_DEBUG_ST_IMSG_CTXT)
-#define G_DEBUG_ST_IMSG_CTXT(x) (((x) >> S_DEBUG_ST_IMSG_CTXT) & M_DEBUG_ST_IMSG_CTXT)
-
-#define S_DEBUG_ST_IMSG 18
-#define M_DEBUG_ST_IMSG 0x1fU
-#define V_DEBUG_ST_IMSG(x) ((x) << S_DEBUG_ST_IMSG)
-#define G_DEBUG_ST_IMSG(x) (((x) >> S_DEBUG_ST_IMSG) & M_DEBUG_ST_IMSG)
-
-#define S_DEBUG_ST_IDMA1_IALN 16
-#define M_DEBUG_ST_IDMA1_IALN 0x3U
-#define V_DEBUG_ST_IDMA1_IALN(x) ((x) << S_DEBUG_ST_IDMA1_IALN)
-#define G_DEBUG_ST_IDMA1_IALN(x) (((x) >> S_DEBUG_ST_IDMA1_IALN) & M_DEBUG_ST_IDMA1_IALN)
-
-#define S_DEBUG_ST_IDMA1_IDMA_SM 9
-#define M_DEBUG_ST_IDMA1_IDMA_SM 0x3fU
-#define V_DEBUG_ST_IDMA1_IDMA_SM(x) ((x) << S_DEBUG_ST_IDMA1_IDMA_SM)
-#define G_DEBUG_ST_IDMA1_IDMA_SM(x) (((x) >> S_DEBUG_ST_IDMA1_IDMA_SM) & M_DEBUG_ST_IDMA1_IDMA_SM)
-
-#define S_DEBUG_ST_IDMA0_IALN 7
-#define M_DEBUG_ST_IDMA0_IALN 0x3U
-#define V_DEBUG_ST_IDMA0_IALN(x) ((x) << S_DEBUG_ST_IDMA0_IALN)
-#define G_DEBUG_ST_IDMA0_IALN(x) (((x) >> S_DEBUG_ST_IDMA0_IALN) & M_DEBUG_ST_IDMA0_IALN)
-
-#define S_DEBUG_ST_IDMA0_IDMA_SM 0
-#define M_DEBUG_ST_IDMA0_IDMA_SM 0x3fU
-#define V_DEBUG_ST_IDMA0_IDMA_SM(x) ((x) << S_DEBUG_ST_IDMA0_IDMA_SM)
-#define G_DEBUG_ST_IDMA0_IDMA_SM(x) (((x) >> S_DEBUG_ST_IDMA0_IDMA_SM) & M_DEBUG_ST_IDMA0_IDMA_SM)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_1 0x12c4
-
-#define S_DEBUG_ITP_EMPTY 12
-#define M_DEBUG_ITP_EMPTY 0x3fU
-#define V_DEBUG_ITP_EMPTY(x) ((x) << S_DEBUG_ITP_EMPTY)
-#define G_DEBUG_ITP_EMPTY(x) (((x) >> S_DEBUG_ITP_EMPTY) & M_DEBUG_ITP_EMPTY)
-
-#define S_DEBUG_ITP_EXPIRED 6
-#define M_DEBUG_ITP_EXPIRED 0x3fU
-#define V_DEBUG_ITP_EXPIRED(x) ((x) << S_DEBUG_ITP_EXPIRED)
-#define G_DEBUG_ITP_EXPIRED(x) (((x) >> S_DEBUG_ITP_EXPIRED) & M_DEBUG_ITP_EXPIRED)
-
-#define S_DEBUG_ITP_PAUSE 5
-#define V_DEBUG_ITP_PAUSE(x) ((x) << S_DEBUG_ITP_PAUSE)
-#define F_DEBUG_ITP_PAUSE V_DEBUG_ITP_PAUSE(1U)
-
-#define S_DEBUG_ITP_DEL_DONE 4
-#define V_DEBUG_ITP_DEL_DONE(x) ((x) << S_DEBUG_ITP_DEL_DONE)
-#define F_DEBUG_ITP_DEL_DONE V_DEBUG_ITP_DEL_DONE(1U)
-
-#define S_DEBUG_ITP_ADD_DONE 3
-#define V_DEBUG_ITP_ADD_DONE(x) ((x) << S_DEBUG_ITP_ADD_DONE)
-#define F_DEBUG_ITP_ADD_DONE V_DEBUG_ITP_ADD_DONE(1U)
-
-#define S_DEBUG_ITP_EVR_STATE 0
-#define M_DEBUG_ITP_EVR_STATE 0x7U
-#define V_DEBUG_ITP_EVR_STATE(x) ((x) << S_DEBUG_ITP_EVR_STATE)
-#define G_DEBUG_ITP_EVR_STATE(x) (((x) >> S_DEBUG_ITP_EVR_STATE) & M_DEBUG_ITP_EVR_STATE)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_2 0x12c8
-
-#define S_DEBUG_ST_DBP_THREAD2_CIMFL 25
-#define M_DEBUG_ST_DBP_THREAD2_CIMFL 0x1fU
-#define V_DEBUG_ST_DBP_THREAD2_CIMFL(x) ((x) << S_DEBUG_ST_DBP_THREAD2_CIMFL)
-#define G_DEBUG_ST_DBP_THREAD2_CIMFL(x) (((x) >> S_DEBUG_ST_DBP_THREAD2_CIMFL) & M_DEBUG_ST_DBP_THREAD2_CIMFL)
-
-#define S_DEBUG_ST_DBP_THREAD2_MAIN 20
-#define M_DEBUG_ST_DBP_THREAD2_MAIN 0x1fU
-#define V_DEBUG_ST_DBP_THREAD2_MAIN(x) ((x) << S_DEBUG_ST_DBP_THREAD2_MAIN)
-#define G_DEBUG_ST_DBP_THREAD2_MAIN(x) (((x) >> S_DEBUG_ST_DBP_THREAD2_MAIN) & M_DEBUG_ST_DBP_THREAD2_MAIN)
-
-#define S_DEBUG_ST_DBP_THREAD1_CIMFL 15
-#define M_DEBUG_ST_DBP_THREAD1_CIMFL 0x1fU
-#define V_DEBUG_ST_DBP_THREAD1_CIMFL(x) ((x) << S_DEBUG_ST_DBP_THREAD1_CIMFL)
-#define G_DEBUG_ST_DBP_THREAD1_CIMFL(x) (((x) >> S_DEBUG_ST_DBP_THREAD1_CIMFL) & M_DEBUG_ST_DBP_THREAD1_CIMFL)
-
-#define S_DEBUG_ST_DBP_THREAD1_MAIN 10
-#define M_DEBUG_ST_DBP_THREAD1_MAIN 0x1fU
-#define V_DEBUG_ST_DBP_THREAD1_MAIN(x) ((x) << S_DEBUG_ST_DBP_THREAD1_MAIN)
-#define G_DEBUG_ST_DBP_THREAD1_MAIN(x) (((x) >> S_DEBUG_ST_DBP_THREAD1_MAIN) & M_DEBUG_ST_DBP_THREAD1_MAIN)
-
-#define S_DEBUG_ST_DBP_THREAD0_CIMFL 5
-#define M_DEBUG_ST_DBP_THREAD0_CIMFL 0x1fU
-#define V_DEBUG_ST_DBP_THREAD0_CIMFL(x) ((x) << S_DEBUG_ST_DBP_THREAD0_CIMFL)
-#define G_DEBUG_ST_DBP_THREAD0_CIMFL(x) (((x) >> S_DEBUG_ST_DBP_THREAD0_CIMFL) & M_DEBUG_ST_DBP_THREAD0_CIMFL)
-
-#define S_DEBUG_ST_DBP_THREAD0_MAIN 0
-#define M_DEBUG_ST_DBP_THREAD0_MAIN 0x1fU
-#define V_DEBUG_ST_DBP_THREAD0_MAIN(x) ((x) << S_DEBUG_ST_DBP_THREAD0_MAIN)
-#define G_DEBUG_ST_DBP_THREAD0_MAIN(x) (((x) >> S_DEBUG_ST_DBP_THREAD0_MAIN) & M_DEBUG_ST_DBP_THREAD0_MAIN)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_3 0x12cc
-
-#define S_DEBUG_ST_DBP_UPCP_MAIN 14
-#define M_DEBUG_ST_DBP_UPCP_MAIN 0x1fU
-#define V_DEBUG_ST_DBP_UPCP_MAIN(x) ((x) << S_DEBUG_ST_DBP_UPCP_MAIN)
-#define G_DEBUG_ST_DBP_UPCP_MAIN(x) (((x) >> S_DEBUG_ST_DBP_UPCP_MAIN) & M_DEBUG_ST_DBP_UPCP_MAIN)
-
-#define S_DEBUG_ST_DBP_DBFIFO_MAIN 13
-#define V_DEBUG_ST_DBP_DBFIFO_MAIN(x) ((x) << S_DEBUG_ST_DBP_DBFIFO_MAIN)
-#define F_DEBUG_ST_DBP_DBFIFO_MAIN V_DEBUG_ST_DBP_DBFIFO_MAIN(1U)
-
-#define S_DEBUG_ST_DBP_CTXT 10
-#define M_DEBUG_ST_DBP_CTXT 0x7U
-#define V_DEBUG_ST_DBP_CTXT(x) ((x) << S_DEBUG_ST_DBP_CTXT)
-#define G_DEBUG_ST_DBP_CTXT(x) (((x) >> S_DEBUG_ST_DBP_CTXT) & M_DEBUG_ST_DBP_CTXT)
-
-#define S_DEBUG_ST_DBP_THREAD3_CIMFL 5
-#define M_DEBUG_ST_DBP_THREAD3_CIMFL 0x1fU
-#define V_DEBUG_ST_DBP_THREAD3_CIMFL(x) ((x) << S_DEBUG_ST_DBP_THREAD3_CIMFL)
-#define G_DEBUG_ST_DBP_THREAD3_CIMFL(x) (((x) >> S_DEBUG_ST_DBP_THREAD3_CIMFL) & M_DEBUG_ST_DBP_THREAD3_CIMFL)
-
-#define S_DEBUG_ST_DBP_THREAD3_MAIN 0
-#define M_DEBUG_ST_DBP_THREAD3_MAIN 0x1fU
-#define V_DEBUG_ST_DBP_THREAD3_MAIN(x) ((x) << S_DEBUG_ST_DBP_THREAD3_MAIN)
-#define G_DEBUG_ST_DBP_THREAD3_MAIN(x) (((x) >> S_DEBUG_ST_DBP_THREAD3_MAIN) & M_DEBUG_ST_DBP_THREAD3_MAIN)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_4 0x12d0
-
-#define S_DEBUG_ST_EDMA3_ALIGN_SUB 29
-#define M_DEBUG_ST_EDMA3_ALIGN_SUB 0x7U
-#define V_DEBUG_ST_EDMA3_ALIGN_SUB(x) ((x) << S_DEBUG_ST_EDMA3_ALIGN_SUB)
-#define G_DEBUG_ST_EDMA3_ALIGN_SUB(x) (((x) >> S_DEBUG_ST_EDMA3_ALIGN_SUB) & M_DEBUG_ST_EDMA3_ALIGN_SUB)
-
-#define S_DEBUG_ST_EDMA3_ALIGN 27
-#define M_DEBUG_ST_EDMA3_ALIGN 0x3U
-#define V_DEBUG_ST_EDMA3_ALIGN(x) ((x) << S_DEBUG_ST_EDMA3_ALIGN)
-#define G_DEBUG_ST_EDMA3_ALIGN(x) (((x) >> S_DEBUG_ST_EDMA3_ALIGN) & M_DEBUG_ST_EDMA3_ALIGN)
-
-#define S_DEBUG_ST_EDMA3_REQ 24
-#define M_DEBUG_ST_EDMA3_REQ 0x7U
-#define V_DEBUG_ST_EDMA3_REQ(x) ((x) << S_DEBUG_ST_EDMA3_REQ)
-#define G_DEBUG_ST_EDMA3_REQ(x) (((x) >> S_DEBUG_ST_EDMA3_REQ) & M_DEBUG_ST_EDMA3_REQ)
-
-#define S_DEBUG_ST_EDMA2_ALIGN_SUB 21
-#define M_DEBUG_ST_EDMA2_ALIGN_SUB 0x7U
-#define V_DEBUG_ST_EDMA2_ALIGN_SUB(x) ((x) << S_DEBUG_ST_EDMA2_ALIGN_SUB)
-#define G_DEBUG_ST_EDMA2_ALIGN_SUB(x) (((x) >> S_DEBUG_ST_EDMA2_ALIGN_SUB) & M_DEBUG_ST_EDMA2_ALIGN_SUB)
-
-#define S_DEBUG_ST_EDMA2_ALIGN 19
-#define M_DEBUG_ST_EDMA2_ALIGN 0x3U
-#define V_DEBUG_ST_EDMA2_ALIGN(x) ((x) << S_DEBUG_ST_EDMA2_ALIGN)
-#define G_DEBUG_ST_EDMA2_ALIGN(x) (((x) >> S_DEBUG_ST_EDMA2_ALIGN) & M_DEBUG_ST_EDMA2_ALIGN)
-
-#define S_DEBUG_ST_EDMA2_REQ 16
-#define M_DEBUG_ST_EDMA2_REQ 0x7U
-#define V_DEBUG_ST_EDMA2_REQ(x) ((x) << S_DEBUG_ST_EDMA2_REQ)
-#define G_DEBUG_ST_EDMA2_REQ(x) (((x) >> S_DEBUG_ST_EDMA2_REQ) & M_DEBUG_ST_EDMA2_REQ)
-
-#define S_DEBUG_ST_EDMA1_ALIGN_SUB 13
-#define M_DEBUG_ST_EDMA1_ALIGN_SUB 0x7U
-#define V_DEBUG_ST_EDMA1_ALIGN_SUB(x) ((x) << S_DEBUG_ST_EDMA1_ALIGN_SUB)
-#define G_DEBUG_ST_EDMA1_ALIGN_SUB(x) (((x) >> S_DEBUG_ST_EDMA1_ALIGN_SUB) & M_DEBUG_ST_EDMA1_ALIGN_SUB)
-
-#define S_DEBUG_ST_EDMA1_ALIGN 11
-#define M_DEBUG_ST_EDMA1_ALIGN 0x3U
-#define V_DEBUG_ST_EDMA1_ALIGN(x) ((x) << S_DEBUG_ST_EDMA1_ALIGN)
-#define G_DEBUG_ST_EDMA1_ALIGN(x) (((x) >> S_DEBUG_ST_EDMA1_ALIGN) & M_DEBUG_ST_EDMA1_ALIGN)
-
-#define S_DEBUG_ST_EDMA1_REQ 8
-#define M_DEBUG_ST_EDMA1_REQ 0x7U
-#define V_DEBUG_ST_EDMA1_REQ(x) ((x) << S_DEBUG_ST_EDMA1_REQ)
-#define G_DEBUG_ST_EDMA1_REQ(x) (((x) >> S_DEBUG_ST_EDMA1_REQ) & M_DEBUG_ST_EDMA1_REQ)
-
-#define S_DEBUG_ST_EDMA0_ALIGN_SUB 5
-#define M_DEBUG_ST_EDMA0_ALIGN_SUB 0x7U
-#define V_DEBUG_ST_EDMA0_ALIGN_SUB(x) ((x) << S_DEBUG_ST_EDMA0_ALIGN_SUB)
-#define G_DEBUG_ST_EDMA0_ALIGN_SUB(x) (((x) >> S_DEBUG_ST_EDMA0_ALIGN_SUB) & M_DEBUG_ST_EDMA0_ALIGN_SUB)
-
-#define S_DEBUG_ST_EDMA0_ALIGN 3
-#define M_DEBUG_ST_EDMA0_ALIGN 0x3U
-#define V_DEBUG_ST_EDMA0_ALIGN(x) ((x) << S_DEBUG_ST_EDMA0_ALIGN)
-#define G_DEBUG_ST_EDMA0_ALIGN(x) (((x) >> S_DEBUG_ST_EDMA0_ALIGN) & M_DEBUG_ST_EDMA0_ALIGN)
-
-#define S_DEBUG_ST_EDMA0_REQ 0
-#define M_DEBUG_ST_EDMA0_REQ 0x7U
-#define V_DEBUG_ST_EDMA0_REQ(x) ((x) << S_DEBUG_ST_EDMA0_REQ)
-#define G_DEBUG_ST_EDMA0_REQ(x) (((x) >> S_DEBUG_ST_EDMA0_REQ) & M_DEBUG_ST_EDMA0_REQ)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_5 0x12d4
-
-#define S_DEBUG_ST_FLM_DBPTR 30
-#define M_DEBUG_ST_FLM_DBPTR 0x3U
-#define V_DEBUG_ST_FLM_DBPTR(x) ((x) << S_DEBUG_ST_FLM_DBPTR)
-#define G_DEBUG_ST_FLM_DBPTR(x) (((x) >> S_DEBUG_ST_FLM_DBPTR) & M_DEBUG_ST_FLM_DBPTR)
-
-#define S_DEBUG_FLM_CACHE_LOCKED_COUNT 23
-#define M_DEBUG_FLM_CACHE_LOCKED_COUNT 0x7fU
-#define V_DEBUG_FLM_CACHE_LOCKED_COUNT(x) ((x) << S_DEBUG_FLM_CACHE_LOCKED_COUNT)
-#define G_DEBUG_FLM_CACHE_LOCKED_COUNT(x) (((x) >> S_DEBUG_FLM_CACHE_LOCKED_COUNT) & M_DEBUG_FLM_CACHE_LOCKED_COUNT)
-
-#define S_DEBUG_FLM_CACHE_AGENT 20
-#define M_DEBUG_FLM_CACHE_AGENT 0x7U
-#define V_DEBUG_FLM_CACHE_AGENT(x) ((x) << S_DEBUG_FLM_CACHE_AGENT)
-#define G_DEBUG_FLM_CACHE_AGENT(x) (((x) >> S_DEBUG_FLM_CACHE_AGENT) & M_DEBUG_FLM_CACHE_AGENT)
-
-#define S_DEBUG_ST_FLM_CACHE 16
-#define M_DEBUG_ST_FLM_CACHE 0xfU
-#define V_DEBUG_ST_FLM_CACHE(x) ((x) << S_DEBUG_ST_FLM_CACHE)
-#define G_DEBUG_ST_FLM_CACHE(x) (((x) >> S_DEBUG_ST_FLM_CACHE) & M_DEBUG_ST_FLM_CACHE)
-
-#define S_DEBUG_FLM_DBPTR_CIDX_STALL 12
-#define V_DEBUG_FLM_DBPTR_CIDX_STALL(x) ((x) << S_DEBUG_FLM_DBPTR_CIDX_STALL)
-#define F_DEBUG_FLM_DBPTR_CIDX_STALL V_DEBUG_FLM_DBPTR_CIDX_STALL(1U)
-
-#define S_DEBUG_FLM_DBPTR_QID 0
-#define M_DEBUG_FLM_DBPTR_QID 0xfffU
-#define V_DEBUG_FLM_DBPTR_QID(x) ((x) << S_DEBUG_FLM_DBPTR_QID)
-#define G_DEBUG_FLM_DBPTR_QID(x) (((x) >> S_DEBUG_FLM_DBPTR_QID) & M_DEBUG_FLM_DBPTR_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_6 0x12d8
-
-#define S_DEBUG_DBP_THREAD0_QID 0
-#define M_DEBUG_DBP_THREAD0_QID 0x1ffffU
-#define V_DEBUG_DBP_THREAD0_QID(x) ((x) << S_DEBUG_DBP_THREAD0_QID)
-#define G_DEBUG_DBP_THREAD0_QID(x) (((x) >> S_DEBUG_DBP_THREAD0_QID) & M_DEBUG_DBP_THREAD0_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_7 0x12dc
-
-#define S_DEBUG_DBP_THREAD1_QID 0
-#define M_DEBUG_DBP_THREAD1_QID 0x1ffffU
-#define V_DEBUG_DBP_THREAD1_QID(x) ((x) << S_DEBUG_DBP_THREAD1_QID)
-#define G_DEBUG_DBP_THREAD1_QID(x) (((x) >> S_DEBUG_DBP_THREAD1_QID) & M_DEBUG_DBP_THREAD1_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_8 0x12e0
-
-#define S_DEBUG_DBP_THREAD2_QID 0
-#define M_DEBUG_DBP_THREAD2_QID 0x1ffffU
-#define V_DEBUG_DBP_THREAD2_QID(x) ((x) << S_DEBUG_DBP_THREAD2_QID)
-#define G_DEBUG_DBP_THREAD2_QID(x) (((x) >> S_DEBUG_DBP_THREAD2_QID) & M_DEBUG_DBP_THREAD2_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_9 0x12e4
-
-#define S_DEBUG_DBP_THREAD3_QID 0
-#define M_DEBUG_DBP_THREAD3_QID 0x1ffffU
-#define V_DEBUG_DBP_THREAD3_QID(x) ((x) << S_DEBUG_DBP_THREAD3_QID)
-#define G_DEBUG_DBP_THREAD3_QID(x) (((x) >> S_DEBUG_DBP_THREAD3_QID) & M_DEBUG_DBP_THREAD3_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_10 0x12e8
-
-#define S_DEBUG_IMSG_CPL 16
-#define M_DEBUG_IMSG_CPL 0xffU
-#define V_DEBUG_IMSG_CPL(x) ((x) << S_DEBUG_IMSG_CPL)
-#define G_DEBUG_IMSG_CPL(x) (((x) >> S_DEBUG_IMSG_CPL) & M_DEBUG_IMSG_CPL)
-
-#define S_DEBUG_IMSG_QID 0
-#define M_DEBUG_IMSG_QID 0xffffU
-#define V_DEBUG_IMSG_QID(x) ((x) << S_DEBUG_IMSG_QID)
-#define G_DEBUG_IMSG_QID(x) (((x) >> S_DEBUG_IMSG_QID) & M_DEBUG_IMSG_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_11 0x12ec
-
-#define S_DEBUG_IDMA1_QID 16
-#define M_DEBUG_IDMA1_QID 0xffffU
-#define V_DEBUG_IDMA1_QID(x) ((x) << S_DEBUG_IDMA1_QID)
-#define G_DEBUG_IDMA1_QID(x) (((x) >> S_DEBUG_IDMA1_QID) & M_DEBUG_IDMA1_QID)
-
-#define S_DEBUG_IDMA0_QID 0
-#define M_DEBUG_IDMA0_QID 0xffffU
-#define V_DEBUG_IDMA0_QID(x) ((x) << S_DEBUG_IDMA0_QID)
-#define G_DEBUG_IDMA0_QID(x) (((x) >> S_DEBUG_IDMA0_QID) & M_DEBUG_IDMA0_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_12 0x12f0
-
-#define S_DEBUG_IDMA1_FLM_REQ_QID 16
-#define M_DEBUG_IDMA1_FLM_REQ_QID 0xffffU
-#define V_DEBUG_IDMA1_FLM_REQ_QID(x) ((x) << S_DEBUG_IDMA1_FLM_REQ_QID)
-#define G_DEBUG_IDMA1_FLM_REQ_QID(x) (((x) >> S_DEBUG_IDMA1_FLM_REQ_QID) & M_DEBUG_IDMA1_FLM_REQ_QID)
-
-#define S_DEBUG_IDMA0_FLM_REQ_QID 0
-#define M_DEBUG_IDMA0_FLM_REQ_QID 0xffffU
-#define V_DEBUG_IDMA0_FLM_REQ_QID(x) ((x) << S_DEBUG_IDMA0_FLM_REQ_QID)
-#define G_DEBUG_IDMA0_FLM_REQ_QID(x) (((x) >> S_DEBUG_IDMA0_FLM_REQ_QID) & M_DEBUG_IDMA0_FLM_REQ_QID)
-
-#define A_SGE_DEBUG_DATA_LOW_INDEX_13 0x12f4
-#define A_SGE_DEBUG_DATA_LOW_INDEX_14 0x12f8
-#define A_SGE_DEBUG_DATA_LOW_INDEX_15 0x12fc
#define A_SGE_QUEUE_BASE_MAP_HIGH 0x1300
#define S_EGRESS_LOG2SIZE 27
@@ -3045,21 +1468,6 @@
#define V_INGRESS1_LOG2SIZE(x) ((x) << S_INGRESS1_LOG2SIZE)
#define G_INGRESS1_LOG2SIZE(x) (((x) >> S_INGRESS1_LOG2SIZE) & M_INGRESS1_LOG2SIZE)
-#define S_EGRESS_SIZE 27
-#define M_EGRESS_SIZE 0x1fU
-#define V_EGRESS_SIZE(x) ((x) << S_EGRESS_SIZE)
-#define G_EGRESS_SIZE(x) (((x) >> S_EGRESS_SIZE) & M_EGRESS_SIZE)
-
-#define S_INGRESS2_SIZE 5
-#define M_INGRESS2_SIZE 0x1fU
-#define V_INGRESS2_SIZE(x) ((x) << S_INGRESS2_SIZE)
-#define G_INGRESS2_SIZE(x) (((x) >> S_INGRESS2_SIZE) & M_INGRESS2_SIZE)
-
-#define S_INGRESS1_SIZE 0
-#define M_INGRESS1_SIZE 0x1fU
-#define V_INGRESS1_SIZE(x) ((x) << S_INGRESS1_SIZE)
-#define G_INGRESS1_SIZE(x) (((x) >> S_INGRESS1_SIZE) & M_INGRESS1_SIZE)
-
#define A_SGE_QUEUE_BASE_MAP_LOW 0x1304
#define S_INGRESS2_BASE 16
@@ -3313,94 +1721,6 @@
#define V_MSIADDRLPERR(x) ((x) << S_MSIADDRLPERR)
#define F_MSIADDRLPERR V_MSIADDRLPERR(1U)
-#define S_IPGRPPERR 31
-#define V_IPGRPPERR(x) ((x) << S_IPGRPPERR)
-#define F_IPGRPPERR V_IPGRPPERR(1U)
-
-#define S_READRSPERR 29
-#define V_READRSPERR(x) ((x) << S_READRSPERR)
-#define F_READRSPERR V_READRSPERR(1U)
-
-#define S_TRGT1GRPPERR 28
-#define V_TRGT1GRPPERR(x) ((x) << S_TRGT1GRPPERR)
-#define F_TRGT1GRPPERR V_TRGT1GRPPERR(1U)
-
-#define S_IPSOTPERR 27
-#define V_IPSOTPERR(x) ((x) << S_IPSOTPERR)
-#define F_IPSOTPERR V_IPSOTPERR(1U)
-
-#define S_IPRETRYPERR 26
-#define V_IPRETRYPERR(x) ((x) << S_IPRETRYPERR)
-#define F_IPRETRYPERR V_IPRETRYPERR(1U)
-
-#define S_IPRXDATAGRPPERR 25
-#define V_IPRXDATAGRPPERR(x) ((x) << S_IPRXDATAGRPPERR)
-#define F_IPRXDATAGRPPERR V_IPRXDATAGRPPERR(1U)
-
-#define S_IPRXHDRGRPPERR 24
-#define V_IPRXHDRGRPPERR(x) ((x) << S_IPRXHDRGRPPERR)
-#define F_IPRXHDRGRPPERR V_IPRXHDRGRPPERR(1U)
-
-#define S_PIOTAGQPERR 23
-#define V_PIOTAGQPERR(x) ((x) << S_PIOTAGQPERR)
-#define F_PIOTAGQPERR V_PIOTAGQPERR(1U)
-
-#define S_MAGRPPERR 22
-#define V_MAGRPPERR(x) ((x) << S_MAGRPPERR)
-#define F_MAGRPPERR V_MAGRPPERR(1U)
-
-#define S_VFIDPERR 21
-#define V_VFIDPERR(x) ((x) << S_VFIDPERR)
-#define F_VFIDPERR V_VFIDPERR(1U)
-
-#define S_HREQRDPERR 17
-#define V_HREQRDPERR(x) ((x) << S_HREQRDPERR)
-#define F_HREQRDPERR V_HREQRDPERR(1U)
-
-#define S_HREQWRPERR 16
-#define V_HREQWRPERR(x) ((x) << S_HREQWRPERR)
-#define F_HREQWRPERR V_HREQWRPERR(1U)
-
-#define S_DREQRDPERR 14
-#define V_DREQRDPERR(x) ((x) << S_DREQRDPERR)
-#define F_DREQRDPERR V_DREQRDPERR(1U)
-
-#define S_DREQWRPERR 13
-#define V_DREQWRPERR(x) ((x) << S_DREQWRPERR)
-#define F_DREQWRPERR V_DREQWRPERR(1U)
-
-#define S_CREQRDPERR 11
-#define V_CREQRDPERR(x) ((x) << S_CREQRDPERR)
-#define F_CREQRDPERR V_CREQRDPERR(1U)
-
-#define S_MSTTAGQPERR 10
-#define V_MSTTAGQPERR(x) ((x) << S_MSTTAGQPERR)
-#define F_MSTTAGQPERR V_MSTTAGQPERR(1U)
-
-#define S_TGTTAGQPERR 9
-#define V_TGTTAGQPERR(x) ((x) << S_TGTTAGQPERR)
-#define F_TGTTAGQPERR V_TGTTAGQPERR(1U)
-
-#define S_PIOREQGRPPERR 8
-#define V_PIOREQGRPPERR(x) ((x) << S_PIOREQGRPPERR)
-#define F_PIOREQGRPPERR V_PIOREQGRPPERR(1U)
-
-#define S_PIOCPLGRPPERR 7
-#define V_PIOCPLGRPPERR(x) ((x) << S_PIOCPLGRPPERR)
-#define F_PIOCPLGRPPERR V_PIOCPLGRPPERR(1U)
-
-#define S_MSIXSTIPERR 2
-#define V_MSIXSTIPERR(x) ((x) << S_MSIXSTIPERR)
-#define F_MSIXSTIPERR V_MSIXSTIPERR(1U)
-
-#define S_MSTTIMEOUTPERR 1
-#define V_MSTTIMEOUTPERR(x) ((x) << S_MSTTIMEOUTPERR)
-#define F_MSTTIMEOUTPERR V_MSTTIMEOUTPERR(1U)
-
-#define S_MSTGRPPERR 0
-#define V_MSTGRPPERR(x) ((x) << S_MSTGRPPERR)
-#define F_MSTGRPPERR V_MSTGRPPERR(1U)
-
#define A_PCIE_INT_CAUSE 0x3004
#define A_PCIE_PERR_ENABLE 0x3008
#define A_PCIE_PERR_INJECT 0x300c
@@ -3451,90 +1771,6 @@
#define V_CFGSNP(x) ((x) << S_CFGSNP)
#define F_CFGSNP V_CFGSNP(1U)
-#define S_MAREQTIMEOUT 29
-#define V_MAREQTIMEOUT(x) ((x) << S_MAREQTIMEOUT)
-#define F_MAREQTIMEOUT V_MAREQTIMEOUT(1U)
-
-#define S_TRGT1BARTYPEERR 28
-#define V_TRGT1BARTYPEERR(x) ((x) << S_TRGT1BARTYPEERR)
-#define F_TRGT1BARTYPEERR V_TRGT1BARTYPEERR(1U)
-
-#define S_MAEXTRARSPERR 27
-#define V_MAEXTRARSPERR(x) ((x) << S_MAEXTRARSPERR)
-#define F_MAEXTRARSPERR V_MAEXTRARSPERR(1U)
-
-#define S_MARSPTIMEOUT 26
-#define V_MARSPTIMEOUT(x) ((x) << S_MARSPTIMEOUT)
-#define F_MARSPTIMEOUT V_MARSPTIMEOUT(1U)
-
-#define S_INTVFALLMSIDISERR 25
-#define V_INTVFALLMSIDISERR(x) ((x) << S_INTVFALLMSIDISERR)
-#define F_INTVFALLMSIDISERR V_INTVFALLMSIDISERR(1U)
-
-#define S_INTVFRANGEERR 24
-#define V_INTVFRANGEERR(x) ((x) << S_INTVFRANGEERR)
-#define F_INTVFRANGEERR V_INTVFRANGEERR(1U)
-
-#define S_INTPLIRSPERR 23
-#define V_INTPLIRSPERR(x) ((x) << S_INTPLIRSPERR)
-#define F_INTPLIRSPERR V_INTPLIRSPERR(1U)
-
-#define S_MEMREQRDTAGERR 22
-#define V_MEMREQRDTAGERR(x) ((x) << S_MEMREQRDTAGERR)
-#define F_MEMREQRDTAGERR V_MEMREQRDTAGERR(1U)
-
-#define S_CFGINITDONEERR 21
-#define V_CFGINITDONEERR(x) ((x) << S_CFGINITDONEERR)
-#define F_CFGINITDONEERR V_CFGINITDONEERR(1U)
-
-#define S_BAR2TIMEOUT 20
-#define V_BAR2TIMEOUT(x) ((x) << S_BAR2TIMEOUT)
-#define F_BAR2TIMEOUT V_BAR2TIMEOUT(1U)
-
-#define S_VPDTIMEOUT 19
-#define V_VPDTIMEOUT(x) ((x) << S_VPDTIMEOUT)
-#define F_VPDTIMEOUT V_VPDTIMEOUT(1U)
-
-#define S_MEMRSPRDTAGERR 18
-#define V_MEMRSPRDTAGERR(x) ((x) << S_MEMRSPRDTAGERR)
-#define F_MEMRSPRDTAGERR V_MEMRSPRDTAGERR(1U)
-
-#define S_MEMRSPWRTAGERR 17
-#define V_MEMRSPWRTAGERR(x) ((x) << S_MEMRSPWRTAGERR)
-#define F_MEMRSPWRTAGERR V_MEMRSPWRTAGERR(1U)
-
-#define S_PIORSPRDTAGERR 16
-#define V_PIORSPRDTAGERR(x) ((x) << S_PIORSPRDTAGERR)
-#define F_PIORSPRDTAGERR V_PIORSPRDTAGERR(1U)
-
-#define S_PIORSPWRTAGERR 15
-#define V_PIORSPWRTAGERR(x) ((x) << S_PIORSPWRTAGERR)
-#define F_PIORSPWRTAGERR V_PIORSPWRTAGERR(1U)
-
-#define S_DBITIMEOUT 14
-#define V_DBITIMEOUT(x) ((x) << S_DBITIMEOUT)
-#define F_DBITIMEOUT V_DBITIMEOUT(1U)
-
-#define S_PIOUNALINDWR 13
-#define V_PIOUNALINDWR(x) ((x) << S_PIOUNALINDWR)
-#define F_PIOUNALINDWR V_PIOUNALINDWR(1U)
-
-#define S_BAR2RDERR 12
-#define V_BAR2RDERR(x) ((x) << S_BAR2RDERR)
-#define F_BAR2RDERR V_BAR2RDERR(1U)
-
-#define S_MAWREOPERR 11
-#define V_MAWREOPERR(x) ((x) << S_MAWREOPERR)
-#define F_MAWREOPERR V_MAWREOPERR(1U)
-
-#define S_MARDEOPERR 10
-#define V_MARDEOPERR(x) ((x) << S_MARDEOPERR)
-#define F_MARDEOPERR V_MARDEOPERR(1U)
-
-#define S_BAR2REQ 2
-#define V_BAR2REQ(x) ((x) << S_BAR2REQ)
-#define F_BAR2REQ V_BAR2REQ(1U)
-
#define A_PCIE_CFG 0x3014
#define S_CFGDMAXPYLDSZRX 26
@@ -3625,53 +1861,6 @@
#define V_LINKDNRSTEN(x) ((x) << S_LINKDNRSTEN)
#define F_LINKDNRSTEN V_LINKDNRSTEN(1U)
-#define S_DIAGCTRLBUS 28
-#define M_DIAGCTRLBUS 0x7U
-#define V_DIAGCTRLBUS(x) ((x) << S_DIAGCTRLBUS)
-#define G_DIAGCTRLBUS(x) (((x) >> S_DIAGCTRLBUS) & M_DIAGCTRLBUS)
-
-#define S_IPPERREN 27
-#define V_IPPERREN(x) ((x) << S_IPPERREN)
-#define F_IPPERREN V_IPPERREN(1U)
-
-#define S_CFGDEXTTAGEN 26
-#define V_CFGDEXTTAGEN(x) ((x) << S_CFGDEXTTAGEN)
-#define F_CFGDEXTTAGEN V_CFGDEXTTAGEN(1U)
-
-#define S_CFGDMAXPYLDSZ 23
-#define M_CFGDMAXPYLDSZ 0x7U
-#define V_CFGDMAXPYLDSZ(x) ((x) << S_CFGDMAXPYLDSZ)
-#define G_CFGDMAXPYLDSZ(x) (((x) >> S_CFGDMAXPYLDSZ) & M_CFGDMAXPYLDSZ)
-
-#define S_DCAEN 17
-#define V_DCAEN(x) ((x) << S_DCAEN)
-#define F_DCAEN V_DCAEN(1U)
-
-#define S_T5CMDREQPRIORITY 16
-#define V_T5CMDREQPRIORITY(x) ((x) << S_T5CMDREQPRIORITY)
-#define F_T5CMDREQPRIORITY V_T5CMDREQPRIORITY(1U)
-
-#define S_T5VPDREQPROTECT 14
-#define M_T5VPDREQPROTECT 0x3U
-#define V_T5VPDREQPROTECT(x) ((x) << S_T5VPDREQPROTECT)
-#define G_T5VPDREQPROTECT(x) (((x) >> S_T5VPDREQPROTECT) & M_T5VPDREQPROTECT)
-
-#define S_DROPPEDRDRSPDATA 12
-#define V_DROPPEDRDRSPDATA(x) ((x) << S_DROPPEDRDRSPDATA)
-#define F_DROPPEDRDRSPDATA V_DROPPEDRDRSPDATA(1U)
-
-#define S_AI_INTX_REASSERTEN 11
-#define V_AI_INTX_REASSERTEN(x) ((x) << S_AI_INTX_REASSERTEN)
-#define F_AI_INTX_REASSERTEN V_AI_INTX_REASSERTEN(1U)
-
-#define S_AUTOTXNDISABLE 10
-#define V_AUTOTXNDISABLE(x) ((x) << S_AUTOTXNDISABLE)
-#define F_AUTOTXNDISABLE V_AUTOTXNDISABLE(1U)
-
-#define S_LINKREQRSTPCIECRSTMODE 3
-#define V_LINKREQRSTPCIECRSTMODE(x) ((x) << S_LINKREQRSTPCIECRSTMODE)
-#define F_LINKREQRSTPCIECRSTMODE V_LINKREQRSTPCIECRSTMODE(1U)
-
#define A_PCIE_DMA_CTRL 0x3018
#define S_LITTLEENDIAN 7
@@ -3678,27 +1867,6 @@
#define V_LITTLEENDIAN(x) ((x) << S_LITTLEENDIAN)
#define F_LITTLEENDIAN V_LITTLEENDIAN(1U)
-#define A_PCIE_CFG2 0x3018
-
-#define S_VPDTIMER 16
-#define M_VPDTIMER 0xffffU
-#define V_VPDTIMER(x) ((x) << S_VPDTIMER)
-#define G_VPDTIMER(x) (((x) >> S_VPDTIMER) & M_VPDTIMER)
-
-#define S_BAR2TIMER 4
-#define M_BAR2TIMER 0xfffU
-#define V_BAR2TIMER(x) ((x) << S_BAR2TIMER)
-#define G_BAR2TIMER(x) (((x) >> S_BAR2TIMER) & M_BAR2TIMER)
-
-#define S_MSTREQRDRRASIMPLE 3
-#define V_MSTREQRDRRASIMPLE(x) ((x) << S_MSTREQRDRRASIMPLE)
-#define F_MSTREQRDRRASIMPLE V_MSTREQRDRRASIMPLE(1U)
-
-#define S_TOTMAXTAG 0
-#define M_TOTMAXTAG 0x3U
-#define V_TOTMAXTAG(x) ((x) << S_TOTMAXTAG)
-#define G_TOTMAXTAG(x) (((x) >> S_TOTMAXTAG) & M_TOTMAXTAG)
-
#define A_PCIE_DMA_CFG 0x301c
#define S_MAXPYLDSIZE 28
@@ -3726,29 +1894,6 @@
#define V_MAXTAG(x) ((x) << S_MAXTAG)
#define G_MAXTAG(x) (((x) >> S_MAXTAG) & M_MAXTAG)
-#define A_PCIE_CFG3 0x301c
-
-#define S_AUTOPIOCOOKIEMATCH 6
-#define V_AUTOPIOCOOKIEMATCH(x) ((x) << S_AUTOPIOCOOKIEMATCH)
-#define F_AUTOPIOCOOKIEMATCH V_AUTOPIOCOOKIEMATCH(1U)
-
-#define S_FLRPNDCPLMODE 4
-#define M_FLRPNDCPLMODE 0x3U
-#define V_FLRPNDCPLMODE(x) ((x) << S_FLRPNDCPLMODE)
-#define G_FLRPNDCPLMODE(x) (((x) >> S_FLRPNDCPLMODE) & M_FLRPNDCPLMODE)
-
-#define S_HMADCASTFIRSTONLY 2
-#define V_HMADCASTFIRSTONLY(x) ((x) << S_HMADCASTFIRSTONLY)
-#define F_HMADCASTFIRSTONLY V_HMADCASTFIRSTONLY(1U)
-
-#define S_CMDDCASTFIRSTONLY 1
-#define V_CMDDCASTFIRSTONLY(x) ((x) << S_CMDDCASTFIRSTONLY)
-#define F_CMDDCASTFIRSTONLY V_CMDDCASTFIRSTONLY(1U)
-
-#define S_DMADCASTFIRSTONLY 0
-#define V_DMADCASTFIRSTONLY(x) ((x) << S_DMADCASTFIRSTONLY)
-#define F_DMADCASTFIRSTONLY V_DMADCASTFIRSTONLY(1U)
-
#define A_PCIE_DMA_STAT 0x3020
#define S_STATEREQ 28
@@ -3775,59 +1920,6 @@
#define V_DMA_REQCNT(x) ((x) << S_DMA_REQCNT)
#define G_DMA_REQCNT(x) (((x) >> S_DMA_REQCNT) & M_DMA_REQCNT)
-#define A_PCIE_CFG4 0x3020
-
-#define S_L1CLKREMOVALEN 17
-#define V_L1CLKREMOVALEN(x) ((x) << S_L1CLKREMOVALEN)
-#define F_L1CLKREMOVALEN V_L1CLKREMOVALEN(1U)
-
-#define S_READYENTERL23 16
-#define V_READYENTERL23(x) ((x) << S_READYENTERL23)
-#define F_READYENTERL23 V_READYENTERL23(1U)
-
-#define S_EXITL1 12
-#define V_EXITL1(x) ((x) << S_EXITL1)
-#define F_EXITL1 V_EXITL1(1U)
-
-#define S_ENTERL1 8
-#define V_ENTERL1(x) ((x) << S_ENTERL1)
-#define F_ENTERL1 V_ENTERL1(1U)
-
-#define S_GENPME 0
-#define M_GENPME 0xffU
-#define V_GENPME(x) ((x) << S_GENPME)
-#define G_GENPME(x) (((x) >> S_GENPME) & M_GENPME)
-
-#define A_PCIE_CFG5 0x3024
-
-#define S_ENABLESKPPARITYFIX 2
-#define V_ENABLESKPPARITYFIX(x) ((x) << S_ENABLESKPPARITYFIX)
-#define F_ENABLESKPPARITYFIX V_ENABLESKPPARITYFIX(1U)
-
-#define S_ENABLEL2ENTRYINL1 1
-#define V_ENABLEL2ENTRYINL1(x) ((x) << S_ENABLEL2ENTRYINL1)
-#define F_ENABLEL2ENTRYINL1 V_ENABLEL2ENTRYINL1(1U)
-
-#define S_HOLDCPLENTERINGL1 0
-#define V_HOLDCPLENTERINGL1(x) ((x) << S_HOLDCPLENTERINGL1)
-#define F_HOLDCPLENTERINGL1 V_HOLDCPLENTERINGL1(1U)
-
-#define A_PCIE_CFG6 0x3028
-
-#define S_PERSTTIMERCOUNT 12
-#define M_PERSTTIMERCOUNT 0x3fffU
-#define V_PERSTTIMERCOUNT(x) ((x) << S_PERSTTIMERCOUNT)
-#define G_PERSTTIMERCOUNT(x) (((x) >> S_PERSTTIMERCOUNT) & M_PERSTTIMERCOUNT)
-
-#define S_PERSTTIMEOUT 8
-#define V_PERSTTIMEOUT(x) ((x) << S_PERSTTIMEOUT)
-#define F_PERSTTIMEOUT V_PERSTTIMEOUT(1U)
-
-#define S_PERSTTIMER 0
-#define M_PERSTTIMER 0xfU
-#define V_PERSTTIMER(x) ((x) << S_PERSTTIMER)
-#define G_PERSTTIMER(x) (((x) >> S_PERSTTIMER) & M_PERSTTIMER)
-
#define A_PCIE_CMD_CTRL 0x303c
#define A_PCIE_CMD_CFG 0x3040
@@ -3942,29 +2034,6 @@
#define V_REGISTER(x) ((x) << S_REGISTER)
#define G_REGISTER(x) (((x) >> S_REGISTER) & M_REGISTER)
-#define S_CS2 28
-#define V_CS2(x) ((x) << S_CS2)
-#define F_CS2 V_CS2(1U)
-
-#define S_WRBE 24
-#define M_WRBE 0xfU
-#define V_WRBE(x) ((x) << S_WRBE)
-#define G_WRBE(x) (((x) >> S_WRBE) & M_WRBE)
-
-#define S_CFG_SPACE_VFVLD 23
-#define V_CFG_SPACE_VFVLD(x) ((x) << S_CFG_SPACE_VFVLD)
-#define F_CFG_SPACE_VFVLD V_CFG_SPACE_VFVLD(1U)
-
-#define S_CFG_SPACE_RVF 16
-#define M_CFG_SPACE_RVF 0x7fU
-#define V_CFG_SPACE_RVF(x) ((x) << S_CFG_SPACE_RVF)
-#define G_CFG_SPACE_RVF(x) (((x) >> S_CFG_SPACE_RVF) & M_CFG_SPACE_RVF)
-
-#define S_CFG_SPACE_PF 12
-#define M_CFG_SPACE_PF 0x7U
-#define V_CFG_SPACE_PF(x) ((x) << S_CFG_SPACE_PF)
-#define G_CFG_SPACE_PF(x) (((x) >> S_CFG_SPACE_PF) & M_CFG_SPACE_PF)
-
#define A_PCIE_CFG_SPACE_DATA 0x3064
#define A_PCIE_MEM_ACCESS_BASE_WIN 0x3068
@@ -3984,12 +2053,6 @@
#define G_WINDOW(x) (((x) >> S_WINDOW) & M_WINDOW)
#define A_PCIE_MEM_ACCESS_OFFSET 0x306c
-
-#define S_MEMOFST 7
-#define M_MEMOFST 0x1ffffffU
-#define V_MEMOFST(x) ((x) << S_MEMOFST)
-#define G_MEMOFST(x) (((x) >> S_MEMOFST) & M_MEMOFST)
-
#define A_PCIE_MAILBOX_BASE_WIN 0x30a8
#define S_MBOXPCIEOFST 6
@@ -4043,16 +2106,6 @@
#define V_MA_MAXTAG(x) ((x) << S_MA_MAXTAG)
#define G_MA_MAXTAG(x) (((x) >> S_MA_MAXTAG) & M_MA_MAXTAG)
-#define S_T5_MA_MAXREQCNT 16
-#define M_T5_MA_MAXREQCNT 0x7fU
-#define V_T5_MA_MAXREQCNT(x) ((x) << S_T5_MA_MAXREQCNT)
-#define G_T5_MA_MAXREQCNT(x) (((x) >> S_T5_MA_MAXREQCNT) & M_T5_MA_MAXREQCNT)
-
-#define S_MA_MAXREQSIZE 8
-#define M_MA_MAXREQSIZE 0x7U
-#define V_MA_MAXREQSIZE(x) ((x) << S_MA_MAXREQSIZE)
-#define G_MA_MAXREQSIZE(x) (((x) >> S_MA_MAXREQSIZE) & M_MA_MAXREQSIZE)
-
#define A_PCIE_MA_SYNC 0x30b4
#define A_PCIE_FW 0x30b8
#define A_PCIE_FW_PF 0x30bc
@@ -4071,16 +2124,7 @@
#define V_PIOPAUSE(x) ((x) << S_PIOPAUSE)
#define F_PIOPAUSE V_PIOPAUSE(1U)
-#define S_MSTPAUSEDONE 30
-#define V_MSTPAUSEDONE(x) ((x) << S_MSTPAUSEDONE)
-#define F_MSTPAUSEDONE V_MSTPAUSEDONE(1U)
-
-#define S_MSTPAUSE 1
-#define V_MSTPAUSE(x) ((x) << S_MSTPAUSE)
-#define F_MSTPAUSE V_MSTPAUSE(1U)
-
#define A_PCIE_SYS_CFG_READY 0x30e0
-#define A_PCIE_MA_STAT 0x30e0
#define A_PCIE_STATIC_CFG1 0x30e4
#define S_LINKDOWN_RESET_EN 26
@@ -4136,22 +2180,6 @@
#define V_PCIE_MAX_RDSIZE(x) ((x) << S_PCIE_MAX_RDSIZE)
#define G_PCIE_MAX_RDSIZE(x) (((x) >> S_PCIE_MAX_RDSIZE) & M_PCIE_MAX_RDSIZE)
-#define S_AUXPOWER_DETECTED 27
-#define V_AUXPOWER_DETECTED(x) ((x) << S_AUXPOWER_DETECTED)
-#define F_AUXPOWER_DETECTED V_AUXPOWER_DETECTED(1U)
-
-#define A_PCIE_STATIC_CFG2 0x30e8
-
-#define S_PL_CONTROL 16
-#define M_PL_CONTROL 0xffffU
-#define V_PL_CONTROL(x) ((x) << S_PL_CONTROL)
-#define G_PL_CONTROL(x) (((x) >> S_PL_CONTROL) & M_PL_CONTROL)
-
-#define S_STATIC_SPARE3 0
-#define M_STATIC_SPARE3 0x3fffU
-#define V_STATIC_SPARE3(x) ((x) << S_STATIC_SPARE3)
-#define G_STATIC_SPARE3(x) (((x) >> S_STATIC_SPARE3) & M_STATIC_SPARE3)
-
#define A_PCIE_DBG_INDIR_REQ 0x30ec
#define S_DBGENABLE 31
@@ -4226,74 +2254,6 @@
#define V_PFNUM(x) ((x) << S_PFNUM)
#define G_PFNUM(x) (((x) >> S_PFNUM) & M_PFNUM)
-#define A_PCIE_PF_INT_CFG 0x3140
-#define A_PCIE_PF_INT_CFG2 0x3144
-#define A_PCIE_VF_INT_CFG 0x3180
-#define A_PCIE_VF_INT_CFG2 0x3184
-#define A_PCIE_PF_MSI_EN 0x35a8
-
-#define S_PFMSIEN_7_0 0
-#define M_PFMSIEN_7_0 0xffU
-#define V_PFMSIEN_7_0(x) ((x) << S_PFMSIEN_7_0)
-#define G_PFMSIEN_7_0(x) (((x) >> S_PFMSIEN_7_0) & M_PFMSIEN_7_0)
-
-#define A_PCIE_VF_MSI_EN_0 0x35ac
-#define A_PCIE_VF_MSI_EN_1 0x35b0
-#define A_PCIE_VF_MSI_EN_2 0x35b4
-#define A_PCIE_VF_MSI_EN_3 0x35b8
-#define A_PCIE_PF_MSIX_EN 0x35bc
-
-#define S_PFMSIXEN_7_0 0
-#define M_PFMSIXEN_7_0 0xffU
-#define V_PFMSIXEN_7_0(x) ((x) << S_PFMSIXEN_7_0)
-#define G_PFMSIXEN_7_0(x) (((x) >> S_PFMSIXEN_7_0) & M_PFMSIXEN_7_0)
-
-#define A_PCIE_VF_MSIX_EN_0 0x35c0
-#define A_PCIE_VF_MSIX_EN_1 0x35c4
-#define A_PCIE_VF_MSIX_EN_2 0x35c8
-#define A_PCIE_VF_MSIX_EN_3 0x35cc
-#define A_PCIE_FID_VFID_SEL 0x35ec
-
-#define S_FID_VFID_SEL_SELECT 0
-#define M_FID_VFID_SEL_SELECT 0x3U
-#define V_FID_VFID_SEL_SELECT(x) ((x) << S_FID_VFID_SEL_SELECT)
-#define G_FID_VFID_SEL_SELECT(x) (((x) >> S_FID_VFID_SEL_SELECT) & M_FID_VFID_SEL_SELECT)
-
-#define A_PCIE_FID_VFID 0x3600
-
-#define S_FID_VFID_SELECT 30
-#define M_FID_VFID_SELECT 0x3U
-#define V_FID_VFID_SELECT(x) ((x) << S_FID_VFID_SELECT)
-#define G_FID_VFID_SELECT(x) (((x) >> S_FID_VFID_SELECT) & M_FID_VFID_SELECT)
-
-#define S_IDO 24
-#define V_IDO(x) ((x) << S_IDO)
-#define F_IDO V_IDO(1U)
-
-#define S_FID_VFID_VFID 16
-#define M_FID_VFID_VFID 0xffU
-#define V_FID_VFID_VFID(x) ((x) << S_FID_VFID_VFID)
-#define G_FID_VFID_VFID(x) (((x) >> S_FID_VFID_VFID) & M_FID_VFID_VFID)
-
-#define S_FID_VFID_TC 11
-#define M_FID_VFID_TC 0x7U
-#define V_FID_VFID_TC(x) ((x) << S_FID_VFID_TC)
-#define G_FID_VFID_TC(x) (((x) >> S_FID_VFID_TC) & M_FID_VFID_TC)
-
-#define S_FID_VFID_VFVLD 10
-#define V_FID_VFID_VFVLD(x) ((x) << S_FID_VFID_VFVLD)
-#define F_FID_VFID_VFVLD V_FID_VFID_VFVLD(1U)
-
-#define S_FID_VFID_PF 7
-#define M_FID_VFID_PF 0x7U
-#define V_FID_VFID_PF(x) ((x) << S_FID_VFID_PF)
-#define G_FID_VFID_PF(x) (((x) >> S_FID_VFID_PF) & M_FID_VFID_PF)
-
-#define S_FID_VFID_RVF 0
-#define M_FID_VFID_RVF 0x7fU
-#define V_FID_VFID_RVF(x) ((x) << S_FID_VFID_RVF)
-#define G_FID_VFID_RVF(x) (((x) >> S_FID_VFID_RVF) & M_FID_VFID_RVF)
-
#define A_PCIE_FID 0x3900
#define S_PAD 11
@@ -4310,695 +2270,6 @@
#define V_FUNC(x) ((x) << S_FUNC)
#define G_FUNC(x) (((x) >> S_FUNC) & M_FUNC)
-#define A_PCIE_COOKIE_STAT 0x5600
-
-#define S_COOKIEB 16
-#define M_COOKIEB 0x3ffU
-#define V_COOKIEB(x) ((x) << S_COOKIEB)
-#define G_COOKIEB(x) (((x) >> S_COOKIEB) & M_COOKIEB)
-
-#define S_COOKIEA 0
-#define M_COOKIEA 0x3ffU
-#define V_COOKIEA(x) ((x) << S_COOKIEA)
-#define G_COOKIEA(x) (((x) >> S_COOKIEA) & M_COOKIEA)
-
-#define A_PCIE_FLR_PIO 0x5620
-
-#define S_RCVDBAR2COOKIE 24
-#define M_RCVDBAR2COOKIE 0xffU
-#define V_RCVDBAR2COOKIE(x) ((x) << S_RCVDBAR2COOKIE)
-#define G_RCVDBAR2COOKIE(x) (((x) >> S_RCVDBAR2COOKIE) & M_RCVDBAR2COOKIE)
-
-#define S_RCVDMARSPCOOKIE 16
-#define M_RCVDMARSPCOOKIE 0xffU
-#define V_RCVDMARSPCOOKIE(x) ((x) << S_RCVDMARSPCOOKIE)
-#define G_RCVDMARSPCOOKIE(x) (((x) >> S_RCVDMARSPCOOKIE) & M_RCVDMARSPCOOKIE)
-
-#define S_RCVDPIORSPCOOKIE 8
-#define M_RCVDPIORSPCOOKIE 0xffU
-#define V_RCVDPIORSPCOOKIE(x) ((x) << S_RCVDPIORSPCOOKIE)
-#define G_RCVDPIORSPCOOKIE(x) (((x) >> S_RCVDPIORSPCOOKIE) & M_RCVDPIORSPCOOKIE)
-
-#define S_EXPDCOOKIE 0
-#define M_EXPDCOOKIE 0xffU
-#define V_EXPDCOOKIE(x) ((x) << S_EXPDCOOKIE)
-#define G_EXPDCOOKIE(x) (((x) >> S_EXPDCOOKIE) & M_EXPDCOOKIE)
-
-#define A_PCIE_FLR_PIO2 0x5624
-
-#define S_RCVDMAREQCOOKIE 16
-#define M_RCVDMAREQCOOKIE 0xffU
-#define V_RCVDMAREQCOOKIE(x) ((x) << S_RCVDMAREQCOOKIE)
-#define G_RCVDMAREQCOOKIE(x) (((x) >> S_RCVDMAREQCOOKIE) & M_RCVDMAREQCOOKIE)
-
-#define S_RCVDPIOREQCOOKIE 8
-#define M_RCVDPIOREQCOOKIE 0xffU
-#define V_RCVDPIOREQCOOKIE(x) ((x) << S_RCVDPIOREQCOOKIE)
-#define G_RCVDPIOREQCOOKIE(x) (((x) >> S_RCVDPIOREQCOOKIE) & M_RCVDPIOREQCOOKIE)
-
-#define A_PCIE_VC0_CDTS0 0x56cc
-
-#define S_CPLD0 20
-#define M_CPLD0 0xfffU
-#define V_CPLD0(x) ((x) << S_CPLD0)
-#define G_CPLD0(x) (((x) >> S_CPLD0) & M_CPLD0)
-
-#define S_PH0 12
-#define M_PH0 0xffU
-#define V_PH0(x) ((x) << S_PH0)
-#define G_PH0(x) (((x) >> S_PH0) & M_PH0)
-
-#define S_PD0 0
-#define M_PD0 0xfffU
-#define V_PD0(x) ((x) << S_PD0)
-#define G_PD0(x) (((x) >> S_PD0) & M_PD0)
-
-#define A_PCIE_VC0_CDTS1 0x56d0
-
-#define S_CPLH0 20
-#define M_CPLH0 0xffU
-#define V_CPLH0(x) ((x) << S_CPLH0)
-#define G_CPLH0(x) (((x) >> S_CPLH0) & M_CPLH0)
-
-#define S_NPH0 12
-#define M_NPH0 0xffU
-#define V_NPH0(x) ((x) << S_NPH0)
-#define G_NPH0(x) (((x) >> S_NPH0) & M_NPH0)
-
-#define S_NPD0 0
-#define M_NPD0 0xfffU
-#define V_NPD0(x) ((x) << S_NPD0)
-#define G_NPD0(x) (((x) >> S_NPD0) & M_NPD0)
-
-#define A_PCIE_VC1_CDTS0 0x56d4
-
-#define S_CPLD1 20
-#define M_CPLD1 0xfffU
-#define V_CPLD1(x) ((x) << S_CPLD1)
-#define G_CPLD1(x) (((x) >> S_CPLD1) & M_CPLD1)
-
-#define S_PH1 12
-#define M_PH1 0xffU
-#define V_PH1(x) ((x) << S_PH1)
-#define G_PH1(x) (((x) >> S_PH1) & M_PH1)
-
-#define S_PD1 0
-#define M_PD1 0xfffU
-#define V_PD1(x) ((x) << S_PD1)
-#define G_PD1(x) (((x) >> S_PD1) & M_PD1)
-
-#define A_PCIE_VC1_CDTS1 0x56d8
-
-#define S_CPLH1 20
-#define M_CPLH1 0xffU
-#define V_CPLH1(x) ((x) << S_CPLH1)
-#define G_CPLH1(x) (((x) >> S_CPLH1) & M_CPLH1)
-
-#define S_NPH1 12
-#define M_NPH1 0xffU
-#define V_NPH1(x) ((x) << S_NPH1)
-#define G_NPH1(x) (((x) >> S_NPH1) & M_NPH1)
-
-#define S_NPD1 0
-#define M_NPD1 0xfffU
-#define V_NPD1(x) ((x) << S_NPD1)
-#define G_NPD1(x) (((x) >> S_NPD1) & M_NPD1)
-
-#define A_PCIE_FLR_PF_STATUS 0x56dc
-#define A_PCIE_FLR_VF0_STATUS 0x56e0
-#define A_PCIE_FLR_VF1_STATUS 0x56e4
-#define A_PCIE_FLR_VF2_STATUS 0x56e8
-#define A_PCIE_FLR_VF3_STATUS 0x56ec
-#define A_PCIE_STAT 0x56f4
-
-#define S_PM_STATUS 24
-#define M_PM_STATUS 0xffU
-#define V_PM_STATUS(x) ((x) << S_PM_STATUS)
-#define G_PM_STATUS(x) (((x) >> S_PM_STATUS) & M_PM_STATUS)
-
-#define S_PM_CURRENTSTATE 20
-#define M_PM_CURRENTSTATE 0x7U
-#define V_PM_CURRENTSTATE(x) ((x) << S_PM_CURRENTSTATE)
-#define G_PM_CURRENTSTATE(x) (((x) >> S_PM_CURRENTSTATE) & M_PM_CURRENTSTATE)
-
-#define S_LTSSMENABLE 12
-#define V_LTSSMENABLE(x) ((x) << S_LTSSMENABLE)
-#define F_LTSSMENABLE V_LTSSMENABLE(1U)
-
-#define S_STATECFGINITF 4
-#define M_STATECFGINITF 0x7fU
-#define V_STATECFGINITF(x) ((x) << S_STATECFGINITF)
-#define G_STATECFGINITF(x) (((x) >> S_STATECFGINITF) & M_STATECFGINITF)
-
-#define S_STATECFGINIT 0
-#define M_STATECFGINIT 0xfU
-#define V_STATECFGINIT(x) ((x) << S_STATECFGINIT)
-#define G_STATECFGINIT(x) (((x) >> S_STATECFGINIT) & M_STATECFGINIT)
-
-#define A_PCIE_CRS 0x56f8
-
-#define S_CRS_ENABLE 0
-#define V_CRS_ENABLE(x) ((x) << S_CRS_ENABLE)
-#define F_CRS_ENABLE V_CRS_ENABLE(1U)
-
-#define A_PCIE_LTSSM 0x56fc
-
-#define S_LTSSM_ENABLE 0
-#define V_LTSSM_ENABLE(x) ((x) << S_LTSSM_ENABLE)
-#define F_LTSSM_ENABLE V_LTSSM_ENABLE(1U)
-
-#define A_PCIE_CORE_ACK_LATENCY_TIMER_REPLAY_TIMER 0x5700
-
-#define S_REPLAY_TIME_LIMIT 16
-#define M_REPLAY_TIME_LIMIT 0xffffU
-#define V_REPLAY_TIME_LIMIT(x) ((x) << S_REPLAY_TIME_LIMIT)
-#define G_REPLAY_TIME_LIMIT(x) (((x) >> S_REPLAY_TIME_LIMIT) & M_REPLAY_TIME_LIMIT)
-
-#define S_ACK_LATENCY_TIMER_LIMIT 0
-#define M_ACK_LATENCY_TIMER_LIMIT 0xffffU
-#define V_ACK_LATENCY_TIMER_LIMIT(x) ((x) << S_ACK_LATENCY_TIMER_LIMIT)
-#define G_ACK_LATENCY_TIMER_LIMIT(x) (((x) >> S_ACK_LATENCY_TIMER_LIMIT) & M_ACK_LATENCY_TIMER_LIMIT)
-
-#define A_PCIE_CORE_VENDOR_SPECIFIC_DLLP 0x5704
-#define A_PCIE_CORE_PORT_FORCE_LINK 0x5708
-
-#define S_LOW_POWER_ENTRANCE_COUNT 24
-#define M_LOW_POWER_ENTRANCE_COUNT 0xffU
-#define V_LOW_POWER_ENTRANCE_COUNT(x) ((x) << S_LOW_POWER_ENTRANCE_COUNT)
-#define G_LOW_POWER_ENTRANCE_COUNT(x) (((x) >> S_LOW_POWER_ENTRANCE_COUNT) & M_LOW_POWER_ENTRANCE_COUNT)
-
-#define S_LINK_STATE 16
-#define M_LINK_STATE 0x3fU
-#define V_LINK_STATE(x) ((x) << S_LINK_STATE)
-#define G_LINK_STATE(x) (((x) >> S_LINK_STATE) & M_LINK_STATE)
-
-#define S_FORCE_LINK 15
-#define V_FORCE_LINK(x) ((x) << S_FORCE_LINK)
-#define F_FORCE_LINK V_FORCE_LINK(1U)
-
-#define S_LINK_NUMBER 0
-#define M_LINK_NUMBER 0xffU
-#define V_LINK_NUMBER(x) ((x) << S_LINK_NUMBER)
-#define G_LINK_NUMBER(x) (((x) >> S_LINK_NUMBER) & M_LINK_NUMBER)
-
-#define A_PCIE_CORE_ACK_FREQUENCY_L0L1_ASPM_CONTROL 0x570c
-
-#define S_ENTER_ASPM_L1_WO_L0S 30
-#define V_ENTER_ASPM_L1_WO_L0S(x) ((x) << S_ENTER_ASPM_L1_WO_L0S)
-#define F_ENTER_ASPM_L1_WO_L0S V_ENTER_ASPM_L1_WO_L0S(1U)
-
-#define S_L1_ENTRANCE_LATENCY 27
-#define M_L1_ENTRANCE_LATENCY 0x7U
-#define V_L1_ENTRANCE_LATENCY(x) ((x) << S_L1_ENTRANCE_LATENCY)
-#define G_L1_ENTRANCE_LATENCY(x) (((x) >> S_L1_ENTRANCE_LATENCY) & M_L1_ENTRANCE_LATENCY)
-
-#define S_L0S_ENTRANCE_LATENCY 24
-#define M_L0S_ENTRANCE_LATENCY 0x7U
-#define V_L0S_ENTRANCE_LATENCY(x) ((x) << S_L0S_ENTRANCE_LATENCY)
-#define G_L0S_ENTRANCE_LATENCY(x) (((x) >> S_L0S_ENTRANCE_LATENCY) & M_L0S_ENTRANCE_LATENCY)
-
-#define S_COMMON_CLOCK_N_FTS 16
-#define M_COMMON_CLOCK_N_FTS 0xffU
-#define V_COMMON_CLOCK_N_FTS(x) ((x) << S_COMMON_CLOCK_N_FTS)
-#define G_COMMON_CLOCK_N_FTS(x) (((x) >> S_COMMON_CLOCK_N_FTS) & M_COMMON_CLOCK_N_FTS)
-
-#define S_N_FTS 8
-#define M_N_FTS 0xffU
-#define V_N_FTS(x) ((x) << S_N_FTS)
-#define G_N_FTS(x) (((x) >> S_N_FTS) & M_N_FTS)
-
-#define S_ACK_FREQUENCY 0
-#define M_ACK_FREQUENCY 0xffU
-#define V_ACK_FREQUENCY(x) ((x) << S_ACK_FREQUENCY)
-#define G_ACK_FREQUENCY(x) (((x) >> S_ACK_FREQUENCY) & M_ACK_FREQUENCY)
-
-#define A_PCIE_CORE_PORT_LINK_CONTROL 0x5710
-
-#define S_CROSSLINK_ACTIVE 23
-#define V_CROSSLINK_ACTIVE(x) ((x) << S_CROSSLINK_ACTIVE)
-#define F_CROSSLINK_ACTIVE V_CROSSLINK_ACTIVE(1U)
-
-#define S_CROSSLINK_ENABLE 22
-#define V_CROSSLINK_ENABLE(x) ((x) << S_CROSSLINK_ENABLE)
-#define F_CROSSLINK_ENABLE V_CROSSLINK_ENABLE(1U)
-
-#define S_LINK_MODE_ENABLE 16
-#define M_LINK_MODE_ENABLE 0x3fU
-#define V_LINK_MODE_ENABLE(x) ((x) << S_LINK_MODE_ENABLE)
-#define G_LINK_MODE_ENABLE(x) (((x) >> S_LINK_MODE_ENABLE) & M_LINK_MODE_ENABLE)
-
-#define S_FAST_LINK_MODE 7
-#define V_FAST_LINK_MODE(x) ((x) << S_FAST_LINK_MODE)
-#define F_FAST_LINK_MODE V_FAST_LINK_MODE(1U)
-
-#define S_DLL_LINK_ENABLE 5
-#define V_DLL_LINK_ENABLE(x) ((x) << S_DLL_LINK_ENABLE)
-#define F_DLL_LINK_ENABLE V_DLL_LINK_ENABLE(1U)
-
-#define S_RESET_ASSERT 3
-#define V_RESET_ASSERT(x) ((x) << S_RESET_ASSERT)
-#define F_RESET_ASSERT V_RESET_ASSERT(1U)
-
-#define S_LOOPBACK_ENABLE 2
-#define V_LOOPBACK_ENABLE(x) ((x) << S_LOOPBACK_ENABLE)
-#define F_LOOPBACK_ENABLE V_LOOPBACK_ENABLE(1U)
-
-#define S_SCRAMBLE_DISABLE 1
-#define V_SCRAMBLE_DISABLE(x) ((x) << S_SCRAMBLE_DISABLE)
-#define F_SCRAMBLE_DISABLE V_SCRAMBLE_DISABLE(1U)
-
-#define S_VENDOR_SPECIFIC_DLLP_REQUEST 0
-#define V_VENDOR_SPECIFIC_DLLP_REQUEST(x) ((x) << S_VENDOR_SPECIFIC_DLLP_REQUEST)
-#define F_VENDOR_SPECIFIC_DLLP_REQUEST V_VENDOR_SPECIFIC_DLLP_REQUEST(1U)
-
-#define A_PCIE_CORE_LANE_SKEW 0x5714
-
-#define S_DISABLE_DESKEW 31
-#define V_DISABLE_DESKEW(x) ((x) << S_DISABLE_DESKEW)
-#define F_DISABLE_DESKEW V_DISABLE_DESKEW(1U)
-
-#define S_ACK_NAK_DISABLE 25
-#define V_ACK_NAK_DISABLE(x) ((x) << S_ACK_NAK_DISABLE)
-#define F_ACK_NAK_DISABLE V_ACK_NAK_DISABLE(1U)
-
-#define S_FLOW_CONTROL_DISABLE 24
-#define V_FLOW_CONTROL_DISABLE(x) ((x) << S_FLOW_CONTROL_DISABLE)
-#define F_FLOW_CONTROL_DISABLE V_FLOW_CONTROL_DISABLE(1U)
-
-#define S_INSERT_TXSKEW 0
-#define M_INSERT_TXSKEW 0xffffffU
-#define V_INSERT_TXSKEW(x) ((x) << S_INSERT_TXSKEW)
-#define G_INSERT_TXSKEW(x) (((x) >> S_INSERT_TXSKEW) & M_INSERT_TXSKEW)
-
-#define A_PCIE_CORE_SYMBOL_NUMBER 0x5718
-
-#define S_FLOW_CONTROL_TIMER_MODIFIER 24
-#define M_FLOW_CONTROL_TIMER_MODIFIER 0x1fU
-#define V_FLOW_CONTROL_TIMER_MODIFIER(x) ((x) << S_FLOW_CONTROL_TIMER_MODIFIER)
-#define G_FLOW_CONTROL_TIMER_MODIFIER(x) (((x) >> S_FLOW_CONTROL_TIMER_MODIFIER) & M_FLOW_CONTROL_TIMER_MODIFIER)
-
-#define S_ACK_NAK_TIMER_MODIFIER 19
-#define M_ACK_NAK_TIMER_MODIFIER 0x1fU
-#define V_ACK_NAK_TIMER_MODIFIER(x) ((x) << S_ACK_NAK_TIMER_MODIFIER)
-#define G_ACK_NAK_TIMER_MODIFIER(x) (((x) >> S_ACK_NAK_TIMER_MODIFIER) & M_ACK_NAK_TIMER_MODIFIER)
-
-#define S_REPLAY_TIMER_MODIFIER 14
-#define M_REPLAY_TIMER_MODIFIER 0x1fU
-#define V_REPLAY_TIMER_MODIFIER(x) ((x) << S_REPLAY_TIMER_MODIFIER)
-#define G_REPLAY_TIMER_MODIFIER(x) (((x) >> S_REPLAY_TIMER_MODIFIER) & M_REPLAY_TIMER_MODIFIER)
-
-#define S_MAXFUNC 0
-#define M_MAXFUNC 0x7U
-#define V_MAXFUNC(x) ((x) << S_MAXFUNC)
-#define G_MAXFUNC(x) (((x) >> S_MAXFUNC) & M_MAXFUNC)
-
-#define A_PCIE_CORE_SYMBOL_TIMER_FILTER_MASK1 0x571c
-
-#define S_MASK_RADM_FILTER 16
-#define M_MASK_RADM_FILTER 0xffffU
-#define V_MASK_RADM_FILTER(x) ((x) << S_MASK_RADM_FILTER)
-#define G_MASK_RADM_FILTER(x) (((x) >> S_MASK_RADM_FILTER) & M_MASK_RADM_FILTER)
-
-#define S_DISABLE_FC_WATCHDOG 15
-#define V_DISABLE_FC_WATCHDOG(x) ((x) << S_DISABLE_FC_WATCHDOG)
-#define F_DISABLE_FC_WATCHDOG V_DISABLE_FC_WATCHDOG(1U)
-
-#define S_SKP_INTERVAL 0
-#define M_SKP_INTERVAL 0x7ffU
-#define V_SKP_INTERVAL(x) ((x) << S_SKP_INTERVAL)
-#define G_SKP_INTERVAL(x) (((x) >> S_SKP_INTERVAL) & M_SKP_INTERVAL)
-
-#define A_PCIE_CORE_FILTER_MASK2 0x5720
-#define A_PCIE_CORE_DEBUG_0 0x5728
-#define A_PCIE_CORE_DEBUG_1 0x572c
-#define A_PCIE_CORE_TRANSMIT_POSTED_FC_CREDIT_STATUS 0x5730
-
-#define S_TXPH_FC 12
-#define M_TXPH_FC 0xffU
-#define V_TXPH_FC(x) ((x) << S_TXPH_FC)
-#define G_TXPH_FC(x) (((x) >> S_TXPH_FC) & M_TXPH_FC)
-
-#define S_TXPD_FC 0
-#define M_TXPD_FC 0xfffU
-#define V_TXPD_FC(x) ((x) << S_TXPD_FC)
-#define G_TXPD_FC(x) (((x) >> S_TXPD_FC) & M_TXPD_FC)
-
-#define A_PCIE_CORE_TRANSMIT_NONPOSTED_FC_CREDIT_STATUS 0x5734
-
-#define S_TXNPH_FC 12
-#define M_TXNPH_FC 0xffU
-#define V_TXNPH_FC(x) ((x) << S_TXNPH_FC)
-#define G_TXNPH_FC(x) (((x) >> S_TXNPH_FC) & M_TXNPH_FC)
-
-#define S_TXNPD_FC 0
-#define M_TXNPD_FC 0xfffU
-#define V_TXNPD_FC(x) ((x) << S_TXNPD_FC)
-#define G_TXNPD_FC(x) (((x) >> S_TXNPD_FC) & M_TXNPD_FC)
-
-#define A_PCIE_CORE_TRANSMIT_COMPLETION_FC_CREDIT_STATUS 0x5738
-
-#define S_TXCPLH_FC 12
-#define M_TXCPLH_FC 0xffU
-#define V_TXCPLH_FC(x) ((x) << S_TXCPLH_FC)
-#define G_TXCPLH_FC(x) (((x) >> S_TXCPLH_FC) & M_TXCPLH_FC)
-
-#define S_TXCPLD_FC 0
-#define M_TXCPLD_FC 0xfffU
-#define V_TXCPLD_FC(x) ((x) << S_TXCPLD_FC)
-#define G_TXCPLD_FC(x) (((x) >> S_TXCPLD_FC) & M_TXCPLD_FC)
-
-#define A_PCIE_CORE_QUEUE_STATUS 0x573c
-
-#define S_RXQUEUE_NOT_EMPTY 2
-#define V_RXQUEUE_NOT_EMPTY(x) ((x) << S_RXQUEUE_NOT_EMPTY)
-#define F_RXQUEUE_NOT_EMPTY V_RXQUEUE_NOT_EMPTY(1U)
-
-#define S_TXRETRYBUF_NOT_EMPTY 1
-#define V_TXRETRYBUF_NOT_EMPTY(x) ((x) << S_TXRETRYBUF_NOT_EMPTY)
-#define F_TXRETRYBUF_NOT_EMPTY V_TXRETRYBUF_NOT_EMPTY(1U)
-
-#define S_RXTLP_FC_NOT_RETURNED 0
-#define V_RXTLP_FC_NOT_RETURNED(x) ((x) << S_RXTLP_FC_NOT_RETURNED)
-#define F_RXTLP_FC_NOT_RETURNED V_RXTLP_FC_NOT_RETURNED(1U)
-
-#define A_PCIE_CORE_VC_TRANSMIT_ARBITRATION_1 0x5740
-
-#define S_VC3_WRR 24
-#define M_VC3_WRR 0xffU
-#define V_VC3_WRR(x) ((x) << S_VC3_WRR)
-#define G_VC3_WRR(x) (((x) >> S_VC3_WRR) & M_VC3_WRR)
-
-#define S_VC2_WRR 16
-#define M_VC2_WRR 0xffU
-#define V_VC2_WRR(x) ((x) << S_VC2_WRR)
-#define G_VC2_WRR(x) (((x) >> S_VC2_WRR) & M_VC2_WRR)
-
-#define S_VC1_WRR 8
-#define M_VC1_WRR 0xffU
-#define V_VC1_WRR(x) ((x) << S_VC1_WRR)
-#define G_VC1_WRR(x) (((x) >> S_VC1_WRR) & M_VC1_WRR)
-
-#define S_VC0_WRR 0
-#define M_VC0_WRR 0xffU
-#define V_VC0_WRR(x) ((x) << S_VC0_WRR)
-#define G_VC0_WRR(x) (((x) >> S_VC0_WRR) & M_VC0_WRR)
-
-#define A_PCIE_CORE_VC_TRANSMIT_ARBITRATION_2 0x5744
-
-#define S_VC7_WRR 24
-#define M_VC7_WRR 0xffU
-#define V_VC7_WRR(x) ((x) << S_VC7_WRR)
-#define G_VC7_WRR(x) (((x) >> S_VC7_WRR) & M_VC7_WRR)
-
-#define S_VC6_WRR 16
-#define M_VC6_WRR 0xffU
-#define V_VC6_WRR(x) ((x) << S_VC6_WRR)
-#define G_VC6_WRR(x) (((x) >> S_VC6_WRR) & M_VC6_WRR)
-
-#define S_VC5_WRR 8
-#define M_VC5_WRR 0xffU
-#define V_VC5_WRR(x) ((x) << S_VC5_WRR)
-#define G_VC5_WRR(x) (((x) >> S_VC5_WRR) & M_VC5_WRR)
-
-#define S_VC4_WRR 0
-#define M_VC4_WRR 0xffU
-#define V_VC4_WRR(x) ((x) << S_VC4_WRR)
-#define G_VC4_WRR(x) (((x) >> S_VC4_WRR) & M_VC4_WRR)
-
-#define A_PCIE_CORE_VC0_POSTED_RECEIVE_QUEUE_CONTROL 0x5748
-
-#define S_VC0_RX_ORDERING 31
-#define V_VC0_RX_ORDERING(x) ((x) << S_VC0_RX_ORDERING)
-#define F_VC0_RX_ORDERING V_VC0_RX_ORDERING(1U)
-
-#define S_VC0_TLP_ORDERING 30
-#define V_VC0_TLP_ORDERING(x) ((x) << S_VC0_TLP_ORDERING)
-#define F_VC0_TLP_ORDERING V_VC0_TLP_ORDERING(1U)
-
-#define S_VC0_PTLP_QUEUE_MODE 21
-#define M_VC0_PTLP_QUEUE_MODE 0x7U
-#define V_VC0_PTLP_QUEUE_MODE(x) ((x) << S_VC0_PTLP_QUEUE_MODE)
-#define G_VC0_PTLP_QUEUE_MODE(x) (((x) >> S_VC0_PTLP_QUEUE_MODE) & M_VC0_PTLP_QUEUE_MODE)
-
-#define S_VC0_PH_CREDITS 12
-#define M_VC0_PH_CREDITS 0xffU
-#define V_VC0_PH_CREDITS(x) ((x) << S_VC0_PH_CREDITS)
-#define G_VC0_PH_CREDITS(x) (((x) >> S_VC0_PH_CREDITS) & M_VC0_PH_CREDITS)
-
-#define S_VC0_PD_CREDITS 0
-#define M_VC0_PD_CREDITS 0xfffU
-#define V_VC0_PD_CREDITS(x) ((x) << S_VC0_PD_CREDITS)
-#define G_VC0_PD_CREDITS(x) (((x) >> S_VC0_PD_CREDITS) & M_VC0_PD_CREDITS)
-
-#define A_PCIE_CORE_VC0_NONPOSTED_RECEIVE_QUEUE_CONTROL 0x574c
-
-#define S_VC0_NPTLP_QUEUE_MODE 21
-#define M_VC0_NPTLP_QUEUE_MODE 0x7U
-#define V_VC0_NPTLP_QUEUE_MODE(x) ((x) << S_VC0_NPTLP_QUEUE_MODE)
-#define G_VC0_NPTLP_QUEUE_MODE(x) (((x) >> S_VC0_NPTLP_QUEUE_MODE) & M_VC0_NPTLP_QUEUE_MODE)
-
-#define S_VC0_NPH_CREDITS 12
-#define M_VC0_NPH_CREDITS 0xffU
-#define V_VC0_NPH_CREDITS(x) ((x) << S_VC0_NPH_CREDITS)
-#define G_VC0_NPH_CREDITS(x) (((x) >> S_VC0_NPH_CREDITS) & M_VC0_NPH_CREDITS)
-
-#define S_VC0_NPD_CREDITS 0
-#define M_VC0_NPD_CREDITS 0xfffU
-#define V_VC0_NPD_CREDITS(x) ((x) << S_VC0_NPD_CREDITS)
-#define G_VC0_NPD_CREDITS(x) (((x) >> S_VC0_NPD_CREDITS) & M_VC0_NPD_CREDITS)
-
-#define A_PCIE_CORE_VC0_COMPLETION_RECEIVE_QUEUE_CONTROL 0x5750
-
-#define S_VC0_CPLTLP_QUEUE_MODE 21
-#define M_VC0_CPLTLP_QUEUE_MODE 0x7U
-#define V_VC0_CPLTLP_QUEUE_MODE(x) ((x) << S_VC0_CPLTLP_QUEUE_MODE)
-#define G_VC0_CPLTLP_QUEUE_MODE(x) (((x) >> S_VC0_CPLTLP_QUEUE_MODE) & M_VC0_CPLTLP_QUEUE_MODE)
-
-#define S_VC0_CPLH_CREDITS 12
-#define M_VC0_CPLH_CREDITS 0xffU
-#define V_VC0_CPLH_CREDITS(x) ((x) << S_VC0_CPLH_CREDITS)
-#define G_VC0_CPLH_CREDITS(x) (((x) >> S_VC0_CPLH_CREDITS) & M_VC0_CPLH_CREDITS)
-
-#define S_VC0_CPLD_CREDITS 0
-#define M_VC0_CPLD_CREDITS 0xfffU
-#define V_VC0_CPLD_CREDITS(x) ((x) << S_VC0_CPLD_CREDITS)
-#define G_VC0_CPLD_CREDITS(x) (((x) >> S_VC0_CPLD_CREDITS) & M_VC0_CPLD_CREDITS)
-
-#define A_PCIE_CORE_VC1_POSTED_RECEIVE_QUEUE_CONTROL 0x5754
-
-#define S_VC1_TLP_ORDERING 30
-#define V_VC1_TLP_ORDERING(x) ((x) << S_VC1_TLP_ORDERING)
-#define F_VC1_TLP_ORDERING V_VC1_TLP_ORDERING(1U)
-
-#define S_VC1_PTLP_QUEUE_MODE 21
-#define M_VC1_PTLP_QUEUE_MODE 0x7U
-#define V_VC1_PTLP_QUEUE_MODE(x) ((x) << S_VC1_PTLP_QUEUE_MODE)
-#define G_VC1_PTLP_QUEUE_MODE(x) (((x) >> S_VC1_PTLP_QUEUE_MODE) & M_VC1_PTLP_QUEUE_MODE)
-
-#define S_VC1_PH_CREDITS 12
-#define M_VC1_PH_CREDITS 0xffU
-#define V_VC1_PH_CREDITS(x) ((x) << S_VC1_PH_CREDITS)
-#define G_VC1_PH_CREDITS(x) (((x) >> S_VC1_PH_CREDITS) & M_VC1_PH_CREDITS)
-
-#define S_VC1_PD_CREDITS 0
-#define M_VC1_PD_CREDITS 0xfffU
-#define V_VC1_PD_CREDITS(x) ((x) << S_VC1_PD_CREDITS)
-#define G_VC1_PD_CREDITS(x) (((x) >> S_VC1_PD_CREDITS) & M_VC1_PD_CREDITS)
-
-#define A_PCIE_CORE_VC1_NONPOSTED_RECEIVE_QUEUE_CONTROL 0x5758
-
-#define S_VC1_NPTLP_QUEUE_MODE 21
-#define M_VC1_NPTLP_QUEUE_MODE 0x7U
-#define V_VC1_NPTLP_QUEUE_MODE(x) ((x) << S_VC1_NPTLP_QUEUE_MODE)
-#define G_VC1_NPTLP_QUEUE_MODE(x) (((x) >> S_VC1_NPTLP_QUEUE_MODE) & M_VC1_NPTLP_QUEUE_MODE)
-
-#define S_VC1_NPH_CREDITS 12
-#define M_VC1_NPH_CREDITS 0xffU
-#define V_VC1_NPH_CREDITS(x) ((x) << S_VC1_NPH_CREDITS)
-#define G_VC1_NPH_CREDITS(x) (((x) >> S_VC1_NPH_CREDITS) & M_VC1_NPH_CREDITS)
-
-#define S_VC1_NPD_CREDITS 0
-#define M_VC1_NPD_CREDITS 0xfffU
-#define V_VC1_NPD_CREDITS(x) ((x) << S_VC1_NPD_CREDITS)
-#define G_VC1_NPD_CREDITS(x) (((x) >> S_VC1_NPD_CREDITS) & M_VC1_NPD_CREDITS)
-
-#define A_PCIE_CORE_VC1_COMPLETION_RECEIVE_QUEUE_CONTROL 0x575c
-
-#define S_VC1_CPLTLP_QUEUE_MODE 21
-#define M_VC1_CPLTLP_QUEUE_MODE 0x7U
-#define V_VC1_CPLTLP_QUEUE_MODE(x) ((x) << S_VC1_CPLTLP_QUEUE_MODE)
-#define G_VC1_CPLTLP_QUEUE_MODE(x) (((x) >> S_VC1_CPLTLP_QUEUE_MODE) & M_VC1_CPLTLP_QUEUE_MODE)
-
-#define S_VC1_CPLH_CREDITS 12
-#define M_VC1_CPLH_CREDITS 0xffU
-#define V_VC1_CPLH_CREDITS(x) ((x) << S_VC1_CPLH_CREDITS)
-#define G_VC1_CPLH_CREDITS(x) (((x) >> S_VC1_CPLH_CREDITS) & M_VC1_CPLH_CREDITS)
-
-#define S_VC1_CPLD_CREDITS 0
-#define M_VC1_CPLD_CREDITS 0xfffU
-#define V_VC1_CPLD_CREDITS(x) ((x) << S_VC1_CPLD_CREDITS)
-#define G_VC1_CPLD_CREDITS(x) (((x) >> S_VC1_CPLD_CREDITS) & M_VC1_CPLD_CREDITS)
-
-#define A_PCIE_CORE_LINK_WIDTH_SPEED_CHANGE 0x580c
-
-#define S_SEL_DEEMPHASIS 20
-#define V_SEL_DEEMPHASIS(x) ((x) << S_SEL_DEEMPHASIS)
-#define F_SEL_DEEMPHASIS V_SEL_DEEMPHASIS(1U)
-
-#define S_TXCMPLRCV 19
-#define V_TXCMPLRCV(x) ((x) << S_TXCMPLRCV)
-#define F_TXCMPLRCV V_TXCMPLRCV(1U)
-
-#define S_PHYTXSWING 18
-#define V_PHYTXSWING(x) ((x) << S_PHYTXSWING)
-#define F_PHYTXSWING V_PHYTXSWING(1U)
-
-#define S_DIRSPDCHANGE 17
-#define V_DIRSPDCHANGE(x) ((x) << S_DIRSPDCHANGE)
-#define F_DIRSPDCHANGE V_DIRSPDCHANGE(1U)
-
-#define S_NUM_LANES 8
-#define M_NUM_LANES 0x1ffU
-#define V_NUM_LANES(x) ((x) << S_NUM_LANES)
-#define G_NUM_LANES(x) (((x) >> S_NUM_LANES) & M_NUM_LANES)
-
-#define S_NFTS_GEN2_3 0
-#define M_NFTS_GEN2_3 0xffU
-#define V_NFTS_GEN2_3(x) ((x) << S_NFTS_GEN2_3)
-#define G_NFTS_GEN2_3(x) (((x) >> S_NFTS_GEN2_3) & M_NFTS_GEN2_3)
-
-#define A_PCIE_CORE_PHY_STATUS 0x5810
-#define A_PCIE_CORE_PHY_CONTROL 0x5814
-#define A_PCIE_CORE_GEN3_CONTROL 0x5890
-
-#define S_DC_BALANCE_DISABLE 18
-#define V_DC_BALANCE_DISABLE(x) ((x) << S_DC_BALANCE_DISABLE)
-#define F_DC_BALANCE_DISABLE V_DC_BALANCE_DISABLE(1U)
-
-#define S_DLLP_DELAY_DISABLE 17
-#define V_DLLP_DELAY_DISABLE(x) ((x) << S_DLLP_DELAY_DISABLE)
-#define F_DLLP_DELAY_DISABLE V_DLLP_DELAY_DISABLE(1U)
-
-#define S_EQL_DISABLE 16
-#define V_EQL_DISABLE(x) ((x) << S_EQL_DISABLE)
-#define F_EQL_DISABLE V_EQL_DISABLE(1U)
-
-#define S_EQL_REDO_DISABLE 11
-#define V_EQL_REDO_DISABLE(x) ((x) << S_EQL_REDO_DISABLE)
-#define F_EQL_REDO_DISABLE V_EQL_REDO_DISABLE(1U)
-
-#define S_EQL_EIEOS_CNTRST_DISABLE 10
-#define V_EQL_EIEOS_CNTRST_DISABLE(x) ((x) << S_EQL_EIEOS_CNTRST_DISABLE)
-#define F_EQL_EIEOS_CNTRST_DISABLE V_EQL_EIEOS_CNTRST_DISABLE(1U)
-
-#define S_EQL_PH2_PH3_DISABLE 9
-#define V_EQL_PH2_PH3_DISABLE(x) ((x) << S_EQL_PH2_PH3_DISABLE)
-#define F_EQL_PH2_PH3_DISABLE V_EQL_PH2_PH3_DISABLE(1U)
-
-#define S_DISABLE_SCRAMBLER 8
-#define V_DISABLE_SCRAMBLER(x) ((x) << S_DISABLE_SCRAMBLER)
-#define F_DISABLE_SCRAMBLER V_DISABLE_SCRAMBLER(1U)
-
-#define A_PCIE_CORE_GEN3_EQ_FS_LF 0x5894
-
-#define S_FULL_SWING 6
-#define M_FULL_SWING 0x3fU
-#define V_FULL_SWING(x) ((x) << S_FULL_SWING)
-#define G_FULL_SWING(x) (((x) >> S_FULL_SWING) & M_FULL_SWING)
-
-#define S_LOW_FREQUENCY 0
-#define M_LOW_FREQUENCY 0x3fU
-#define V_LOW_FREQUENCY(x) ((x) << S_LOW_FREQUENCY)
-#define G_LOW_FREQUENCY(x) (((x) >> S_LOW_FREQUENCY) & M_LOW_FREQUENCY)
-
-#define A_PCIE_CORE_GEN3_EQ_PRESET_COEFF 0x5898
-
-#define S_POSTCURSOR 12
-#define M_POSTCURSOR 0x3fU
-#define V_POSTCURSOR(x) ((x) << S_POSTCURSOR)
-#define G_POSTCURSOR(x) (((x) >> S_POSTCURSOR) & M_POSTCURSOR)
-
-#define S_CURSOR 6
-#define M_CURSOR 0x3fU
-#define V_CURSOR(x) ((x) << S_CURSOR)
-#define G_CURSOR(x) (((x) >> S_CURSOR) & M_CURSOR)
-
-#define S_PRECURSOR 0
-#define M_PRECURSOR 0x3fU
-#define V_PRECURSOR(x) ((x) << S_PRECURSOR)
-#define G_PRECURSOR(x) (((x) >> S_PRECURSOR) & M_PRECURSOR)
-
-#define A_PCIE_CORE_GEN3_EQ_PRESET_INDEX 0x589c
-
-#define S_INDEX 0
-#define M_INDEX 0xfU
-#define V_INDEX(x) ((x) << S_INDEX)
-#define G_INDEX(x) (((x) >> S_INDEX) & M_INDEX)
-
-#define A_PCIE_CORE_GEN3_EQ_STATUS 0x58a4
-
-#define S_LEGALITY_STATUS 0
-#define V_LEGALITY_STATUS(x) ((x) << S_LEGALITY_STATUS)
-#define F_LEGALITY_STATUS V_LEGALITY_STATUS(1U)
-
-#define A_PCIE_CORE_GEN3_EQ_CONTROL 0x58a8
-
-#define S_INCLUDE_INITIAL_FOM 24
-#define V_INCLUDE_INITIAL_FOM(x) ((x) << S_INCLUDE_INITIAL_FOM)
-#define F_INCLUDE_INITIAL_FOM V_INCLUDE_INITIAL_FOM(1U)
-
-#define S_PRESET_REQUEST_VECTOR 8
-#define M_PRESET_REQUEST_VECTOR 0xffffU
-#define V_PRESET_REQUEST_VECTOR(x) ((x) << S_PRESET_REQUEST_VECTOR)
-#define G_PRESET_REQUEST_VECTOR(x) (((x) >> S_PRESET_REQUEST_VECTOR) & M_PRESET_REQUEST_VECTOR)
-
-#define S_PHASE23_2MS_TIMEOUT_DISABLE 5
-#define V_PHASE23_2MS_TIMEOUT_DISABLE(x) ((x) << S_PHASE23_2MS_TIMEOUT_DISABLE)
-#define F_PHASE23_2MS_TIMEOUT_DISABLE V_PHASE23_2MS_TIMEOUT_DISABLE(1U)
-
-#define S_AFTER24MS 4
-#define V_AFTER24MS(x) ((x) << S_AFTER24MS)
-#define F_AFTER24MS V_AFTER24MS(1U)
-
-#define S_FEEDBACK_MODE 0
-#define M_FEEDBACK_MODE 0xfU
-#define V_FEEDBACK_MODE(x) ((x) << S_FEEDBACK_MODE)
-#define G_FEEDBACK_MODE(x) (((x) >> S_FEEDBACK_MODE) & M_FEEDBACK_MODE)
-
-#define A_PCIE_CORE_GEN3_EQ_DIRCHANGE_FEEDBACK 0x58ac
-
-#define S_WINAPERTURE_CPLUS1 14
-#define M_WINAPERTURE_CPLUS1 0xfU
-#define V_WINAPERTURE_CPLUS1(x) ((x) << S_WINAPERTURE_CPLUS1)
-#define G_WINAPERTURE_CPLUS1(x) (((x) >> S_WINAPERTURE_CPLUS1) & M_WINAPERTURE_CPLUS1)
-
-#define S_WINAPERTURE_CMINS1 10
-#define M_WINAPERTURE_CMINS1 0xfU
-#define V_WINAPERTURE_CMINS1(x) ((x) << S_WINAPERTURE_CMINS1)
-#define G_WINAPERTURE_CMINS1(x) (((x) >> S_WINAPERTURE_CMINS1) & M_WINAPERTURE_CMINS1)
-
-#define S_CONVERGENCE_WINDEPTH 5
-#define M_CONVERGENCE_WINDEPTH 0x1fU
-#define V_CONVERGENCE_WINDEPTH(x) ((x) << S_CONVERGENCE_WINDEPTH)
-#define G_CONVERGENCE_WINDEPTH(x) (((x) >> S_CONVERGENCE_WINDEPTH) & M_CONVERGENCE_WINDEPTH)
-
-#define S_EQMASTERPHASE_MINTIME 0
-#define M_EQMASTERPHASE_MINTIME 0x1fU
-#define V_EQMASTERPHASE_MINTIME(x) ((x) << S_EQMASTERPHASE_MINTIME)
-#define G_EQMASTERPHASE_MINTIME(x) (((x) >> S_EQMASTERPHASE_MINTIME) & M_EQMASTERPHASE_MINTIME)
-
-#define A_PCIE_CORE_PIPE_CONTROL 0x58b8
-
-#define S_PIPE_LOOPBACK_EN 0
-#define V_PIPE_LOOPBACK_EN(x) ((x) << S_PIPE_LOOPBACK_EN)
-#define F_PIPE_LOOPBACK_EN V_PIPE_LOOPBACK_EN(1U)
-
-#define A_PCIE_CORE_DBI_RO_WE 0x58bc
-
-#define S_READONLY_WRITEEN 0
-#define V_READONLY_WRITEEN(x) ((x) << S_READONLY_WRITEEN)
-#define F_READONLY_WRITEEN V_READONLY_WRITEEN(1U)
-
#define A_PCIE_CORE_UTL_SYSTEM_BUS_CONTROL 0x5900
#define S_SMTD 27
@@ -5218,105 +2489,6 @@
#define V_BRVN(x) ((x) << S_BRVN)
#define G_BRVN(x) (((x) >> S_BRVN) & M_BRVN)
-#define A_PCIE_T5_DMA_CFG 0x5940
-
-#define S_T5_DMA_MAXREQCNT 20
-#define M_T5_DMA_MAXREQCNT 0xffU
-#define V_T5_DMA_MAXREQCNT(x) ((x) << S_T5_DMA_MAXREQCNT)
-#define G_T5_DMA_MAXREQCNT(x) (((x) >> S_T5_DMA_MAXREQCNT) & M_T5_DMA_MAXREQCNT)
-
-#define S_T5_DMA_MAXRDREQSIZE 17
-#define M_T5_DMA_MAXRDREQSIZE 0x7U
-#define V_T5_DMA_MAXRDREQSIZE(x) ((x) << S_T5_DMA_MAXRDREQSIZE)
-#define G_T5_DMA_MAXRDREQSIZE(x) (((x) >> S_T5_DMA_MAXRDREQSIZE) & M_T5_DMA_MAXRDREQSIZE)
-
-#define S_T5_DMA_MAXRSPCNT 8
-#define M_T5_DMA_MAXRSPCNT 0x1ffU
-#define V_T5_DMA_MAXRSPCNT(x) ((x) << S_T5_DMA_MAXRSPCNT)
-#define G_T5_DMA_MAXRSPCNT(x) (((x) >> S_T5_DMA_MAXRSPCNT) & M_T5_DMA_MAXRSPCNT)
-
-#define S_SEQCHKDIS 7
-#define V_SEQCHKDIS(x) ((x) << S_SEQCHKDIS)
-#define F_SEQCHKDIS V_SEQCHKDIS(1U)
-
-#define S_MINTAG 0
-#define M_MINTAG 0x7fU
-#define V_MINTAG(x) ((x) << S_MINTAG)
-#define G_MINTAG(x) (((x) >> S_MINTAG) & M_MINTAG)
-
-#define A_PCIE_T5_DMA_STAT 0x5944
-
-#define S_DMA_RESPCNT 20
-#define M_DMA_RESPCNT 0xfffU
-#define V_DMA_RESPCNT(x) ((x) << S_DMA_RESPCNT)
-#define G_DMA_RESPCNT(x) (((x) >> S_DMA_RESPCNT) & M_DMA_RESPCNT)
-
-#define S_DMA_RDREQCNT 12
-#define M_DMA_RDREQCNT 0xffU
-#define V_DMA_RDREQCNT(x) ((x) << S_DMA_RDREQCNT)
-#define G_DMA_RDREQCNT(x) (((x) >> S_DMA_RDREQCNT) & M_DMA_RDREQCNT)
-
-#define S_DMA_WRREQCNT 0
-#define M_DMA_WRREQCNT 0x7ffU
-#define V_DMA_WRREQCNT(x) ((x) << S_DMA_WRREQCNT)
-#define G_DMA_WRREQCNT(x) (((x) >> S_DMA_WRREQCNT) & M_DMA_WRREQCNT)
-
-#define A_PCIE_T5_DMA_STAT2 0x5948
-
-#define S_COOKIECNT 24
-#define M_COOKIECNT 0xfU
-#define V_COOKIECNT(x) ((x) << S_COOKIECNT)
-#define G_COOKIECNT(x) (((x) >> S_COOKIECNT) & M_COOKIECNT)
-
-#define S_RDSEQNUMUPDCNT 20
-#define M_RDSEQNUMUPDCNT 0xfU
-#define V_RDSEQNUMUPDCNT(x) ((x) << S_RDSEQNUMUPDCNT)
-#define G_RDSEQNUMUPDCNT(x) (((x) >> S_RDSEQNUMUPDCNT) & M_RDSEQNUMUPDCNT)
-
-#define S_SIREQCNT 16
-#define M_SIREQCNT 0xfU
-#define V_SIREQCNT(x) ((x) << S_SIREQCNT)
-#define G_SIREQCNT(x) (((x) >> S_SIREQCNT) & M_SIREQCNT)
-
-#define S_WREOPMATCHSOP 12
-#define V_WREOPMATCHSOP(x) ((x) << S_WREOPMATCHSOP)
-#define F_WREOPMATCHSOP V_WREOPMATCHSOP(1U)
-
-#define S_WRSOPCNT 8
-#define M_WRSOPCNT 0xfU
-#define V_WRSOPCNT(x) ((x) << S_WRSOPCNT)
-#define G_WRSOPCNT(x) (((x) >> S_WRSOPCNT) & M_WRSOPCNT)
-
-#define S_RDSOPCNT 0
-#define M_RDSOPCNT 0xffU
-#define V_RDSOPCNT(x) ((x) << S_RDSOPCNT)
-#define G_RDSOPCNT(x) (((x) >> S_RDSOPCNT) & M_RDSOPCNT)
-
-#define A_PCIE_T5_DMA_STAT3 0x594c
-
-#define S_ATMREQSOPCNT 24
-#define M_ATMREQSOPCNT 0xffU
-#define V_ATMREQSOPCNT(x) ((x) << S_ATMREQSOPCNT)
-#define G_ATMREQSOPCNT(x) (((x) >> S_ATMREQSOPCNT) & M_ATMREQSOPCNT)
-
-#define S_ATMEOPMATCHSOP 17
-#define V_ATMEOPMATCHSOP(x) ((x) << S_ATMEOPMATCHSOP)
-#define F_ATMEOPMATCHSOP V_ATMEOPMATCHSOP(1U)
-
-#define S_RSPEOPMATCHSOP 16
-#define V_RSPEOPMATCHSOP(x) ((x) << S_RSPEOPMATCHSOP)
-#define F_RSPEOPMATCHSOP V_RSPEOPMATCHSOP(1U)
-
-#define S_RSPERRCNT 8
-#define M_RSPERRCNT 0xffU
-#define V_RSPERRCNT(x) ((x) << S_RSPERRCNT)
-#define G_RSPERRCNT(x) (((x) >> S_RSPERRCNT) & M_RSPERRCNT)
-
-#define S_RSPSOPCNT 0
-#define M_RSPSOPCNT 0xffU
-#define V_RSPSOPCNT(x) ((x) << S_RSPSOPCNT)
-#define G_RSPSOPCNT(x) (((x) >> S_RSPSOPCNT) & M_RSPSOPCNT)
-
#define A_PCIE_CORE_OUTBOUND_POSTED_HEADER_BUFFER_ALLOCATION 0x5960
#define S_OP0H 24
@@ -5427,34 +2599,6 @@
#define V_ON3H(x) ((x) << S_ON3H)
#define G_ON3H(x) (((x) >> S_ON3H) & M_ON3H)
-#define A_PCIE_T5_CMD_CFG 0x5980
-
-#define S_T5_CMD_MAXRDREQSIZE 17
-#define M_T5_CMD_MAXRDREQSIZE 0x7U
-#define V_T5_CMD_MAXRDREQSIZE(x) ((x) << S_T5_CMD_MAXRDREQSIZE)
-#define G_T5_CMD_MAXRDREQSIZE(x) (((x) >> S_T5_CMD_MAXRDREQSIZE) & M_T5_CMD_MAXRDREQSIZE)
-
-#define S_T5_CMD_MAXRSPCNT 8
-#define M_T5_CMD_MAXRSPCNT 0xffU
-#define V_T5_CMD_MAXRSPCNT(x) ((x) << S_T5_CMD_MAXRSPCNT)
-#define G_T5_CMD_MAXRSPCNT(x) (((x) >> S_T5_CMD_MAXRSPCNT) & M_T5_CMD_MAXRSPCNT)
-
-#define S_USECMDPOOL 7
-#define V_USECMDPOOL(x) ((x) << S_USECMDPOOL)
-#define F_USECMDPOOL V_USECMDPOOL(1U)
-
-#define A_PCIE_T5_CMD_STAT 0x5984
-
-#define S_T5_STAT_RSPCNT 20
-#define M_T5_STAT_RSPCNT 0x7ffU
-#define V_T5_STAT_RSPCNT(x) ((x) << S_T5_STAT_RSPCNT)
-#define G_T5_STAT_RSPCNT(x) (((x) >> S_T5_STAT_RSPCNT) & M_T5_STAT_RSPCNT)
-
-#define S_RDREQCNT 12
-#define M_RDREQCNT 0x1fU
-#define V_RDREQCNT(x) ((x) << S_RDREQCNT)
-#define G_RDREQCNT(x) (((x) >> S_RDREQCNT) & M_RDREQCNT)
-
#define A_PCIE_CORE_INBOUND_NON_POSTED_REQUESTS_BUFFER_ALLOCATION 0x5988
#define S_IN0H 24
@@ -5477,8 +2621,6 @@
#define V_IN3H(x) ((x) << S_IN3H)
#define G_IN3H(x) (((x) >> S_IN3H) & M_IN3H)
-#define A_PCIE_T5_CMD_STAT2 0x5988
-#define A_PCIE_T5_CMD_STAT3 0x598c
#define A_PCIE_CORE_PCI_EXPRESS_TAGS_ALLOCATION 0x5990
#define S_OC0T 24
@@ -5762,23 +2904,6 @@
#define V_CRSE(x) ((x) << S_CRSE)
#define F_CRSE V_CRSE(1U)
-#define A_PCIE_T5_HMA_CFG 0x59b0
-
-#define S_HMA_MAXREQCNT 20
-#define M_HMA_MAXREQCNT 0x1fU
-#define V_HMA_MAXREQCNT(x) ((x) << S_HMA_MAXREQCNT)
-#define G_HMA_MAXREQCNT(x) (((x) >> S_HMA_MAXREQCNT) & M_HMA_MAXREQCNT)
-
-#define S_T5_HMA_MAXRDREQSIZE 17
-#define M_T5_HMA_MAXRDREQSIZE 0x7U
-#define V_T5_HMA_MAXRDREQSIZE(x) ((x) << S_T5_HMA_MAXRDREQSIZE)
-#define G_T5_HMA_MAXRDREQSIZE(x) (((x) >> S_T5_HMA_MAXRDREQSIZE) & M_T5_HMA_MAXRDREQSIZE)
-
-#define S_T5_HMA_MAXRSPCNT 8
-#define M_T5_HMA_MAXRSPCNT 0x1fU
-#define V_T5_HMA_MAXRSPCNT(x) ((x) << S_T5_HMA_MAXRSPCNT)
-#define G_T5_HMA_MAXRSPCNT(x) (((x) >> S_T5_HMA_MAXRSPCNT) & M_T5_HMA_MAXRSPCNT)
-
#define A_PCIE_CORE_ROOT_COMPLEX_ERROR_SEVERITY 0x59b4
#define S_RLCS 31
@@ -5825,23 +2950,6 @@
#define V_CRSS(x) ((x) << S_CRSS)
#define F_CRSS V_CRSS(1U)
-#define A_PCIE_T5_HMA_STAT 0x59b4
-
-#define S_HMA_RESPCNT 20
-#define M_HMA_RESPCNT 0x1ffU
-#define V_HMA_RESPCNT(x) ((x) << S_HMA_RESPCNT)
-#define G_HMA_RESPCNT(x) (((x) >> S_HMA_RESPCNT) & M_HMA_RESPCNT)
-
-#define S_HMA_RDREQCNT 12
-#define M_HMA_RDREQCNT 0x3fU
-#define V_HMA_RDREQCNT(x) ((x) << S_HMA_RDREQCNT)
-#define G_HMA_RDREQCNT(x) (((x) >> S_HMA_RDREQCNT) & M_HMA_RDREQCNT)
-
-#define S_HMA_WRREQCNT 0
-#define M_HMA_WRREQCNT 0x1ffU
-#define V_HMA_WRREQCNT(x) ((x) << S_HMA_WRREQCNT)
-#define G_HMA_WRREQCNT(x) (((x) >> S_HMA_WRREQCNT) & M_HMA_WRREQCNT)
-
#define A_PCIE_CORE_ROOT_COMPLEX_INTERRUPT_ENABLE 0x59b8
#define S_RLCI 31
@@ -5888,7 +2996,6 @@
#define V_CRSI(x) ((x) << S_CRSI)
#define F_CRSI V_CRSI(1U)
-#define A_PCIE_T5_HMA_STAT2 0x59b8
#define A_PCIE_CORE_ENDPOINT_STATUS 0x59bc
#define S_PTOM 31
@@ -5931,7 +3038,6 @@
#define V_PMC7(x) ((x) << S_PMC7)
#define F_PMC7 V_PMC7(1U)
-#define A_PCIE_T5_HMA_STAT3 0x59bc
#define A_PCIE_CORE_ENDPOINT_ERROR_SEVERITY 0x59c0
#define S_PTOS 31
@@ -6006,84 +3112,6 @@
#define V_PME7(x) ((x) << S_PME7)
#define F_PME7 V_PME7(1U)
-#define A_PCIE_CGEN 0x59c0
-
-#define S_VPD_DYNAMIC_CGEN 26
-#define V_VPD_DYNAMIC_CGEN(x) ((x) << S_VPD_DYNAMIC_CGEN)
-#define F_VPD_DYNAMIC_CGEN V_VPD_DYNAMIC_CGEN(1U)
-
-#define S_MA_DYNAMIC_CGEN 25
-#define V_MA_DYNAMIC_CGEN(x) ((x) << S_MA_DYNAMIC_CGEN)
-#define F_MA_DYNAMIC_CGEN V_MA_DYNAMIC_CGEN(1U)
-
-#define S_TAGQ_DYNAMIC_CGEN 24
-#define V_TAGQ_DYNAMIC_CGEN(x) ((x) << S_TAGQ_DYNAMIC_CGEN)
-#define F_TAGQ_DYNAMIC_CGEN V_TAGQ_DYNAMIC_CGEN(1U)
-
-#define S_REQCTL_DYNAMIC_CGEN 23
-#define V_REQCTL_DYNAMIC_CGEN(x) ((x) << S_REQCTL_DYNAMIC_CGEN)
-#define F_REQCTL_DYNAMIC_CGEN V_REQCTL_DYNAMIC_CGEN(1U)
-
-#define S_RSPDATAPROC_DYNAMIC_CGEN 22
-#define V_RSPDATAPROC_DYNAMIC_CGEN(x) ((x) << S_RSPDATAPROC_DYNAMIC_CGEN)
-#define F_RSPDATAPROC_DYNAMIC_CGEN V_RSPDATAPROC_DYNAMIC_CGEN(1U)
-
-#define S_RSPRDQ_DYNAMIC_CGEN 21
-#define V_RSPRDQ_DYNAMIC_CGEN(x) ((x) << S_RSPRDQ_DYNAMIC_CGEN)
-#define F_RSPRDQ_DYNAMIC_CGEN V_RSPRDQ_DYNAMIC_CGEN(1U)
-
-#define S_RSPIPIF_DYNAMIC_CGEN 20
-#define V_RSPIPIF_DYNAMIC_CGEN(x) ((x) << S_RSPIPIF_DYNAMIC_CGEN)
-#define F_RSPIPIF_DYNAMIC_CGEN V_RSPIPIF_DYNAMIC_CGEN(1U)
-
-#define S_HMA_STATIC_CGEN 19
-#define V_HMA_STATIC_CGEN(x) ((x) << S_HMA_STATIC_CGEN)
-#define F_HMA_STATIC_CGEN V_HMA_STATIC_CGEN(1U)
-
-#define S_HMA_DYNAMIC_CGEN 18
-#define V_HMA_DYNAMIC_CGEN(x) ((x) << S_HMA_DYNAMIC_CGEN)
-#define F_HMA_DYNAMIC_CGEN V_HMA_DYNAMIC_CGEN(1U)
-
-#define S_CMD_STATIC_CGEN 16
-#define V_CMD_STATIC_CGEN(x) ((x) << S_CMD_STATIC_CGEN)
-#define F_CMD_STATIC_CGEN V_CMD_STATIC_CGEN(1U)
-
-#define S_CMD_DYNAMIC_CGEN 15
-#define V_CMD_DYNAMIC_CGEN(x) ((x) << S_CMD_DYNAMIC_CGEN)
-#define F_CMD_DYNAMIC_CGEN V_CMD_DYNAMIC_CGEN(1U)
-
-#define S_DMA_STATIC_CGEN 13
-#define V_DMA_STATIC_CGEN(x) ((x) << S_DMA_STATIC_CGEN)
-#define F_DMA_STATIC_CGEN V_DMA_STATIC_CGEN(1U)
-
-#define S_DMA_DYNAMIC_CGEN 12
-#define V_DMA_DYNAMIC_CGEN(x) ((x) << S_DMA_DYNAMIC_CGEN)
-#define F_DMA_DYNAMIC_CGEN V_DMA_DYNAMIC_CGEN(1U)
-
-#define S_VFID_SLEEPSTATUS 10
-#define V_VFID_SLEEPSTATUS(x) ((x) << S_VFID_SLEEPSTATUS)
-#define F_VFID_SLEEPSTATUS V_VFID_SLEEPSTATUS(1U)
-
-#define S_VC1_SLEEPSTATUS 9
-#define V_VC1_SLEEPSTATUS(x) ((x) << S_VC1_SLEEPSTATUS)
-#define F_VC1_SLEEPSTATUS V_VC1_SLEEPSTATUS(1U)
-
-#define S_STI_SLEEPSTATUS 8
-#define V_STI_SLEEPSTATUS(x) ((x) << S_STI_SLEEPSTATUS)
-#define F_STI_SLEEPSTATUS V_STI_SLEEPSTATUS(1U)
-
-#define S_VFID_SLEEPREQ 2
-#define V_VFID_SLEEPREQ(x) ((x) << S_VFID_SLEEPREQ)
-#define F_VFID_SLEEPREQ V_VFID_SLEEPREQ(1U)
-
-#define S_VC1_SLEEPREQ 1
-#define V_VC1_SLEEPREQ(x) ((x) << S_VC1_SLEEPREQ)
-#define F_VC1_SLEEPREQ V_VC1_SLEEPREQ(1U)
-
-#define S_STI_SLEEPREQ 0
-#define V_STI_SLEEPREQ(x) ((x) << S_STI_SLEEPREQ)
-#define F_STI_SLEEPREQ V_STI_SLEEPREQ(1U)
-
#define A_PCIE_CORE_ENDPOINT_INTERRUPT_ENABLE 0x59c4
#define S_PTOI 31
@@ -6126,21 +3154,6 @@
#define V_PC7I(x) ((x) << S_PC7I)
#define F_PC7I V_PC7I(1U)
-#define A_PCIE_MA_RSP 0x59c4
-
-#define S_TIMERVALUE 8
-#define M_TIMERVALUE 0xffffffU
-#define V_TIMERVALUE(x) ((x) << S_TIMERVALUE)
-#define G_TIMERVALUE(x) (((x) >> S_TIMERVALUE) & M_TIMERVALUE)
-
-#define S_MAREQTIMEREN 1
-#define V_MAREQTIMEREN(x) ((x) << S_MAREQTIMEREN)
-#define F_MAREQTIMEREN V_MAREQTIMEREN(1U)
-
-#define S_MARSPTIMEREN 0
-#define V_MARSPTIMEREN(x) ((x) << S_MARSPTIMEREN)
-#define F_MARSPTIMEREN V_MARSPTIMEREN(1U)
-
#define A_PCIE_CORE_PCI_POWER_MANAGEMENT_CONTROL_1 0x59c8
#define S_TOAK 31
@@ -6163,52 +3176,6 @@
#define V_ALET(x) ((x) << S_ALET)
#define F_ALET V_ALET(1U)
-#define A_PCIE_HPRD 0x59c8
-
-#define S_NPH_CREDITSAVAILVC0 19
-#define M_NPH_CREDITSAVAILVC0 0x3U
-#define V_NPH_CREDITSAVAILVC0(x) ((x) << S_NPH_CREDITSAVAILVC0)
-#define G_NPH_CREDITSAVAILVC0(x) (((x) >> S_NPH_CREDITSAVAILVC0) & M_NPH_CREDITSAVAILVC0)
-
-#define S_NPD_CREDITSAVAILVC0 17
-#define M_NPD_CREDITSAVAILVC0 0x3U
-#define V_NPD_CREDITSAVAILVC0(x) ((x) << S_NPD_CREDITSAVAILVC0)
-#define G_NPD_CREDITSAVAILVC0(x) (((x) >> S_NPD_CREDITSAVAILVC0) & M_NPD_CREDITSAVAILVC0)
-
-#define S_NPH_CREDITSAVAILVC1 15
-#define M_NPH_CREDITSAVAILVC1 0x3U
-#define V_NPH_CREDITSAVAILVC1(x) ((x) << S_NPH_CREDITSAVAILVC1)
-#define G_NPH_CREDITSAVAILVC1(x) (((x) >> S_NPH_CREDITSAVAILVC1) & M_NPH_CREDITSAVAILVC1)
-
-#define S_NPD_CREDITSAVAILVC1 13
-#define M_NPD_CREDITSAVAILVC1 0x3U
-#define V_NPD_CREDITSAVAILVC1(x) ((x) << S_NPD_CREDITSAVAILVC1)
-#define G_NPD_CREDITSAVAILVC1(x) (((x) >> S_NPD_CREDITSAVAILVC1) & M_NPD_CREDITSAVAILVC1)
-
-#define S_NPH_CREDITSREQUIRED 11
-#define M_NPH_CREDITSREQUIRED 0x3U
-#define V_NPH_CREDITSREQUIRED(x) ((x) << S_NPH_CREDITSREQUIRED)
-#define G_NPH_CREDITSREQUIRED(x) (((x) >> S_NPH_CREDITSREQUIRED) & M_NPH_CREDITSREQUIRED)
-
-#define S_NPD_CREDITSREQUIRED 9
-#define M_NPD_CREDITSREQUIRED 0x3U
-#define V_NPD_CREDITSREQUIRED(x) ((x) << S_NPD_CREDITSREQUIRED)
-#define G_NPD_CREDITSREQUIRED(x) (((x) >> S_NPD_CREDITSREQUIRED) & M_NPD_CREDITSREQUIRED)
-
-#define S_REQBURSTCOUNT 5
-#define M_REQBURSTCOUNT 0xfU
-#define V_REQBURSTCOUNT(x) ((x) << S_REQBURSTCOUNT)
-#define G_REQBURSTCOUNT(x) (((x) >> S_REQBURSTCOUNT) & M_REQBURSTCOUNT)
-
-#define S_REQBURSTFREQUENCY 1
-#define M_REQBURSTFREQUENCY 0xfU
-#define V_REQBURSTFREQUENCY(x) ((x) << S_REQBURSTFREQUENCY)
-#define G_REQBURSTFREQUENCY(x) (((x) >> S_REQBURSTFREQUENCY) & M_REQBURSTFREQUENCY)
-
-#define S_ENABLEVC1 0
-#define V_ENABLEVC1(x) ((x) << S_ENABLEVC1)
-#define F_ENABLEVC1 V_ENABLEVC1(1U)
-
#define A_PCIE_CORE_PCI_POWER_MANAGEMENT_CONTROL_2 0x59cc
#define S_CPM0 30
@@ -6292,204 +3259,7 @@
#define G_OPM7(x) (((x) >> S_OPM7) & M_OPM7)
#define A_PCIE_CORE_GENERAL_PURPOSE_CONTROL_1 0x59d0
-#define A_PCIE_PERR_GROUP 0x59d0
-
-#define S_MST_DATAPATHPERR 25
-#define V_MST_DATAPATHPERR(x) ((x) << S_MST_DATAPATHPERR)
-#define F_MST_DATAPATHPERR V_MST_DATAPATHPERR(1U)
-
-#define S_MST_RSPRDQPERR 24
-#define V_MST_RSPRDQPERR(x) ((x) << S_MST_RSPRDQPERR)
-#define F_MST_RSPRDQPERR V_MST_RSPRDQPERR(1U)
-
-#define S_IP_RXPERR 23
-#define V_IP_RXPERR(x) ((x) << S_IP_RXPERR)
-#define F_IP_RXPERR V_IP_RXPERR(1U)
-
-#define S_IP_BACKTXPERR 22
-#define V_IP_BACKTXPERR(x) ((x) << S_IP_BACKTXPERR)
-#define F_IP_BACKTXPERR V_IP_BACKTXPERR(1U)
-
-#define S_IP_FRONTTXPERR 21
-#define V_IP_FRONTTXPERR(x) ((x) << S_IP_FRONTTXPERR)
-#define F_IP_FRONTTXPERR V_IP_FRONTTXPERR(1U)
-
-#define S_TRGT1_FIDLKUPHDRPERR 20
-#define V_TRGT1_FIDLKUPHDRPERR(x) ((x) << S_TRGT1_FIDLKUPHDRPERR)
-#define F_TRGT1_FIDLKUPHDRPERR V_TRGT1_FIDLKUPHDRPERR(1U)
-
-#define S_TRGT1_ALINDDATAPERR 19
-#define V_TRGT1_ALINDDATAPERR(x) ((x) << S_TRGT1_ALINDDATAPERR)
-#define F_TRGT1_ALINDDATAPERR V_TRGT1_ALINDDATAPERR(1U)
-
-#define S_TRGT1_UNALINDATAPERR 18
-#define V_TRGT1_UNALINDATAPERR(x) ((x) << S_TRGT1_UNALINDATAPERR)
-#define F_TRGT1_UNALINDATAPERR V_TRGT1_UNALINDATAPERR(1U)
-
-#define S_TRGT1_REQDATAPERR 17
-#define V_TRGT1_REQDATAPERR(x) ((x) << S_TRGT1_REQDATAPERR)
-#define F_TRGT1_REQDATAPERR V_TRGT1_REQDATAPERR(1U)
-
-#define S_TRGT1_REQHDRPERR 16
-#define V_TRGT1_REQHDRPERR(x) ((x) << S_TRGT1_REQHDRPERR)
-#define F_TRGT1_REQHDRPERR V_TRGT1_REQHDRPERR(1U)
-
-#define S_IPRXDATA_VC1PERR 15
-#define V_IPRXDATA_VC1PERR(x) ((x) << S_IPRXDATA_VC1PERR)
-#define F_IPRXDATA_VC1PERR V_IPRXDATA_VC1PERR(1U)
-
-#define S_IPRXDATA_VC0PERR 14
-#define V_IPRXDATA_VC0PERR(x) ((x) << S_IPRXDATA_VC0PERR)
-#define F_IPRXDATA_VC0PERR V_IPRXDATA_VC0PERR(1U)
-
-#define S_IPRXHDR_VC1PERR 13
-#define V_IPRXHDR_VC1PERR(x) ((x) << S_IPRXHDR_VC1PERR)
-#define F_IPRXHDR_VC1PERR V_IPRXHDR_VC1PERR(1U)
-
-#define S_IPRXHDR_VC0PERR 12
-#define V_IPRXHDR_VC0PERR(x) ((x) << S_IPRXHDR_VC0PERR)
-#define F_IPRXHDR_VC0PERR V_IPRXHDR_VC0PERR(1U)
-
-#define S_MA_RSPDATAPERR 11
-#define V_MA_RSPDATAPERR(x) ((x) << S_MA_RSPDATAPERR)
-#define F_MA_RSPDATAPERR V_MA_RSPDATAPERR(1U)
-
-#define S_MA_CPLTAGQPERR 10
-#define V_MA_CPLTAGQPERR(x) ((x) << S_MA_CPLTAGQPERR)
-#define F_MA_CPLTAGQPERR V_MA_CPLTAGQPERR(1U)
-
-#define S_MA_REQTAGQPERR 9
-#define V_MA_REQTAGQPERR(x) ((x) << S_MA_REQTAGQPERR)
-#define F_MA_REQTAGQPERR V_MA_REQTAGQPERR(1U)
-
-#define S_PIOREQ_BAR2CTLPERR 8
-#define V_PIOREQ_BAR2CTLPERR(x) ((x) << S_PIOREQ_BAR2CTLPERR)
-#define F_PIOREQ_BAR2CTLPERR V_PIOREQ_BAR2CTLPERR(1U)
-
-#define S_PIOREQ_MEMCTLPERR 7
-#define V_PIOREQ_MEMCTLPERR(x) ((x) << S_PIOREQ_MEMCTLPERR)
-#define F_PIOREQ_MEMCTLPERR V_PIOREQ_MEMCTLPERR(1U)
-
-#define S_PIOREQ_PLMCTLPERR 6
-#define V_PIOREQ_PLMCTLPERR(x) ((x) << S_PIOREQ_PLMCTLPERR)
-#define F_PIOREQ_PLMCTLPERR V_PIOREQ_PLMCTLPERR(1U)
-
-#define S_PIOREQ_BAR2DATAPERR 5
-#define V_PIOREQ_BAR2DATAPERR(x) ((x) << S_PIOREQ_BAR2DATAPERR)
-#define F_PIOREQ_BAR2DATAPERR V_PIOREQ_BAR2DATAPERR(1U)
-
-#define S_PIOREQ_MEMDATAPERR 4
-#define V_PIOREQ_MEMDATAPERR(x) ((x) << S_PIOREQ_MEMDATAPERR)
-#define F_PIOREQ_MEMDATAPERR V_PIOREQ_MEMDATAPERR(1U)
-
-#define S_PIOREQ_PLMDATAPERR 3
-#define V_PIOREQ_PLMDATAPERR(x) ((x) << S_PIOREQ_PLMDATAPERR)
-#define F_PIOREQ_PLMDATAPERR V_PIOREQ_PLMDATAPERR(1U)
-
-#define S_PIOCPL_CTLPERR 2
-#define V_PIOCPL_CTLPERR(x) ((x) << S_PIOCPL_CTLPERR)
-#define F_PIOCPL_CTLPERR V_PIOCPL_CTLPERR(1U)
-
-#define S_PIOCPL_DATAPERR 1
-#define V_PIOCPL_DATAPERR(x) ((x) << S_PIOCPL_DATAPERR)
-#define F_PIOCPL_DATAPERR V_PIOCPL_DATAPERR(1U)
-
-#define S_PIOCPL_PLMRSPPERR 0
-#define V_PIOCPL_PLMRSPPERR(x) ((x) << S_PIOCPL_PLMRSPPERR)
-#define F_PIOCPL_PLMRSPPERR V_PIOCPL_PLMRSPPERR(1U)
-
#define A_PCIE_CORE_GENERAL_PURPOSE_CONTROL_2 0x59d4
-#define A_PCIE_RSP_ERR_INT_LOG_EN 0x59d4
-
-#define S_CPLSTATUSINTEN 12
-#define V_CPLSTATUSINTEN(x) ((x) << S_CPLSTATUSINTEN)
-#define F_CPLSTATUSINTEN V_CPLSTATUSINTEN(1U)
-
-#define S_REQTIMEOUTINTEN 11
-#define V_REQTIMEOUTINTEN(x) ((x) << S_REQTIMEOUTINTEN)
-#define F_REQTIMEOUTINTEN V_REQTIMEOUTINTEN(1U)
-
-#define S_DISABLEDINTEN 10
-#define V_DISABLEDINTEN(x) ((x) << S_DISABLEDINTEN)
-#define F_DISABLEDINTEN V_DISABLEDINTEN(1U)
-
-#define S_RSPDROPFLRINTEN 9
-#define V_RSPDROPFLRINTEN(x) ((x) << S_RSPDROPFLRINTEN)
-#define F_RSPDROPFLRINTEN V_RSPDROPFLRINTEN(1U)
-
-#define S_REQUNDERFLRINTEN 8
-#define V_REQUNDERFLRINTEN(x) ((x) << S_REQUNDERFLRINTEN)
-#define F_REQUNDERFLRINTEN V_REQUNDERFLRINTEN(1U)
-
-#define S_CPLSTATUSLOGEN 4
-#define V_CPLSTATUSLOGEN(x) ((x) << S_CPLSTATUSLOGEN)
-#define F_CPLSTATUSLOGEN V_CPLSTATUSLOGEN(1U)
-
-#define S_TIMEOUTLOGEN 3
-#define V_TIMEOUTLOGEN(x) ((x) << S_TIMEOUTLOGEN)
-#define F_TIMEOUTLOGEN V_TIMEOUTLOGEN(1U)
-
-#define S_DISABLEDLOGEN 2
-#define V_DISABLEDLOGEN(x) ((x) << S_DISABLEDLOGEN)
-#define F_DISABLEDLOGEN V_DISABLEDLOGEN(1U)
-
-#define S_RSPDROPFLRLOGEN 1
-#define V_RSPDROPFLRLOGEN(x) ((x) << S_RSPDROPFLRLOGEN)
-#define F_RSPDROPFLRLOGEN V_RSPDROPFLRLOGEN(1U)
-
-#define S_REQUNDERFLRLOGEN 0
-#define V_REQUNDERFLRLOGEN(x) ((x) << S_REQUNDERFLRLOGEN)
-#define F_REQUNDERFLRLOGEN V_REQUNDERFLRLOGEN(1U)
-
-#define A_PCIE_RSP_ERR_LOG1 0x59d8
-
-#define S_REQTAG 25
-#define M_REQTAG 0x7fU
-#define V_REQTAG(x) ((x) << S_REQTAG)
-#define G_REQTAG(x) (((x) >> S_REQTAG) & M_REQTAG)
-
-#define S_CID 22
-#define M_CID 0x7U
-#define V_CID(x) ((x) << S_CID)
-#define G_CID(x) (((x) >> S_CID) & M_CID)
-
-#define S_CHNUM 19
-#define M_CHNUM 0x7U
-#define V_CHNUM(x) ((x) << S_CHNUM)
-#define G_CHNUM(x) (((x) >> S_CHNUM) & M_CHNUM)
-
-#define S_BYTELEN 6
-#define M_BYTELEN 0x1fffU
-#define V_BYTELEN(x) ((x) << S_BYTELEN)
-#define G_BYTELEN(x) (((x) >> S_BYTELEN) & M_BYTELEN)
-
-#define S_REASON 3
-#define M_REASON 0x7U
-#define V_REASON(x) ((x) << S_REASON)
-#define G_REASON(x) (((x) >> S_REASON) & M_REASON)
-
-#define S_CPLSTATUS 0
-#define M_CPLSTATUS 0x7U
-#define V_CPLSTATUS(x) ((x) << S_CPLSTATUS)
-#define G_CPLSTATUS(x) (((x) >> S_CPLSTATUS) & M_CPLSTATUS)
-
-#define A_PCIE_RSP_ERR_LOG2 0x59dc
-
-#define S_LOGVALID 31
-#define V_LOGVALID(x) ((x) << S_LOGVALID)
-#define F_LOGVALID V_LOGVALID(1U)
-
-#define S_ADDR10B 8
-#define M_ADDR10B 0x3ffU
-#define V_ADDR10B(x) ((x) << S_ADDR10B)
-#define G_ADDR10B(x) (((x) >> S_ADDR10B) & M_ADDR10B)
-
-#define S_REQVFID 0
-#define M_REQVFID 0xffU
-#define V_REQVFID(x) ((x) << S_REQVFID)
-#define G_REQVFID(x) (((x) >> S_REQVFID) & M_REQVFID)
-
-#define A_PCIE_CHANGESET 0x59fc
#define A_PCIE_REVISION 0x5a00
#define A_PCIE_PDEBUG_INDEX 0x5a04
@@ -6632,12 +3402,6 @@
#define A_PCIE_BUS_MST_STAT_2 0x5a68
#define A_PCIE_BUS_MST_STAT_3 0x5a6c
#define A_PCIE_BUS_MST_STAT_4 0x5a70
-
-#define S_BUSMST_135_128 0
-#define M_BUSMST_135_128 0xffU
-#define V_BUSMST_135_128(x) ((x) << S_BUSMST_135_128)
-#define G_BUSMST_135_128(x) (((x) >> S_BUSMST_135_128) & M_BUSMST_135_128)
-
#define A_PCIE_BUS_MST_STAT_5 0x5a74
#define A_PCIE_BUS_MST_STAT_6 0x5a78
#define A_PCIE_BUS_MST_STAT_7 0x5a7c
@@ -6646,53 +3410,9 @@
#define A_PCIE_RSP_ERR_STAT_2 0x5a88
#define A_PCIE_RSP_ERR_STAT_3 0x5a8c
#define A_PCIE_RSP_ERR_STAT_4 0x5a90
-
-#define S_RSPERR_135_128 0
-#define M_RSPERR_135_128 0xffU
-#define V_RSPERR_135_128(x) ((x) << S_RSPERR_135_128)
-#define G_RSPERR_135_128(x) (((x) >> S_RSPERR_135_128) & M_RSPERR_135_128)
-
#define A_PCIE_RSP_ERR_STAT_5 0x5a94
-#define A_PCIE_DBI_TIMEOUT_CTL 0x5a94
-
-#define S_DBI_TIMER 0
-#define M_DBI_TIMER 0xffffU
-#define V_DBI_TIMER(x) ((x) << S_DBI_TIMER)
-#define G_DBI_TIMER(x) (((x) >> S_DBI_TIMER) & M_DBI_TIMER)
-
#define A_PCIE_RSP_ERR_STAT_6 0x5a98
-#define A_PCIE_DBI_TIMEOUT_STATUS0 0x5a98
#define A_PCIE_RSP_ERR_STAT_7 0x5a9c
-#define A_PCIE_DBI_TIMEOUT_STATUS1 0x5a9c
-
-#define S_SOURCE 16
-#define M_SOURCE 0x3U
-#define V_SOURCE(x) ((x) << S_SOURCE)
-#define G_SOURCE(x) (((x) >> S_SOURCE) & M_SOURCE)
-
-#define S_DBI_WRITE 12
-#define M_DBI_WRITE 0xfU
-#define V_DBI_WRITE(x) ((x) << S_DBI_WRITE)
-#define G_DBI_WRITE(x) (((x) >> S_DBI_WRITE) & M_DBI_WRITE)
-
-#define S_DBI_CS2 11
-#define V_DBI_CS2(x) ((x) << S_DBI_CS2)
-#define F_DBI_CS2 V_DBI_CS2(1U)
-
-#define S_DBI_PF 8
-#define M_DBI_PF 0x7U
-#define V_DBI_PF(x) ((x) << S_DBI_PF)
-#define G_DBI_PF(x) (((x) >> S_DBI_PF) & M_DBI_PF)
-
-#define S_PL_TOVFVLD 7
-#define V_PL_TOVFVLD(x) ((x) << S_PL_TOVFVLD)
-#define F_PL_TOVFVLD V_PL_TOVFVLD(1U)
-
-#define S_PL_TOVF 0
-#define M_PL_TOVF 0x7fU
-#define V_PL_TOVF(x) ((x) << S_PL_TOVF)
-#define G_PL_TOVF(x) (((x) >> S_PL_TOVF) & M_PL_TOVF)
-
#define A_PCIE_MSI_EN_0 0x5aa0
#define A_PCIE_MSI_EN_1 0x5aa4
#define A_PCIE_MSI_EN_2 0x5aa8
@@ -6726,388 +3446,6 @@
#define V_MAXBUFWRREQ(x) ((x) << S_MAXBUFWRREQ)
#define G_MAXBUFWRREQ(x) (((x) >> S_MAXBUFWRREQ) & M_MAXBUFWRREQ)
-#define A_PCIE_PB_CTL 0x5b94
-
-#define S_PB_SEL 16
-#define M_PB_SEL 0xffU
-#define V_PB_SEL(x) ((x) << S_PB_SEL)
-#define G_PB_SEL(x) (((x) >> S_PB_SEL) & M_PB_SEL)
-
-#define S_PB_SELREG 8
-#define M_PB_SELREG 0xffU
-#define V_PB_SELREG(x) ((x) << S_PB_SELREG)
-#define G_PB_SELREG(x) (((x) >> S_PB_SELREG) & M_PB_SELREG)
-
-#define S_PB_FUNC 0
-#define M_PB_FUNC 0x7U
-#define V_PB_FUNC(x) ((x) << S_PB_FUNC)
-#define G_PB_FUNC(x) (((x) >> S_PB_FUNC) & M_PB_FUNC)
-
-#define A_PCIE_PB_DATA 0x5b98
-#define A_PCIE_CUR_LINK 0x5b9c
-
-#define S_CFGINITCOEFFDONESEEN 22
-#define V_CFGINITCOEFFDONESEEN(x) ((x) << S_CFGINITCOEFFDONESEEN)
-#define F_CFGINITCOEFFDONESEEN V_CFGINITCOEFFDONESEEN(1U)
-
-#define S_CFGINITCOEFFDONE 21
-#define V_CFGINITCOEFFDONE(x) ((x) << S_CFGINITCOEFFDONE)
-#define F_CFGINITCOEFFDONE V_CFGINITCOEFFDONE(1U)
-
-#define S_XMLH_LINK_UP 20
-#define V_XMLH_LINK_UP(x) ((x) << S_XMLH_LINK_UP)
-#define F_XMLH_LINK_UP V_XMLH_LINK_UP(1U)
-
-#define S_PM_LINKST_IN_L0S 19
-#define V_PM_LINKST_IN_L0S(x) ((x) << S_PM_LINKST_IN_L0S)
-#define F_PM_LINKST_IN_L0S V_PM_LINKST_IN_L0S(1U)
-
-#define S_PM_LINKST_IN_L1 18
-#define V_PM_LINKST_IN_L1(x) ((x) << S_PM_LINKST_IN_L1)
-#define F_PM_LINKST_IN_L1 V_PM_LINKST_IN_L1(1U)
-
-#define S_PM_LINKST_IN_L2 17
-#define V_PM_LINKST_IN_L2(x) ((x) << S_PM_LINKST_IN_L2)
-#define F_PM_LINKST_IN_L2 V_PM_LINKST_IN_L2(1U)
-
-#define S_PM_LINKST_L2_EXIT 16
-#define V_PM_LINKST_L2_EXIT(x) ((x) << S_PM_LINKST_L2_EXIT)
-#define F_PM_LINKST_L2_EXIT V_PM_LINKST_L2_EXIT(1U)
-
-#define S_XMLH_IN_RL0S 15
-#define V_XMLH_IN_RL0S(x) ((x) << S_XMLH_IN_RL0S)
-#define F_XMLH_IN_RL0S V_XMLH_IN_RL0S(1U)
-
-#define S_XMLH_LTSSM_STATE_RCVRY_EQ 14
-#define V_XMLH_LTSSM_STATE_RCVRY_EQ(x) ((x) << S_XMLH_LTSSM_STATE_RCVRY_EQ)
-#define F_XMLH_LTSSM_STATE_RCVRY_EQ V_XMLH_LTSSM_STATE_RCVRY_EQ(1U)
-
-#define S_NEGOTIATEDWIDTH 8
-#define M_NEGOTIATEDWIDTH 0x3fU
-#define V_NEGOTIATEDWIDTH(x) ((x) << S_NEGOTIATEDWIDTH)
-#define G_NEGOTIATEDWIDTH(x) (((x) >> S_NEGOTIATEDWIDTH) & M_NEGOTIATEDWIDTH)
-
-#define S_ACTIVELANES 0
-#define M_ACTIVELANES 0xffU
-#define V_ACTIVELANES(x) ((x) << S_ACTIVELANES)
-#define G_ACTIVELANES(x) (((x) >> S_ACTIVELANES) & M_ACTIVELANES)
-
-#define A_PCIE_PHY_REQRXPWR 0x5ba0
-
-#define S_LNH_RXSTATEDONE 31
-#define V_LNH_RXSTATEDONE(x) ((x) << S_LNH_RXSTATEDONE)
-#define F_LNH_RXSTATEDONE V_LNH_RXSTATEDONE(1U)
-
-#define S_LNH_RXSTATEREQ 30
-#define V_LNH_RXSTATEREQ(x) ((x) << S_LNH_RXSTATEREQ)
-#define F_LNH_RXSTATEREQ V_LNH_RXSTATEREQ(1U)
-
-#define S_LNH_RXPWRSTATE 28
-#define M_LNH_RXPWRSTATE 0x3U
-#define V_LNH_RXPWRSTATE(x) ((x) << S_LNH_RXPWRSTATE)
-#define G_LNH_RXPWRSTATE(x) (((x) >> S_LNH_RXPWRSTATE) & M_LNH_RXPWRSTATE)
-
-#define S_LNG_RXSTATEDONE 27
-#define V_LNG_RXSTATEDONE(x) ((x) << S_LNG_RXSTATEDONE)
-#define F_LNG_RXSTATEDONE V_LNG_RXSTATEDONE(1U)
-
-#define S_LNG_RXSTATEREQ 26
-#define V_LNG_RXSTATEREQ(x) ((x) << S_LNG_RXSTATEREQ)
-#define F_LNG_RXSTATEREQ V_LNG_RXSTATEREQ(1U)
-
-#define S_LNG_RXPWRSTATE 24
-#define M_LNG_RXPWRSTATE 0x3U
-#define V_LNG_RXPWRSTATE(x) ((x) << S_LNG_RXPWRSTATE)
-#define G_LNG_RXPWRSTATE(x) (((x) >> S_LNG_RXPWRSTATE) & M_LNG_RXPWRSTATE)
-
-#define S_LNF_RXSTATEDONE 23
-#define V_LNF_RXSTATEDONE(x) ((x) << S_LNF_RXSTATEDONE)
-#define F_LNF_RXSTATEDONE V_LNF_RXSTATEDONE(1U)
-
-#define S_LNF_RXSTATEREQ 22
-#define V_LNF_RXSTATEREQ(x) ((x) << S_LNF_RXSTATEREQ)
-#define F_LNF_RXSTATEREQ V_LNF_RXSTATEREQ(1U)
-
-#define S_LNF_RXPWRSTATE 20
-#define M_LNF_RXPWRSTATE 0x3U
-#define V_LNF_RXPWRSTATE(x) ((x) << S_LNF_RXPWRSTATE)
-#define G_LNF_RXPWRSTATE(x) (((x) >> S_LNF_RXPWRSTATE) & M_LNF_RXPWRSTATE)
-
-#define S_LNE_RXSTATEDONE 19
-#define V_LNE_RXSTATEDONE(x) ((x) << S_LNE_RXSTATEDONE)
-#define F_LNE_RXSTATEDONE V_LNE_RXSTATEDONE(1U)
-
-#define S_LNE_RXSTATEREQ 18
-#define V_LNE_RXSTATEREQ(x) ((x) << S_LNE_RXSTATEREQ)
-#define F_LNE_RXSTATEREQ V_LNE_RXSTATEREQ(1U)
-
-#define S_LNE_RXPWRSTATE 16
-#define M_LNE_RXPWRSTATE 0x3U
-#define V_LNE_RXPWRSTATE(x) ((x) << S_LNE_RXPWRSTATE)
-#define G_LNE_RXPWRSTATE(x) (((x) >> S_LNE_RXPWRSTATE) & M_LNE_RXPWRSTATE)
-
-#define S_LND_RXSTATEDONE 15
-#define V_LND_RXSTATEDONE(x) ((x) << S_LND_RXSTATEDONE)
-#define F_LND_RXSTATEDONE V_LND_RXSTATEDONE(1U)
-
-#define S_LND_RXSTATEREQ 14
-#define V_LND_RXSTATEREQ(x) ((x) << S_LND_RXSTATEREQ)
-#define F_LND_RXSTATEREQ V_LND_RXSTATEREQ(1U)
-
-#define S_LND_RXPWRSTATE 12
-#define M_LND_RXPWRSTATE 0x3U
-#define V_LND_RXPWRSTATE(x) ((x) << S_LND_RXPWRSTATE)
-#define G_LND_RXPWRSTATE(x) (((x) >> S_LND_RXPWRSTATE) & M_LND_RXPWRSTATE)
-
-#define S_LNC_RXSTATEDONE 11
-#define V_LNC_RXSTATEDONE(x) ((x) << S_LNC_RXSTATEDONE)
-#define F_LNC_RXSTATEDONE V_LNC_RXSTATEDONE(1U)
-
-#define S_LNC_RXSTATEREQ 10
-#define V_LNC_RXSTATEREQ(x) ((x) << S_LNC_RXSTATEREQ)
-#define F_LNC_RXSTATEREQ V_LNC_RXSTATEREQ(1U)
-
-#define S_LNC_RXPWRSTATE 8
-#define M_LNC_RXPWRSTATE 0x3U
-#define V_LNC_RXPWRSTATE(x) ((x) << S_LNC_RXPWRSTATE)
-#define G_LNC_RXPWRSTATE(x) (((x) >> S_LNC_RXPWRSTATE) & M_LNC_RXPWRSTATE)
-
-#define S_LNB_RXSTATEDONE 7
-#define V_LNB_RXSTATEDONE(x) ((x) << S_LNB_RXSTATEDONE)
-#define F_LNB_RXSTATEDONE V_LNB_RXSTATEDONE(1U)
-
-#define S_LNB_RXSTATEREQ 6
-#define V_LNB_RXSTATEREQ(x) ((x) << S_LNB_RXSTATEREQ)
-#define F_LNB_RXSTATEREQ V_LNB_RXSTATEREQ(1U)
-
-#define S_LNB_RXPWRSTATE 4
-#define M_LNB_RXPWRSTATE 0x3U
-#define V_LNB_RXPWRSTATE(x) ((x) << S_LNB_RXPWRSTATE)
-#define G_LNB_RXPWRSTATE(x) (((x) >> S_LNB_RXPWRSTATE) & M_LNB_RXPWRSTATE)
-
-#define S_LNA_RXSTATEDONE 3
-#define V_LNA_RXSTATEDONE(x) ((x) << S_LNA_RXSTATEDONE)
-#define F_LNA_RXSTATEDONE V_LNA_RXSTATEDONE(1U)
-
-#define S_LNA_RXSTATEREQ 2
-#define V_LNA_RXSTATEREQ(x) ((x) << S_LNA_RXSTATEREQ)
-#define F_LNA_RXSTATEREQ V_LNA_RXSTATEREQ(1U)
-
-#define S_LNA_RXPWRSTATE 0
-#define M_LNA_RXPWRSTATE 0x3U
-#define V_LNA_RXPWRSTATE(x) ((x) << S_LNA_RXPWRSTATE)
-#define G_LNA_RXPWRSTATE(x) (((x) >> S_LNA_RXPWRSTATE) & M_LNA_RXPWRSTATE)
-
-#define A_PCIE_PHY_CURRXPWR 0x5ba4
-#define A_PCIE_PHY_GEN3_AE0 0x5ba8
-
-#define S_LND_STAT 28
-#define M_LND_STAT 0x7U
-#define V_LND_STAT(x) ((x) << S_LND_STAT)
-#define G_LND_STAT(x) (((x) >> S_LND_STAT) & M_LND_STAT)
-
-#define S_LND_CMD 24
-#define M_LND_CMD 0x7U
-#define V_LND_CMD(x) ((x) << S_LND_CMD)
-#define G_LND_CMD(x) (((x) >> S_LND_CMD) & M_LND_CMD)
-
-#define S_LNC_STAT 20
-#define M_LNC_STAT 0x7U
-#define V_LNC_STAT(x) ((x) << S_LNC_STAT)
-#define G_LNC_STAT(x) (((x) >> S_LNC_STAT) & M_LNC_STAT)
-
-#define S_LNC_CMD 16
-#define M_LNC_CMD 0x7U
-#define V_LNC_CMD(x) ((x) << S_LNC_CMD)
-#define G_LNC_CMD(x) (((x) >> S_LNC_CMD) & M_LNC_CMD)
-
-#define S_LNB_STAT 12
-#define M_LNB_STAT 0x7U
-#define V_LNB_STAT(x) ((x) << S_LNB_STAT)
-#define G_LNB_STAT(x) (((x) >> S_LNB_STAT) & M_LNB_STAT)
-
-#define S_LNB_CMD 8
-#define M_LNB_CMD 0x7U
-#define V_LNB_CMD(x) ((x) << S_LNB_CMD)
-#define G_LNB_CMD(x) (((x) >> S_LNB_CMD) & M_LNB_CMD)
-
-#define S_LNA_STAT 4
-#define M_LNA_STAT 0x7U
-#define V_LNA_STAT(x) ((x) << S_LNA_STAT)
-#define G_LNA_STAT(x) (((x) >> S_LNA_STAT) & M_LNA_STAT)
-
-#define S_LNA_CMD 0
-#define M_LNA_CMD 0x7U
-#define V_LNA_CMD(x) ((x) << S_LNA_CMD)
-#define G_LNA_CMD(x) (((x) >> S_LNA_CMD) & M_LNA_CMD)
-
-#define A_PCIE_PHY_GEN3_AE1 0x5bac
-
-#define S_LNH_STAT 28
-#define M_LNH_STAT 0x7U
-#define V_LNH_STAT(x) ((x) << S_LNH_STAT)
-#define G_LNH_STAT(x) (((x) >> S_LNH_STAT) & M_LNH_STAT)
-
-#define S_LNH_CMD 24
-#define M_LNH_CMD 0x7U
-#define V_LNH_CMD(x) ((x) << S_LNH_CMD)
-#define G_LNH_CMD(x) (((x) >> S_LNH_CMD) & M_LNH_CMD)
-
-#define S_LNG_STAT 20
-#define M_LNG_STAT 0x7U
-#define V_LNG_STAT(x) ((x) << S_LNG_STAT)
-#define G_LNG_STAT(x) (((x) >> S_LNG_STAT) & M_LNG_STAT)
-
-#define S_LNG_CMD 16
-#define M_LNG_CMD 0x7U
-#define V_LNG_CMD(x) ((x) << S_LNG_CMD)
-#define G_LNG_CMD(x) (((x) >> S_LNG_CMD) & M_LNG_CMD)
-
-#define S_LNF_STAT 12
-#define M_LNF_STAT 0x7U
-#define V_LNF_STAT(x) ((x) << S_LNF_STAT)
-#define G_LNF_STAT(x) (((x) >> S_LNF_STAT) & M_LNF_STAT)
-
-#define S_LNF_CMD 8
-#define M_LNF_CMD 0x7U
-#define V_LNF_CMD(x) ((x) << S_LNF_CMD)
-#define G_LNF_CMD(x) (((x) >> S_LNF_CMD) & M_LNF_CMD)
-
-#define S_LNE_STAT 4
-#define M_LNE_STAT 0x7U
-#define V_LNE_STAT(x) ((x) << S_LNE_STAT)
-#define G_LNE_STAT(x) (((x) >> S_LNE_STAT) & M_LNE_STAT)
-
-#define S_LNE_CMD 0
-#define M_LNE_CMD 0x7U
-#define V_LNE_CMD(x) ((x) << S_LNE_CMD)
-#define G_LNE_CMD(x) (((x) >> S_LNE_CMD) & M_LNE_CMD)
-
-#define A_PCIE_PHY_FS_LF0 0x5bb0
-
-#define S_LANE1LF 24
-#define M_LANE1LF 0x3fU
-#define V_LANE1LF(x) ((x) << S_LANE1LF)
-#define G_LANE1LF(x) (((x) >> S_LANE1LF) & M_LANE1LF)
-
-#define S_LANE1FS 16
-#define M_LANE1FS 0x3fU
-#define V_LANE1FS(x) ((x) << S_LANE1FS)
-#define G_LANE1FS(x) (((x) >> S_LANE1FS) & M_LANE1FS)
-
-#define S_LANE0LF 8
-#define M_LANE0LF 0x3fU
-#define V_LANE0LF(x) ((x) << S_LANE0LF)
-#define G_LANE0LF(x) (((x) >> S_LANE0LF) & M_LANE0LF)
-
-#define S_LANE0FS 0
-#define M_LANE0FS 0x3fU
-#define V_LANE0FS(x) ((x) << S_LANE0FS)
-#define G_LANE0FS(x) (((x) >> S_LANE0FS) & M_LANE0FS)
-
-#define A_PCIE_PHY_FS_LF1 0x5bb4
-
-#define S_LANE3LF 24
-#define M_LANE3LF 0x3fU
-#define V_LANE3LF(x) ((x) << S_LANE3LF)
-#define G_LANE3LF(x) (((x) >> S_LANE3LF) & M_LANE3LF)
-
-#define S_LANE3FS 16
-#define M_LANE3FS 0x3fU
-#define V_LANE3FS(x) ((x) << S_LANE3FS)
-#define G_LANE3FS(x) (((x) >> S_LANE3FS) & M_LANE3FS)
-
-#define S_LANE2LF 8
-#define M_LANE2LF 0x3fU
-#define V_LANE2LF(x) ((x) << S_LANE2LF)
-#define G_LANE2LF(x) (((x) >> S_LANE2LF) & M_LANE2LF)
-
-#define S_LANE2FS 0
-#define M_LANE2FS 0x3fU
-#define V_LANE2FS(x) ((x) << S_LANE2FS)
-#define G_LANE2FS(x) (((x) >> S_LANE2FS) & M_LANE2FS)
-
-#define A_PCIE_PHY_FS_LF2 0x5bb8
-
-#define S_LANE5LF 24
-#define M_LANE5LF 0x3fU
-#define V_LANE5LF(x) ((x) << S_LANE5LF)
-#define G_LANE5LF(x) (((x) >> S_LANE5LF) & M_LANE5LF)
-
-#define S_LANE5FS 16
-#define M_LANE5FS 0x3fU
-#define V_LANE5FS(x) ((x) << S_LANE5FS)
-#define G_LANE5FS(x) (((x) >> S_LANE5FS) & M_LANE5FS)
-
-#define S_LANE4LF 8
-#define M_LANE4LF 0x3fU
-#define V_LANE4LF(x) ((x) << S_LANE4LF)
-#define G_LANE4LF(x) (((x) >> S_LANE4LF) & M_LANE4LF)
-
-#define S_LANE4FS 0
-#define M_LANE4FS 0x3fU
-#define V_LANE4FS(x) ((x) << S_LANE4FS)
-#define G_LANE4FS(x) (((x) >> S_LANE4FS) & M_LANE4FS)
-
-#define A_PCIE_PHY_FS_LF3 0x5bbc
-
-#define S_LANE7LF 24
-#define M_LANE7LF 0x3fU
-#define V_LANE7LF(x) ((x) << S_LANE7LF)
-#define G_LANE7LF(x) (((x) >> S_LANE7LF) & M_LANE7LF)
-
-#define S_LANE7FS 16
-#define M_LANE7FS 0x3fU
-#define V_LANE7FS(x) ((x) << S_LANE7FS)
-#define G_LANE7FS(x) (((x) >> S_LANE7FS) & M_LANE7FS)
-
-#define S_LANE6LF 8
-#define M_LANE6LF 0x3fU
-#define V_LANE6LF(x) ((x) << S_LANE6LF)
-#define G_LANE6LF(x) (((x) >> S_LANE6LF) & M_LANE6LF)
-
-#define S_LANE6FS 0
-#define M_LANE6FS 0x3fU
-#define V_LANE6FS(x) ((x) << S_LANE6FS)
-#define G_LANE6FS(x) (((x) >> S_LANE6FS) & M_LANE6FS)
-
-#define A_PCIE_PHY_PRESET_REQ 0x5bc0
-
-#define S_COEFFDONE 16
-#define V_COEFFDONE(x) ((x) << S_COEFFDONE)
-#define F_COEFFDONE V_COEFFDONE(1U)
-
-#define S_COEFFLANE 8
-#define M_COEFFLANE 0x7U
-#define V_COEFFLANE(x) ((x) << S_COEFFLANE)
-#define G_COEFFLANE(x) (((x) >> S_COEFFLANE) & M_COEFFLANE)
-
-#define S_COEFFSTART 0
-#define V_COEFFSTART(x) ((x) << S_COEFFSTART)
-#define F_COEFFSTART V_COEFFSTART(1U)
-
-#define A_PCIE_PHY_PRESET_COEFF 0x5bc4
-
-#define S_COEFF 0
-#define M_COEFF 0x3ffffU
-#define V_COEFF(x) ((x) << S_COEFF)
-#define G_COEFF(x) (((x) >> S_COEFF) & M_COEFF)
-
-#define A_PCIE_PHY_INDIR_REQ 0x5bf0
-
-#define S_PHYENABLE 31
-#define V_PHYENABLE(x) ((x) << S_PHYENABLE)
-#define F_PHYENABLE V_PHYENABLE(1U)
-
-#define S_PCIE_PHY_REGADDR 0
-#define M_PCIE_PHY_REGADDR 0xffffU
-#define V_PCIE_PHY_REGADDR(x) ((x) << S_PCIE_PHY_REGADDR)
-#define G_PCIE_PHY_REGADDR(x) (((x) >> S_PCIE_PHY_REGADDR) & M_PCIE_PHY_REGADDR)
-
-#define A_PCIE_PHY_INDIR_DATA 0x5bf4
-#define A_PCIE_STATIC_SPARE1 0x5bf8
-#define A_PCIE_STATIC_SPARE2 0x5bfc
-
/* registers for module DBG */
#define DBG_BASE_ADDR 0x6000
@@ -7152,11 +3490,6 @@
#define A_DBG_DBG1_CFG 0x6008
#define A_DBG_DBG1_EN 0x600c
-
-#define S_CLK_EN_ON_DBG1 20
-#define V_CLK_EN_ON_DBG1(x) ((x) << S_CLK_EN_ON_DBG1)
-#define F_CLK_EN_ON_DBG1 V_CLK_EN_ON_DBG1(1U)
-
#define A_DBG_GPIO_EN 0x6010
#define S_GPIO15_OEN 31
@@ -7523,22 +3856,6 @@
#define V_GPIO0(x) ((x) << S_GPIO0)
#define F_GPIO0 V_GPIO0(1U)
-#define S_GPIO19 29
-#define V_GPIO19(x) ((x) << S_GPIO19)
-#define F_GPIO19 V_GPIO19(1U)
-
-#define S_GPIO18 28
-#define V_GPIO18(x) ((x) << S_GPIO18)
-#define F_GPIO18 V_GPIO18(1U)
-
-#define S_GPIO17 27
-#define V_GPIO17(x) ((x) << S_GPIO17)
-#define F_GPIO17 V_GPIO17(1U)
-
-#define S_GPIO16 26
-#define V_GPIO16(x) ((x) << S_GPIO16)
-#define F_GPIO16 V_GPIO16(1U)
-
#define A_DBG_INT_CAUSE 0x601c
#define S_IBM_FDL_FAIL_INT_CAUSE 25
@@ -7712,22 +4029,6 @@
#define V_GPIO0_ACT_LOW(x) ((x) << S_GPIO0_ACT_LOW)
#define F_GPIO0_ACT_LOW V_GPIO0_ACT_LOW(1U)
-#define S_GPIO19_ACT_LOW 25
-#define V_GPIO19_ACT_LOW(x) ((x) << S_GPIO19_ACT_LOW)
-#define F_GPIO19_ACT_LOW V_GPIO19_ACT_LOW(1U)
-
-#define S_GPIO18_ACT_LOW 24
-#define V_GPIO18_ACT_LOW(x) ((x) << S_GPIO18_ACT_LOW)
-#define F_GPIO18_ACT_LOW V_GPIO18_ACT_LOW(1U)
-
-#define S_GPIO17_ACT_LOW 23
-#define V_GPIO17_ACT_LOW(x) ((x) << S_GPIO17_ACT_LOW)
-#define F_GPIO17_ACT_LOW V_GPIO17_ACT_LOW(1U)
-
-#define S_GPIO16_ACT_LOW 22
-#define V_GPIO16_ACT_LOW(x) ((x) << S_GPIO16_ACT_LOW)
-#define F_GPIO16_ACT_LOW V_GPIO16_ACT_LOW(1U)
-
#define A_DBG_EFUSE_BYTE0_3 0x6034
#define A_DBG_EFUSE_BYTE4_7 0x6038
#define A_DBG_EFUSE_BYTE8_11 0x603c
@@ -7993,11 +4294,6 @@
#define V_KR_OCLK_MUXSEL(x) ((x) << S_KR_OCLK_MUXSEL)
#define G_KR_OCLK_MUXSEL(x) (((x) >> S_KR_OCLK_MUXSEL) & M_KR_OCLK_MUXSEL)
-#define S_T5_P_OCLK_MUXSEL 13
-#define M_T5_P_OCLK_MUXSEL 0xfU
-#define V_T5_P_OCLK_MUXSEL(x) ((x) << S_T5_P_OCLK_MUXSEL)
-#define G_T5_P_OCLK_MUXSEL(x) (((x) >> S_T5_P_OCLK_MUXSEL) & M_T5_P_OCLK_MUXSEL)
-
#define A_DBG_TRACE0_CONF_COMPREG0 0x6060
#define A_DBG_TRACE0_CONF_COMPREG1 0x6064
#define A_DBG_TRACE1_CONF_COMPREG0 0x6068
@@ -8085,513 +4381,6 @@
#define A_DBG_TRACE0_DATA_OUT 0x6094
#define A_DBG_TRACE1_DATA_OUT 0x6098
-#define A_DBG_FUSE_SENSE_DONE 0x609c
-
-#define S_STATIC_JTAG_VERSIONNR 5
-#define M_STATIC_JTAG_VERSIONNR 0xfU
-#define V_STATIC_JTAG_VERSIONNR(x) ((x) << S_STATIC_JTAG_VERSIONNR)
-#define G_STATIC_JTAG_VERSIONNR(x) (((x) >> S_STATIC_JTAG_VERSIONNR) & M_STATIC_JTAG_VERSIONNR)
-
-#define S_UNQ0 1
-#define M_UNQ0 0xfU
-#define V_UNQ0(x) ((x) << S_UNQ0)
-#define G_UNQ0(x) (((x) >> S_UNQ0) & M_UNQ0)
-
-#define S_FUSE_DONE_SENSE 0
-#define V_FUSE_DONE_SENSE(x) ((x) << S_FUSE_DONE_SENSE)
-#define F_FUSE_DONE_SENSE V_FUSE_DONE_SENSE(1U)
-
-#define A_DBG_TVSENSE_EN 0x60a8
-
-#define S_MCIMPED1_OUT 29
-#define V_MCIMPED1_OUT(x) ((x) << S_MCIMPED1_OUT)
-#define F_MCIMPED1_OUT V_MCIMPED1_OUT(1U)
-
-#define S_MCIMPED2_OUT 28
-#define V_MCIMPED2_OUT(x) ((x) << S_MCIMPED2_OUT)
-#define F_MCIMPED2_OUT V_MCIMPED2_OUT(1U)
-
-#define S_TVSENSE_SNSOUT 17
-#define M_TVSENSE_SNSOUT 0x1ffU
-#define V_TVSENSE_SNSOUT(x) ((x) << S_TVSENSE_SNSOUT)
-#define G_TVSENSE_SNSOUT(x) (((x) >> S_TVSENSE_SNSOUT) & M_TVSENSE_SNSOUT)
-
-#define S_TVSENSE_OUTPUTVALID 16
-#define V_TVSENSE_OUTPUTVALID(x) ((x) << S_TVSENSE_OUTPUTVALID)
-#define F_TVSENSE_OUTPUTVALID V_TVSENSE_OUTPUTVALID(1U)
-
-#define S_TVSENSE_SLEEP 10
-#define V_TVSENSE_SLEEP(x) ((x) << S_TVSENSE_SLEEP)
-#define F_TVSENSE_SLEEP V_TVSENSE_SLEEP(1U)
-
-#define S_TVSENSE_SENSV 9
-#define V_TVSENSE_SENSV(x) ((x) << S_TVSENSE_SENSV)
-#define F_TVSENSE_SENSV V_TVSENSE_SENSV(1U)
-
-#define S_TVSENSE_RST 8
-#define V_TVSENSE_RST(x) ((x) << S_TVSENSE_RST)
-#define F_TVSENSE_RST V_TVSENSE_RST(1U)
-
-#define S_TVSENSE_RATIO 0
-#define M_TVSENSE_RATIO 0xffU
-#define V_TVSENSE_RATIO(x) ((x) << S_TVSENSE_RATIO)
-#define G_TVSENSE_RATIO(x) (((x) >> S_TVSENSE_RATIO) & M_TVSENSE_RATIO)
-
-#define A_DBG_CUST_EFUSE_OUT_EN 0x60ac
-#define A_DBG_CUST_EFUSE_SEL1_EN 0x60b0
-#define A_DBG_CUST_EFUSE_SEL2_EN 0x60b4
-
-#define S_DBG_FEENABLE 29
-#define V_DBG_FEENABLE(x) ((x) << S_DBG_FEENABLE)
-#define F_DBG_FEENABLE V_DBG_FEENABLE(1U)
-
-#define S_DBG_FEF 23
-#define M_DBG_FEF 0x3fU
-#define V_DBG_FEF(x) ((x) << S_DBG_FEF)
-#define G_DBG_FEF(x) (((x) >> S_DBG_FEF) & M_DBG_FEF)
-
-#define S_DBG_FEMIMICN 22
-#define V_DBG_FEMIMICN(x) ((x) << S_DBG_FEMIMICN)
-#define F_DBG_FEMIMICN V_DBG_FEMIMICN(1U)
-
-#define S_DBG_FEGATEC 21
-#define V_DBG_FEGATEC(x) ((x) << S_DBG_FEGATEC)
-#define F_DBG_FEGATEC V_DBG_FEGATEC(1U)
-
-#define S_DBG_FEPROGP 20
-#define V_DBG_FEPROGP(x) ((x) << S_DBG_FEPROGP)
-#define F_DBG_FEPROGP V_DBG_FEPROGP(1U)
-
-#define S_DBG_FEREADCLK 19
-#define V_DBG_FEREADCLK(x) ((x) << S_DBG_FEREADCLK)
-#define F_DBG_FEREADCLK V_DBG_FEREADCLK(1U)
-
-#define S_DBG_FERSEL 3
-#define M_DBG_FERSEL 0xffffU
-#define V_DBG_FERSEL(x) ((x) << S_DBG_FERSEL)
-#define G_DBG_FERSEL(x) (((x) >> S_DBG_FERSEL) & M_DBG_FERSEL)
-
-#define S_DBG_FETIME 0
-#define M_DBG_FETIME 0x7U
-#define V_DBG_FETIME(x) ((x) << S_DBG_FETIME)
-#define G_DBG_FETIME(x) (((x) >> S_DBG_FETIME) & M_DBG_FETIME)
-
-#define A_DBG_T5_STATIC_M_PLL_CONF1 0x60b8
-
-#define S_T5_STATIC_M_PLL_MULTFRAC 8
-#define M_T5_STATIC_M_PLL_MULTFRAC 0xffffffU
-#define V_T5_STATIC_M_PLL_MULTFRAC(x) ((x) << S_T5_STATIC_M_PLL_MULTFRAC)
-#define G_T5_STATIC_M_PLL_MULTFRAC(x) (((x) >> S_T5_STATIC_M_PLL_MULTFRAC) & M_T5_STATIC_M_PLL_MULTFRAC)
-
-#define S_T5_STATIC_M_PLL_FFSLEWRATE 0
-#define M_T5_STATIC_M_PLL_FFSLEWRATE 0xffU
-#define V_T5_STATIC_M_PLL_FFSLEWRATE(x) ((x) << S_T5_STATIC_M_PLL_FFSLEWRATE)
-#define G_T5_STATIC_M_PLL_FFSLEWRATE(x) (((x) >> S_T5_STATIC_M_PLL_FFSLEWRATE) & M_T5_STATIC_M_PLL_FFSLEWRATE)
-
-#define A_DBG_T5_STATIC_M_PLL_CONF2 0x60bc
-
-#define S_T5_STATIC_M_PLL_DCO_BYPASS 23
-#define V_T5_STATIC_M_PLL_DCO_BYPASS(x) ((x) << S_T5_STATIC_M_PLL_DCO_BYPASS)
-#define F_T5_STATIC_M_PLL_DCO_BYPASS V_T5_STATIC_M_PLL_DCO_BYPASS(1U)
-
-#define S_T5_STATIC_M_PLL_SDORDER 21
-#define M_T5_STATIC_M_PLL_SDORDER 0x3U
-#define V_T5_STATIC_M_PLL_SDORDER(x) ((x) << S_T5_STATIC_M_PLL_SDORDER)
-#define G_T5_STATIC_M_PLL_SDORDER(x) (((x) >> S_T5_STATIC_M_PLL_SDORDER) & M_T5_STATIC_M_PLL_SDORDER)
-
-#define S_T5_STATIC_M_PLL_FFENABLE 20
-#define V_T5_STATIC_M_PLL_FFENABLE(x) ((x) << S_T5_STATIC_M_PLL_FFENABLE)
-#define F_T5_STATIC_M_PLL_FFENABLE V_T5_STATIC_M_PLL_FFENABLE(1U)
-
-#define S_T5_STATIC_M_PLL_STOPCLKB 19
-#define V_T5_STATIC_M_PLL_STOPCLKB(x) ((x) << S_T5_STATIC_M_PLL_STOPCLKB)
-#define F_T5_STATIC_M_PLL_STOPCLKB V_T5_STATIC_M_PLL_STOPCLKB(1U)
-
-#define S_T5_STATIC_M_PLL_STOPCLKA 18
-#define V_T5_STATIC_M_PLL_STOPCLKA(x) ((x) << S_T5_STATIC_M_PLL_STOPCLKA)
-#define F_T5_STATIC_M_PLL_STOPCLKA V_T5_STATIC_M_PLL_STOPCLKA(1U)
-
-#define S_T5_STATIC_M_PLL_SLEEP 17
-#define V_T5_STATIC_M_PLL_SLEEP(x) ((x) << S_T5_STATIC_M_PLL_SLEEP)
-#define F_T5_STATIC_M_PLL_SLEEP V_T5_STATIC_M_PLL_SLEEP(1U)
-
-#define S_T5_STATIC_M_PLL_BYPASS 16
-#define V_T5_STATIC_M_PLL_BYPASS(x) ((x) << S_T5_STATIC_M_PLL_BYPASS)
-#define F_T5_STATIC_M_PLL_BYPASS V_T5_STATIC_M_PLL_BYPASS(1U)
-
-#define S_T5_STATIC_M_PLL_LOCKTUNE 0
-#define M_T5_STATIC_M_PLL_LOCKTUNE 0xffffU
-#define V_T5_STATIC_M_PLL_LOCKTUNE(x) ((x) << S_T5_STATIC_M_PLL_LOCKTUNE)
-#define G_T5_STATIC_M_PLL_LOCKTUNE(x) (((x) >> S_T5_STATIC_M_PLL_LOCKTUNE) & M_T5_STATIC_M_PLL_LOCKTUNE)
-
-#define A_DBG_T5_STATIC_M_PLL_CONF3 0x60c0
-
-#define S_T5_STATIC_M_PLL_MULTPRE 30
-#define M_T5_STATIC_M_PLL_MULTPRE 0x3U
-#define V_T5_STATIC_M_PLL_MULTPRE(x) ((x) << S_T5_STATIC_M_PLL_MULTPRE)
-#define G_T5_STATIC_M_PLL_MULTPRE(x) (((x) >> S_T5_STATIC_M_PLL_MULTPRE) & M_T5_STATIC_M_PLL_MULTPRE)
-
-#define S_T5_STATIC_M_PLL_LOCKSEL 28
-#define M_T5_STATIC_M_PLL_LOCKSEL 0x3U
-#define V_T5_STATIC_M_PLL_LOCKSEL(x) ((x) << S_T5_STATIC_M_PLL_LOCKSEL)
-#define G_T5_STATIC_M_PLL_LOCKSEL(x) (((x) >> S_T5_STATIC_M_PLL_LOCKSEL) & M_T5_STATIC_M_PLL_LOCKSEL)
-
-#define S_T5_STATIC_M_PLL_FFTUNE 12
-#define M_T5_STATIC_M_PLL_FFTUNE 0xffffU
-#define V_T5_STATIC_M_PLL_FFTUNE(x) ((x) << S_T5_STATIC_M_PLL_FFTUNE)
-#define G_T5_STATIC_M_PLL_FFTUNE(x) (((x) >> S_T5_STATIC_M_PLL_FFTUNE) & M_T5_STATIC_M_PLL_FFTUNE)
-
-#define S_T5_STATIC_M_PLL_RANGEPRE 10
-#define M_T5_STATIC_M_PLL_RANGEPRE 0x3U
-#define V_T5_STATIC_M_PLL_RANGEPRE(x) ((x) << S_T5_STATIC_M_PLL_RANGEPRE)
-#define G_T5_STATIC_M_PLL_RANGEPRE(x) (((x) >> S_T5_STATIC_M_PLL_RANGEPRE) & M_T5_STATIC_M_PLL_RANGEPRE)
-
-#define S_T5_STATIC_M_PLL_RANGEB 5
-#define M_T5_STATIC_M_PLL_RANGEB 0x1fU
-#define V_T5_STATIC_M_PLL_RANGEB(x) ((x) << S_T5_STATIC_M_PLL_RANGEB)
-#define G_T5_STATIC_M_PLL_RANGEB(x) (((x) >> S_T5_STATIC_M_PLL_RANGEB) & M_T5_STATIC_M_PLL_RANGEB)
-
-#define S_T5_STATIC_M_PLL_RANGEA 0
-#define M_T5_STATIC_M_PLL_RANGEA 0x1fU
-#define V_T5_STATIC_M_PLL_RANGEA(x) ((x) << S_T5_STATIC_M_PLL_RANGEA)
-#define G_T5_STATIC_M_PLL_RANGEA(x) (((x) >> S_T5_STATIC_M_PLL_RANGEA) & M_T5_STATIC_M_PLL_RANGEA)
-
-#define A_DBG_T5_STATIC_M_PLL_CONF4 0x60c4
-#define A_DBG_T5_STATIC_M_PLL_CONF5 0x60c8
-
-#define S_T5_STATIC_M_PLL_VCVTUNE 24
-#define M_T5_STATIC_M_PLL_VCVTUNE 0x7U
-#define V_T5_STATIC_M_PLL_VCVTUNE(x) ((x) << S_T5_STATIC_M_PLL_VCVTUNE)
-#define G_T5_STATIC_M_PLL_VCVTUNE(x) (((x) >> S_T5_STATIC_M_PLL_VCVTUNE) & M_T5_STATIC_M_PLL_VCVTUNE)
-
-#define S_T5_STATIC_M_PLL_RESET 23
-#define V_T5_STATIC_M_PLL_RESET(x) ((x) << S_T5_STATIC_M_PLL_RESET)
-#define F_T5_STATIC_M_PLL_RESET V_T5_STATIC_M_PLL_RESET(1U)
-
-#define S_T5_STATIC_MPLL_REFCLK_SEL 22
-#define V_T5_STATIC_MPLL_REFCLK_SEL(x) ((x) << S_T5_STATIC_MPLL_REFCLK_SEL)
-#define F_T5_STATIC_MPLL_REFCLK_SEL V_T5_STATIC_MPLL_REFCLK_SEL(1U)
-
-#define S_T5_STATIC_M_PLL_LFTUNE_32_40 13
-#define M_T5_STATIC_M_PLL_LFTUNE_32_40 0x1ffU
-#define V_T5_STATIC_M_PLL_LFTUNE_32_40(x) ((x) << S_T5_STATIC_M_PLL_LFTUNE_32_40)
-#define G_T5_STATIC_M_PLL_LFTUNE_32_40(x) (((x) >> S_T5_STATIC_M_PLL_LFTUNE_32_40) & M_T5_STATIC_M_PLL_LFTUNE_32_40)
-
-#define S_T5_STATIC_M_PLL_PREDIV 8
-#define M_T5_STATIC_M_PLL_PREDIV 0x1fU
-#define V_T5_STATIC_M_PLL_PREDIV(x) ((x) << S_T5_STATIC_M_PLL_PREDIV)
-#define G_T5_STATIC_M_PLL_PREDIV(x) (((x) >> S_T5_STATIC_M_PLL_PREDIV) & M_T5_STATIC_M_PLL_PREDIV)
-
-#define S_T5_STATIC_M_PLL_MULT 0
-#define M_T5_STATIC_M_PLL_MULT 0xffU
-#define V_T5_STATIC_M_PLL_MULT(x) ((x) << S_T5_STATIC_M_PLL_MULT)
-#define G_T5_STATIC_M_PLL_MULT(x) (((x) >> S_T5_STATIC_M_PLL_MULT) & M_T5_STATIC_M_PLL_MULT)
-
-#define A_DBG_T5_STATIC_M_PLL_CONF6 0x60cc
-
-#define S_T5_STATIC_PHY0RECRST_ 5
-#define V_T5_STATIC_PHY0RECRST_(x) ((x) << S_T5_STATIC_PHY0RECRST_)
-#define F_T5_STATIC_PHY0RECRST_ V_T5_STATIC_PHY0RECRST_(1U)
-
-#define S_T5_STATIC_PHY1RECRST_ 4
-#define V_T5_STATIC_PHY1RECRST_(x) ((x) << S_T5_STATIC_PHY1RECRST_)
-#define F_T5_STATIC_PHY1RECRST_ V_T5_STATIC_PHY1RECRST_(1U)
-
-#define S_T5_STATIC_SWMC0RST_ 3
-#define V_T5_STATIC_SWMC0RST_(x) ((x) << S_T5_STATIC_SWMC0RST_)
-#define F_T5_STATIC_SWMC0RST_ V_T5_STATIC_SWMC0RST_(1U)
-
-#define S_T5_STATIC_SWMC0CFGRST_ 2
-#define V_T5_STATIC_SWMC0CFGRST_(x) ((x) << S_T5_STATIC_SWMC0CFGRST_)
-#define F_T5_STATIC_SWMC0CFGRST_ V_T5_STATIC_SWMC0CFGRST_(1U)
-
-#define S_T5_STATIC_SWMC1RST_ 1
-#define V_T5_STATIC_SWMC1RST_(x) ((x) << S_T5_STATIC_SWMC1RST_)
-#define F_T5_STATIC_SWMC1RST_ V_T5_STATIC_SWMC1RST_(1U)
-
-#define S_T5_STATIC_SWMC1CFGRST_ 0
-#define V_T5_STATIC_SWMC1CFGRST_(x) ((x) << S_T5_STATIC_SWMC1CFGRST_)
-#define F_T5_STATIC_SWMC1CFGRST_ V_T5_STATIC_SWMC1CFGRST_(1U)
-
-#define A_DBG_T5_STATIC_C_PLL_CONF1 0x60d0
-
-#define S_T5_STATIC_C_PLL_MULTFRAC 8
-#define M_T5_STATIC_C_PLL_MULTFRAC 0xffffffU
-#define V_T5_STATIC_C_PLL_MULTFRAC(x) ((x) << S_T5_STATIC_C_PLL_MULTFRAC)
-#define G_T5_STATIC_C_PLL_MULTFRAC(x) (((x) >> S_T5_STATIC_C_PLL_MULTFRAC) & M_T5_STATIC_C_PLL_MULTFRAC)
-
-#define S_T5_STATIC_C_PLL_FFSLEWRATE 0
-#define M_T5_STATIC_C_PLL_FFSLEWRATE 0xffU
-#define V_T5_STATIC_C_PLL_FFSLEWRATE(x) ((x) << S_T5_STATIC_C_PLL_FFSLEWRATE)
-#define G_T5_STATIC_C_PLL_FFSLEWRATE(x) (((x) >> S_T5_STATIC_C_PLL_FFSLEWRATE) & M_T5_STATIC_C_PLL_FFSLEWRATE)
-
-#define A_DBG_T5_STATIC_C_PLL_CONF2 0x60d4
-
-#define S_T5_STATIC_C_PLL_DCO_BYPASS 23
-#define V_T5_STATIC_C_PLL_DCO_BYPASS(x) ((x) << S_T5_STATIC_C_PLL_DCO_BYPASS)
-#define F_T5_STATIC_C_PLL_DCO_BYPASS V_T5_STATIC_C_PLL_DCO_BYPASS(1U)
-
-#define S_T5_STATIC_C_PLL_SDORDER 21
-#define M_T5_STATIC_C_PLL_SDORDER 0x3U
-#define V_T5_STATIC_C_PLL_SDORDER(x) ((x) << S_T5_STATIC_C_PLL_SDORDER)
-#define G_T5_STATIC_C_PLL_SDORDER(x) (((x) >> S_T5_STATIC_C_PLL_SDORDER) & M_T5_STATIC_C_PLL_SDORDER)
-
-#define S_T5_STATIC_C_PLL_FFENABLE 20
-#define V_T5_STATIC_C_PLL_FFENABLE(x) ((x) << S_T5_STATIC_C_PLL_FFENABLE)
-#define F_T5_STATIC_C_PLL_FFENABLE V_T5_STATIC_C_PLL_FFENABLE(1U)
-
-#define S_T5_STATIC_C_PLL_STOPCLKB 19
-#define V_T5_STATIC_C_PLL_STOPCLKB(x) ((x) << S_T5_STATIC_C_PLL_STOPCLKB)
-#define F_T5_STATIC_C_PLL_STOPCLKB V_T5_STATIC_C_PLL_STOPCLKB(1U)
-
-#define S_T5_STATIC_C_PLL_STOPCLKA 18
-#define V_T5_STATIC_C_PLL_STOPCLKA(x) ((x) << S_T5_STATIC_C_PLL_STOPCLKA)
-#define F_T5_STATIC_C_PLL_STOPCLKA V_T5_STATIC_C_PLL_STOPCLKA(1U)
-
-#define S_T5_STATIC_C_PLL_SLEEP 17
-#define V_T5_STATIC_C_PLL_SLEEP(x) ((x) << S_T5_STATIC_C_PLL_SLEEP)
-#define F_T5_STATIC_C_PLL_SLEEP V_T5_STATIC_C_PLL_SLEEP(1U)
-
-#define S_T5_STATIC_C_PLL_BYPASS 16
-#define V_T5_STATIC_C_PLL_BYPASS(x) ((x) << S_T5_STATIC_C_PLL_BYPASS)
-#define F_T5_STATIC_C_PLL_BYPASS V_T5_STATIC_C_PLL_BYPASS(1U)
-
-#define S_T5_STATIC_C_PLL_LOCKTUNE 0
-#define M_T5_STATIC_C_PLL_LOCKTUNE 0xffffU
-#define V_T5_STATIC_C_PLL_LOCKTUNE(x) ((x) << S_T5_STATIC_C_PLL_LOCKTUNE)
-#define G_T5_STATIC_C_PLL_LOCKTUNE(x) (((x) >> S_T5_STATIC_C_PLL_LOCKTUNE) & M_T5_STATIC_C_PLL_LOCKTUNE)
-
-#define A_DBG_T5_STATIC_C_PLL_CONF3 0x60d8
-
-#define S_T5_STATIC_C_PLL_MULTPRE 30
-#define M_T5_STATIC_C_PLL_MULTPRE 0x3U
-#define V_T5_STATIC_C_PLL_MULTPRE(x) ((x) << S_T5_STATIC_C_PLL_MULTPRE)
-#define G_T5_STATIC_C_PLL_MULTPRE(x) (((x) >> S_T5_STATIC_C_PLL_MULTPRE) & M_T5_STATIC_C_PLL_MULTPRE)
-
-#define S_T5_STATIC_C_PLL_LOCKSEL 28
-#define M_T5_STATIC_C_PLL_LOCKSEL 0x3U
-#define V_T5_STATIC_C_PLL_LOCKSEL(x) ((x) << S_T5_STATIC_C_PLL_LOCKSEL)
-#define G_T5_STATIC_C_PLL_LOCKSEL(x) (((x) >> S_T5_STATIC_C_PLL_LOCKSEL) & M_T5_STATIC_C_PLL_LOCKSEL)
-
-#define S_T5_STATIC_C_PLL_FFTUNE 12
-#define M_T5_STATIC_C_PLL_FFTUNE 0xffffU
-#define V_T5_STATIC_C_PLL_FFTUNE(x) ((x) << S_T5_STATIC_C_PLL_FFTUNE)
-#define G_T5_STATIC_C_PLL_FFTUNE(x) (((x) >> S_T5_STATIC_C_PLL_FFTUNE) & M_T5_STATIC_C_PLL_FFTUNE)
-
-#define S_T5_STATIC_C_PLL_RANGEPRE 10
-#define M_T5_STATIC_C_PLL_RANGEPRE 0x3U
-#define V_T5_STATIC_C_PLL_RANGEPRE(x) ((x) << S_T5_STATIC_C_PLL_RANGEPRE)
-#define G_T5_STATIC_C_PLL_RANGEPRE(x) (((x) >> S_T5_STATIC_C_PLL_RANGEPRE) & M_T5_STATIC_C_PLL_RANGEPRE)
-
-#define S_T5_STATIC_C_PLL_RANGEB 5
-#define M_T5_STATIC_C_PLL_RANGEB 0x1fU
-#define V_T5_STATIC_C_PLL_RANGEB(x) ((x) << S_T5_STATIC_C_PLL_RANGEB)
-#define G_T5_STATIC_C_PLL_RANGEB(x) (((x) >> S_T5_STATIC_C_PLL_RANGEB) & M_T5_STATIC_C_PLL_RANGEB)
-
-#define S_T5_STATIC_C_PLL_RANGEA 0
-#define M_T5_STATIC_C_PLL_RANGEA 0x1fU
-#define V_T5_STATIC_C_PLL_RANGEA(x) ((x) << S_T5_STATIC_C_PLL_RANGEA)
-#define G_T5_STATIC_C_PLL_RANGEA(x) (((x) >> S_T5_STATIC_C_PLL_RANGEA) & M_T5_STATIC_C_PLL_RANGEA)
-
-#define A_DBG_T5_STATIC_C_PLL_CONF4 0x60dc
-#define A_DBG_T5_STATIC_C_PLL_CONF5 0x60e0
-
-#define S_T5_STATIC_C_PLL_VCVTUNE 22
-#define M_T5_STATIC_C_PLL_VCVTUNE 0x7U
-#define V_T5_STATIC_C_PLL_VCVTUNE(x) ((x) << S_T5_STATIC_C_PLL_VCVTUNE)
-#define G_T5_STATIC_C_PLL_VCVTUNE(x) (((x) >> S_T5_STATIC_C_PLL_VCVTUNE) & M_T5_STATIC_C_PLL_VCVTUNE)
-
-#define S_T5_STATIC_C_PLL_LFTUNE_32_40 13
-#define M_T5_STATIC_C_PLL_LFTUNE_32_40 0x1ffU
-#define V_T5_STATIC_C_PLL_LFTUNE_32_40(x) ((x) << S_T5_STATIC_C_PLL_LFTUNE_32_40)
-#define G_T5_STATIC_C_PLL_LFTUNE_32_40(x) (((x) >> S_T5_STATIC_C_PLL_LFTUNE_32_40) & M_T5_STATIC_C_PLL_LFTUNE_32_40)
-
-#define S_T5_STATIC_C_PLL_PREDIV 8
-#define M_T5_STATIC_C_PLL_PREDIV 0x1fU
-#define V_T5_STATIC_C_PLL_PREDIV(x) ((x) << S_T5_STATIC_C_PLL_PREDIV)
-#define G_T5_STATIC_C_PLL_PREDIV(x) (((x) >> S_T5_STATIC_C_PLL_PREDIV) & M_T5_STATIC_C_PLL_PREDIV)
-
-#define S_T5_STATIC_C_PLL_MULT 0
-#define M_T5_STATIC_C_PLL_MULT 0xffU
-#define V_T5_STATIC_C_PLL_MULT(x) ((x) << S_T5_STATIC_C_PLL_MULT)
-#define G_T5_STATIC_C_PLL_MULT(x) (((x) >> S_T5_STATIC_C_PLL_MULT) & M_T5_STATIC_C_PLL_MULT)
-
-#define A_DBG_T5_STATIC_U_PLL_CONF1 0x60e4
-
-#define S_T5_STATIC_U_PLL_MULTFRAC 8
-#define M_T5_STATIC_U_PLL_MULTFRAC 0xffffffU
-#define V_T5_STATIC_U_PLL_MULTFRAC(x) ((x) << S_T5_STATIC_U_PLL_MULTFRAC)
-#define G_T5_STATIC_U_PLL_MULTFRAC(x) (((x) >> S_T5_STATIC_U_PLL_MULTFRAC) & M_T5_STATIC_U_PLL_MULTFRAC)
-
-#define S_T5_STATIC_U_PLL_FFSLEWRATE 0
-#define M_T5_STATIC_U_PLL_FFSLEWRATE 0xffU
-#define V_T5_STATIC_U_PLL_FFSLEWRATE(x) ((x) << S_T5_STATIC_U_PLL_FFSLEWRATE)
-#define G_T5_STATIC_U_PLL_FFSLEWRATE(x) (((x) >> S_T5_STATIC_U_PLL_FFSLEWRATE) & M_T5_STATIC_U_PLL_FFSLEWRATE)
-
-#define A_DBG_T5_STATIC_U_PLL_CONF2 0x60e8
-
-#define S_T5_STATIC_U_PLL_DCO_BYPASS 23
-#define V_T5_STATIC_U_PLL_DCO_BYPASS(x) ((x) << S_T5_STATIC_U_PLL_DCO_BYPASS)
-#define F_T5_STATIC_U_PLL_DCO_BYPASS V_T5_STATIC_U_PLL_DCO_BYPASS(1U)
-
-#define S_T5_STATIC_U_PLL_SDORDER 21
-#define M_T5_STATIC_U_PLL_SDORDER 0x3U
-#define V_T5_STATIC_U_PLL_SDORDER(x) ((x) << S_T5_STATIC_U_PLL_SDORDER)
-#define G_T5_STATIC_U_PLL_SDORDER(x) (((x) >> S_T5_STATIC_U_PLL_SDORDER) & M_T5_STATIC_U_PLL_SDORDER)
-
-#define S_T5_STATIC_U_PLL_FFENABLE 20
-#define V_T5_STATIC_U_PLL_FFENABLE(x) ((x) << S_T5_STATIC_U_PLL_FFENABLE)
-#define F_T5_STATIC_U_PLL_FFENABLE V_T5_STATIC_U_PLL_FFENABLE(1U)
-
-#define S_T5_STATIC_U_PLL_STOPCLKB 19
-#define V_T5_STATIC_U_PLL_STOPCLKB(x) ((x) << S_T5_STATIC_U_PLL_STOPCLKB)
-#define F_T5_STATIC_U_PLL_STOPCLKB V_T5_STATIC_U_PLL_STOPCLKB(1U)
-
-#define S_T5_STATIC_U_PLL_STOPCLKA 18
-#define V_T5_STATIC_U_PLL_STOPCLKA(x) ((x) << S_T5_STATIC_U_PLL_STOPCLKA)
-#define F_T5_STATIC_U_PLL_STOPCLKA V_T5_STATIC_U_PLL_STOPCLKA(1U)
-
-#define S_T5_STATIC_U_PLL_SLEEP 17
-#define V_T5_STATIC_U_PLL_SLEEP(x) ((x) << S_T5_STATIC_U_PLL_SLEEP)
-#define F_T5_STATIC_U_PLL_SLEEP V_T5_STATIC_U_PLL_SLEEP(1U)
-
-#define S_T5_STATIC_U_PLL_BYPASS 16
-#define V_T5_STATIC_U_PLL_BYPASS(x) ((x) << S_T5_STATIC_U_PLL_BYPASS)
-#define F_T5_STATIC_U_PLL_BYPASS V_T5_STATIC_U_PLL_BYPASS(1U)
-
-#define S_T5_STATIC_U_PLL_LOCKTUNE 0
-#define M_T5_STATIC_U_PLL_LOCKTUNE 0xffffU
-#define V_T5_STATIC_U_PLL_LOCKTUNE(x) ((x) << S_T5_STATIC_U_PLL_LOCKTUNE)
-#define G_T5_STATIC_U_PLL_LOCKTUNE(x) (((x) >> S_T5_STATIC_U_PLL_LOCKTUNE) & M_T5_STATIC_U_PLL_LOCKTUNE)
-
-#define A_DBG_T5_STATIC_U_PLL_CONF3 0x60ec
-
-#define S_T5_STATIC_U_PLL_MULTPRE 30
-#define M_T5_STATIC_U_PLL_MULTPRE 0x3U
-#define V_T5_STATIC_U_PLL_MULTPRE(x) ((x) << S_T5_STATIC_U_PLL_MULTPRE)
-#define G_T5_STATIC_U_PLL_MULTPRE(x) (((x) >> S_T5_STATIC_U_PLL_MULTPRE) & M_T5_STATIC_U_PLL_MULTPRE)
-
-#define S_T5_STATIC_U_PLL_LOCKSEL 28
-#define M_T5_STATIC_U_PLL_LOCKSEL 0x3U
-#define V_T5_STATIC_U_PLL_LOCKSEL(x) ((x) << S_T5_STATIC_U_PLL_LOCKSEL)
-#define G_T5_STATIC_U_PLL_LOCKSEL(x) (((x) >> S_T5_STATIC_U_PLL_LOCKSEL) & M_T5_STATIC_U_PLL_LOCKSEL)
-
-#define S_T5_STATIC_U_PLL_FFTUNE 12
-#define M_T5_STATIC_U_PLL_FFTUNE 0xffffU
-#define V_T5_STATIC_U_PLL_FFTUNE(x) ((x) << S_T5_STATIC_U_PLL_FFTUNE)
-#define G_T5_STATIC_U_PLL_FFTUNE(x) (((x) >> S_T5_STATIC_U_PLL_FFTUNE) & M_T5_STATIC_U_PLL_FFTUNE)
-
-#define S_T5_STATIC_U_PLL_RANGEPRE 10
-#define M_T5_STATIC_U_PLL_RANGEPRE 0x3U
-#define V_T5_STATIC_U_PLL_RANGEPRE(x) ((x) << S_T5_STATIC_U_PLL_RANGEPRE)
-#define G_T5_STATIC_U_PLL_RANGEPRE(x) (((x) >> S_T5_STATIC_U_PLL_RANGEPRE) & M_T5_STATIC_U_PLL_RANGEPRE)
-
-#define S_T5_STATIC_U_PLL_RANGEB 5
-#define M_T5_STATIC_U_PLL_RANGEB 0x1fU
-#define V_T5_STATIC_U_PLL_RANGEB(x) ((x) << S_T5_STATIC_U_PLL_RANGEB)
-#define G_T5_STATIC_U_PLL_RANGEB(x) (((x) >> S_T5_STATIC_U_PLL_RANGEB) & M_T5_STATIC_U_PLL_RANGEB)
-
-#define S_T5_STATIC_U_PLL_RANGEA 0
-#define M_T5_STATIC_U_PLL_RANGEA 0x1fU
-#define V_T5_STATIC_U_PLL_RANGEA(x) ((x) << S_T5_STATIC_U_PLL_RANGEA)
-#define G_T5_STATIC_U_PLL_RANGEA(x) (((x) >> S_T5_STATIC_U_PLL_RANGEA) & M_T5_STATIC_U_PLL_RANGEA)
-
-#define A_DBG_T5_STATIC_U_PLL_CONF4 0x60f0
-#define A_DBG_T5_STATIC_U_PLL_CONF5 0x60f4
-
-#define S_T5_STATIC_U_PLL_VCVTUNE 22
-#define M_T5_STATIC_U_PLL_VCVTUNE 0x7U
-#define V_T5_STATIC_U_PLL_VCVTUNE(x) ((x) << S_T5_STATIC_U_PLL_VCVTUNE)
-#define G_T5_STATIC_U_PLL_VCVTUNE(x) (((x) >> S_T5_STATIC_U_PLL_VCVTUNE) & M_T5_STATIC_U_PLL_VCVTUNE)
-
-#define S_T5_STATIC_U_PLL_LFTUNE_32_40 13
-#define M_T5_STATIC_U_PLL_LFTUNE_32_40 0x1ffU
-#define V_T5_STATIC_U_PLL_LFTUNE_32_40(x) ((x) << S_T5_STATIC_U_PLL_LFTUNE_32_40)
-#define G_T5_STATIC_U_PLL_LFTUNE_32_40(x) (((x) >> S_T5_STATIC_U_PLL_LFTUNE_32_40) & M_T5_STATIC_U_PLL_LFTUNE_32_40)
-
-#define S_T5_STATIC_U_PLL_PREDIV 8
-#define M_T5_STATIC_U_PLL_PREDIV 0x1fU
-#define V_T5_STATIC_U_PLL_PREDIV(x) ((x) << S_T5_STATIC_U_PLL_PREDIV)
-#define G_T5_STATIC_U_PLL_PREDIV(x) (((x) >> S_T5_STATIC_U_PLL_PREDIV) & M_T5_STATIC_U_PLL_PREDIV)
-
-#define S_T5_STATIC_U_PLL_MULT 0
-#define M_T5_STATIC_U_PLL_MULT 0xffU
-#define V_T5_STATIC_U_PLL_MULT(x) ((x) << S_T5_STATIC_U_PLL_MULT)
-#define G_T5_STATIC_U_PLL_MULT(x) (((x) >> S_T5_STATIC_U_PLL_MULT) & M_T5_STATIC_U_PLL_MULT)
-
-#define A_DBG_T5_STATIC_KR_PLL_CONF1 0x60f8
-
-#define S_T5_STATIC_KR_PLL_BYPASS 30
-#define V_T5_STATIC_KR_PLL_BYPASS(x) ((x) << S_T5_STATIC_KR_PLL_BYPASS)
-#define F_T5_STATIC_KR_PLL_BYPASS V_T5_STATIC_KR_PLL_BYPASS(1U)
-
-#define S_T5_STATIC_KR_PLL_VBOOSTDIV 27
-#define M_T5_STATIC_KR_PLL_VBOOSTDIV 0x7U
-#define V_T5_STATIC_KR_PLL_VBOOSTDIV(x) ((x) << S_T5_STATIC_KR_PLL_VBOOSTDIV)
-#define G_T5_STATIC_KR_PLL_VBOOSTDIV(x) (((x) >> S_T5_STATIC_KR_PLL_VBOOSTDIV) & M_T5_STATIC_KR_PLL_VBOOSTDIV)
-
-#define S_T5_STATIC_KR_PLL_CPISEL 24
-#define M_T5_STATIC_KR_PLL_CPISEL 0x7U
-#define V_T5_STATIC_KR_PLL_CPISEL(x) ((x) << S_T5_STATIC_KR_PLL_CPISEL)
-#define G_T5_STATIC_KR_PLL_CPISEL(x) (((x) >> S_T5_STATIC_KR_PLL_CPISEL) & M_T5_STATIC_KR_PLL_CPISEL)
-
-#define S_T5_STATIC_KR_PLL_CCALMETHOD 23
-#define V_T5_STATIC_KR_PLL_CCALMETHOD(x) ((x) << S_T5_STATIC_KR_PLL_CCALMETHOD)
-#define F_T5_STATIC_KR_PLL_CCALMETHOD V_T5_STATIC_KR_PLL_CCALMETHOD(1U)
-
-#define S_T5_STATIC_KR_PLL_CCALLOAD 22
-#define V_T5_STATIC_KR_PLL_CCALLOAD(x) ((x) << S_T5_STATIC_KR_PLL_CCALLOAD)
-#define F_T5_STATIC_KR_PLL_CCALLOAD V_T5_STATIC_KR_PLL_CCALLOAD(1U)
-
-#define S_T5_STATIC_KR_PLL_CCALFMIN 21
-#define V_T5_STATIC_KR_PLL_CCALFMIN(x) ((x) << S_T5_STATIC_KR_PLL_CCALFMIN)
-#define F_T5_STATIC_KR_PLL_CCALFMIN V_T5_STATIC_KR_PLL_CCALFMIN(1U)
-
-#define S_T5_STATIC_KR_PLL_CCALFMAX 20
-#define V_T5_STATIC_KR_PLL_CCALFMAX(x) ((x) << S_T5_STATIC_KR_PLL_CCALFMAX)
-#define F_T5_STATIC_KR_PLL_CCALFMAX V_T5_STATIC_KR_PLL_CCALFMAX(1U)
-
-#define S_T5_STATIC_KR_PLL_CCALCVHOLD 19
-#define V_T5_STATIC_KR_PLL_CCALCVHOLD(x) ((x) << S_T5_STATIC_KR_PLL_CCALCVHOLD)
-#define F_T5_STATIC_KR_PLL_CCALCVHOLD V_T5_STATIC_KR_PLL_CCALCVHOLD(1U)
-
-#define S_T5_STATIC_KR_PLL_CCALBANDSEL 15
-#define M_T5_STATIC_KR_PLL_CCALBANDSEL 0xfU
-#define V_T5_STATIC_KR_PLL_CCALBANDSEL(x) ((x) << S_T5_STATIC_KR_PLL_CCALBANDSEL)
-#define G_T5_STATIC_KR_PLL_CCALBANDSEL(x) (((x) >> S_T5_STATIC_KR_PLL_CCALBANDSEL) & M_T5_STATIC_KR_PLL_CCALBANDSEL)
-
-#define S_T5_STATIC_KR_PLL_BGOFFSET 11
-#define M_T5_STATIC_KR_PLL_BGOFFSET 0xfU
-#define V_T5_STATIC_KR_PLL_BGOFFSET(x) ((x) << S_T5_STATIC_KR_PLL_BGOFFSET)
-#define G_T5_STATIC_KR_PLL_BGOFFSET(x) (((x) >> S_T5_STATIC_KR_PLL_BGOFFSET) & M_T5_STATIC_KR_PLL_BGOFFSET)
-
-#define S_T5_STATIC_KR_PLL_P 8
-#define M_T5_STATIC_KR_PLL_P 0x7U
-#define V_T5_STATIC_KR_PLL_P(x) ((x) << S_T5_STATIC_KR_PLL_P)
-#define G_T5_STATIC_KR_PLL_P(x) (((x) >> S_T5_STATIC_KR_PLL_P) & M_T5_STATIC_KR_PLL_P)
-
-#define S_T5_STATIC_KR_PLL_N2 4
-#define M_T5_STATIC_KR_PLL_N2 0xfU
-#define V_T5_STATIC_KR_PLL_N2(x) ((x) << S_T5_STATIC_KR_PLL_N2)
-#define G_T5_STATIC_KR_PLL_N2(x) (((x) >> S_T5_STATIC_KR_PLL_N2) & M_T5_STATIC_KR_PLL_N2)
-
-#define S_T5_STATIC_KR_PLL_N1 0
-#define M_T5_STATIC_KR_PLL_N1 0xfU
-#define V_T5_STATIC_KR_PLL_N1(x) ((x) << S_T5_STATIC_KR_PLL_N1)
-#define G_T5_STATIC_KR_PLL_N1(x) (((x) >> S_T5_STATIC_KR_PLL_N1) & M_T5_STATIC_KR_PLL_N1)
-
-#define A_DBG_T5_STATIC_KR_PLL_CONF2 0x60fc
-
-#define S_T5_STATIC_KR_PLL_M 11
-#define M_T5_STATIC_KR_PLL_M 0x1ffU
-#define V_T5_STATIC_KR_PLL_M(x) ((x) << S_T5_STATIC_KR_PLL_M)
-#define G_T5_STATIC_KR_PLL_M(x) (((x) >> S_T5_STATIC_KR_PLL_M) & M_T5_STATIC_KR_PLL_M)
-
-#define S_T5_STATIC_KR_PLL_ANALOGTUNE 0
-#define M_T5_STATIC_KR_PLL_ANALOGTUNE 0x7ffU
-#define V_T5_STATIC_KR_PLL_ANALOGTUNE(x) ((x) << S_T5_STATIC_KR_PLL_ANALOGTUNE)
-#define G_T5_STATIC_KR_PLL_ANALOGTUNE(x) (((x) >> S_T5_STATIC_KR_PLL_ANALOGTUNE) & M_T5_STATIC_KR_PLL_ANALOGTUNE)
-
#define A_DBG_PVT_REG_CALIBRATE_CTL 0x6100
#define S_HALT_CALIBRATE 1
@@ -8602,40 +4391,6 @@
#define V_RESET_CALIBRATE(x) ((x) << S_RESET_CALIBRATE)
#define F_RESET_CALIBRATE V_RESET_CALIBRATE(1U)
-#define A_DBG_GPIO_EN_NEW 0x6100
-
-#define S_GPIO16_OEN 7
-#define V_GPIO16_OEN(x) ((x) << S_GPIO16_OEN)
-#define F_GPIO16_OEN V_GPIO16_OEN(1U)
-
-#define S_GPIO17_OEN 6
-#define V_GPIO17_OEN(x) ((x) << S_GPIO17_OEN)
-#define F_GPIO17_OEN V_GPIO17_OEN(1U)
-
-#define S_GPIO18_OEN 5
-#define V_GPIO18_OEN(x) ((x) << S_GPIO18_OEN)
-#define F_GPIO18_OEN V_GPIO18_OEN(1U)
-
-#define S_GPIO19_OEN 4
-#define V_GPIO19_OEN(x) ((x) << S_GPIO19_OEN)
-#define F_GPIO19_OEN V_GPIO19_OEN(1U)
-
-#define S_GPIO16_OUT_VAL 3
-#define V_GPIO16_OUT_VAL(x) ((x) << S_GPIO16_OUT_VAL)
-#define F_GPIO16_OUT_VAL V_GPIO16_OUT_VAL(1U)
-
-#define S_GPIO17_OUT_VAL 2
-#define V_GPIO17_OUT_VAL(x) ((x) << S_GPIO17_OUT_VAL)
-#define F_GPIO17_OUT_VAL V_GPIO17_OUT_VAL(1U)
-
-#define S_GPIO18_OUT_VAL 1
-#define V_GPIO18_OUT_VAL(x) ((x) << S_GPIO18_OUT_VAL)
-#define F_GPIO18_OUT_VAL V_GPIO18_OUT_VAL(1U)
-
-#define S_GPIO19_OUT_VAL 0
-#define V_GPIO19_OUT_VAL(x) ((x) << S_GPIO19_OUT_VAL)
-#define F_GPIO19_OUT_VAL V_GPIO19_OUT_VAL(1U)
-
#define A_DBG_PVT_REG_UPDATE_CTL 0x6104
#define S_FAST_UPDATE 8
@@ -8650,40 +4405,6 @@
#define V_HALT_UPDATE(x) ((x) << S_HALT_UPDATE)
#define F_HALT_UPDATE V_HALT_UPDATE(1U)
-#define A_DBG_GPIO_IN_NEW 0x6104
-
-#define S_GPIO16_CHG_DET 7
-#define V_GPIO16_CHG_DET(x) ((x) << S_GPIO16_CHG_DET)
-#define F_GPIO16_CHG_DET V_GPIO16_CHG_DET(1U)
-
-#define S_GPIO17_CHG_DET 6
-#define V_GPIO17_CHG_DET(x) ((x) << S_GPIO17_CHG_DET)
-#define F_GPIO17_CHG_DET V_GPIO17_CHG_DET(1U)
-
-#define S_GPIO18_CHG_DET 5
-#define V_GPIO18_CHG_DET(x) ((x) << S_GPIO18_CHG_DET)
-#define F_GPIO18_CHG_DET V_GPIO18_CHG_DET(1U)
-
-#define S_GPIO19_CHG_DET 4
-#define V_GPIO19_CHG_DET(x) ((x) << S_GPIO19_CHG_DET)
-#define F_GPIO19_CHG_DET V_GPIO19_CHG_DET(1U)
-
-#define S_GPIO16_IN 3
-#define V_GPIO16_IN(x) ((x) << S_GPIO16_IN)
-#define F_GPIO16_IN V_GPIO16_IN(1U)
-
-#define S_GPIO17_IN 2
-#define V_GPIO17_IN(x) ((x) << S_GPIO17_IN)
-#define F_GPIO17_IN V_GPIO17_IN(1U)
-
-#define S_GPIO18_IN 1
-#define V_GPIO18_IN(x) ((x) << S_GPIO18_IN)
-#define F_GPIO18_IN V_GPIO18_IN(1U)
-
-#define S_GPIO19_IN 0
-#define V_GPIO19_IN(x) ((x) << S_GPIO19_IN)
-#define F_GPIO19_IN V_GPIO19_IN(1U)
-
#define A_DBG_PVT_REG_LAST_MEASUREMENT 0x6108
#define S_LAST_MEASUREMENT_SELECT 8
@@ -8701,67 +4422,6 @@
#define V_LAST_MEASUREMENT_RESULT_BANK_A(x) ((x) << S_LAST_MEASUREMENT_RESULT_BANK_A)
#define G_LAST_MEASUREMENT_RESULT_BANK_A(x) (((x) >> S_LAST_MEASUREMENT_RESULT_BANK_A) & M_LAST_MEASUREMENT_RESULT_BANK_A)
-#define A_DBG_T5_STATIC_KX_PLL_CONF1 0x6108
-
-#define S_T5_STATIC_KX_PLL_BYPASS 30
-#define V_T5_STATIC_KX_PLL_BYPASS(x) ((x) << S_T5_STATIC_KX_PLL_BYPASS)
-#define F_T5_STATIC_KX_PLL_BYPASS V_T5_STATIC_KX_PLL_BYPASS(1U)
-
-#define S_T5_STATIC_KX_PLL_VBOOSTDIV 27
-#define M_T5_STATIC_KX_PLL_VBOOSTDIV 0x7U
-#define V_T5_STATIC_KX_PLL_VBOOSTDIV(x) ((x) << S_T5_STATIC_KX_PLL_VBOOSTDIV)
-#define G_T5_STATIC_KX_PLL_VBOOSTDIV(x) (((x) >> S_T5_STATIC_KX_PLL_VBOOSTDIV) & M_T5_STATIC_KX_PLL_VBOOSTDIV)
-
-#define S_T5_STATIC_KX_PLL_CPISEL 24
-#define M_T5_STATIC_KX_PLL_CPISEL 0x7U
-#define V_T5_STATIC_KX_PLL_CPISEL(x) ((x) << S_T5_STATIC_KX_PLL_CPISEL)
-#define G_T5_STATIC_KX_PLL_CPISEL(x) (((x) >> S_T5_STATIC_KX_PLL_CPISEL) & M_T5_STATIC_KX_PLL_CPISEL)
-
-#define S_T5_STATIC_KX_PLL_CCALMETHOD 23
-#define V_T5_STATIC_KX_PLL_CCALMETHOD(x) ((x) << S_T5_STATIC_KX_PLL_CCALMETHOD)
-#define F_T5_STATIC_KX_PLL_CCALMETHOD V_T5_STATIC_KX_PLL_CCALMETHOD(1U)
-
-#define S_T5_STATIC_KX_PLL_CCALLOAD 22
-#define V_T5_STATIC_KX_PLL_CCALLOAD(x) ((x) << S_T5_STATIC_KX_PLL_CCALLOAD)
-#define F_T5_STATIC_KX_PLL_CCALLOAD V_T5_STATIC_KX_PLL_CCALLOAD(1U)
-
-#define S_T5_STATIC_KX_PLL_CCALFMIN 21
-#define V_T5_STATIC_KX_PLL_CCALFMIN(x) ((x) << S_T5_STATIC_KX_PLL_CCALFMIN)
-#define F_T5_STATIC_KX_PLL_CCALFMIN V_T5_STATIC_KX_PLL_CCALFMIN(1U)
-
-#define S_T5_STATIC_KX_PLL_CCALFMAX 20
-#define V_T5_STATIC_KX_PLL_CCALFMAX(x) ((x) << S_T5_STATIC_KX_PLL_CCALFMAX)
-#define F_T5_STATIC_KX_PLL_CCALFMAX V_T5_STATIC_KX_PLL_CCALFMAX(1U)
-
-#define S_T5_STATIC_KX_PLL_CCALCVHOLD 19
-#define V_T5_STATIC_KX_PLL_CCALCVHOLD(x) ((x) << S_T5_STATIC_KX_PLL_CCALCVHOLD)
-#define F_T5_STATIC_KX_PLL_CCALCVHOLD V_T5_STATIC_KX_PLL_CCALCVHOLD(1U)
-
-#define S_T5_STATIC_KX_PLL_CCALBANDSEL 15
-#define M_T5_STATIC_KX_PLL_CCALBANDSEL 0xfU
-#define V_T5_STATIC_KX_PLL_CCALBANDSEL(x) ((x) << S_T5_STATIC_KX_PLL_CCALBANDSEL)
-#define G_T5_STATIC_KX_PLL_CCALBANDSEL(x) (((x) >> S_T5_STATIC_KX_PLL_CCALBANDSEL) & M_T5_STATIC_KX_PLL_CCALBANDSEL)
-
-#define S_T5_STATIC_KX_PLL_BGOFFSET 11
-#define M_T5_STATIC_KX_PLL_BGOFFSET 0xfU
-#define V_T5_STATIC_KX_PLL_BGOFFSET(x) ((x) << S_T5_STATIC_KX_PLL_BGOFFSET)
-#define G_T5_STATIC_KX_PLL_BGOFFSET(x) (((x) >> S_T5_STATIC_KX_PLL_BGOFFSET) & M_T5_STATIC_KX_PLL_BGOFFSET)
-
-#define S_T5_STATIC_KX_PLL_P 8
-#define M_T5_STATIC_KX_PLL_P 0x7U
-#define V_T5_STATIC_KX_PLL_P(x) ((x) << S_T5_STATIC_KX_PLL_P)
-#define G_T5_STATIC_KX_PLL_P(x) (((x) >> S_T5_STATIC_KX_PLL_P) & M_T5_STATIC_KX_PLL_P)
-
-#define S_T5_STATIC_KX_PLL_N2 4
-#define M_T5_STATIC_KX_PLL_N2 0xfU
-#define V_T5_STATIC_KX_PLL_N2(x) ((x) << S_T5_STATIC_KX_PLL_N2)
-#define G_T5_STATIC_KX_PLL_N2(x) (((x) >> S_T5_STATIC_KX_PLL_N2) & M_T5_STATIC_KX_PLL_N2)
-
-#define S_T5_STATIC_KX_PLL_N1 0
-#define M_T5_STATIC_KX_PLL_N1 0xfU
-#define V_T5_STATIC_KX_PLL_N1(x) ((x) << S_T5_STATIC_KX_PLL_N1)
-#define G_T5_STATIC_KX_PLL_N1(x) (((x) >> S_T5_STATIC_KX_PLL_N1) & M_T5_STATIC_KX_PLL_N1)
-
#define A_DBG_PVT_REG_DRVN 0x610c
#define S_PVT_REG_DRVN_EN 8
@@ -8778,18 +4438,6 @@
#define V_PVT_REG_DRVN_A(x) ((x) << S_PVT_REG_DRVN_A)
#define G_PVT_REG_DRVN_A(x) (((x) >> S_PVT_REG_DRVN_A) & M_PVT_REG_DRVN_A)
-#define A_DBG_T5_STATIC_KX_PLL_CONF2 0x610c
-
-#define S_T5_STATIC_KX_PLL_M 11
-#define M_T5_STATIC_KX_PLL_M 0x1ffU
-#define V_T5_STATIC_KX_PLL_M(x) ((x) << S_T5_STATIC_KX_PLL_M)
-#define G_T5_STATIC_KX_PLL_M(x) (((x) >> S_T5_STATIC_KX_PLL_M) & M_T5_STATIC_KX_PLL_M)
-
-#define S_T5_STATIC_KX_PLL_ANALOGTUNE 0
-#define M_T5_STATIC_KX_PLL_ANALOGTUNE 0x7ffU
-#define V_T5_STATIC_KX_PLL_ANALOGTUNE(x) ((x) << S_T5_STATIC_KX_PLL_ANALOGTUNE)
-#define G_T5_STATIC_KX_PLL_ANALOGTUNE(x) (((x) >> S_T5_STATIC_KX_PLL_ANALOGTUNE) & M_T5_STATIC_KX_PLL_ANALOGTUNE)
-
#define A_DBG_PVT_REG_DRVP 0x6110
#define S_PVT_REG_DRVP_EN 8
@@ -8806,30 +4454,6 @@
#define V_PVT_REG_DRVP_A(x) ((x) << S_PVT_REG_DRVP_A)
#define G_PVT_REG_DRVP_A(x) (((x) >> S_PVT_REG_DRVP_A) & M_PVT_REG_DRVP_A)
-#define A_DBG_T5_STATIC_C_DFS_CONF 0x6110
-
-#define S_STATIC_C_DFS_RANGEA 8
-#define M_STATIC_C_DFS_RANGEA 0x1fU
-#define V_STATIC_C_DFS_RANGEA(x) ((x) << S_STATIC_C_DFS_RANGEA)
-#define G_STATIC_C_DFS_RANGEA(x) (((x) >> S_STATIC_C_DFS_RANGEA) & M_STATIC_C_DFS_RANGEA)
-
-#define S_STATIC_C_DFS_RANGEB 3
-#define M_STATIC_C_DFS_RANGEB 0x1fU
-#define V_STATIC_C_DFS_RANGEB(x) ((x) << S_STATIC_C_DFS_RANGEB)
-#define G_STATIC_C_DFS_RANGEB(x) (((x) >> S_STATIC_C_DFS_RANGEB) & M_STATIC_C_DFS_RANGEB)
-
-#define S_STATIC_C_DFS_FFTUNE4 2
-#define V_STATIC_C_DFS_FFTUNE4(x) ((x) << S_STATIC_C_DFS_FFTUNE4)
-#define F_STATIC_C_DFS_FFTUNE4 V_STATIC_C_DFS_FFTUNE4(1U)
-
-#define S_STATIC_C_DFS_FFTUNE5 1
-#define V_STATIC_C_DFS_FFTUNE5(x) ((x) << S_STATIC_C_DFS_FFTUNE5)
-#define F_STATIC_C_DFS_FFTUNE5 V_STATIC_C_DFS_FFTUNE5(1U)
-
-#define S_STATIC_C_DFS_ENABLE 0
-#define V_STATIC_C_DFS_ENABLE(x) ((x) << S_STATIC_C_DFS_ENABLE)
-#define F_STATIC_C_DFS_ENABLE V_STATIC_C_DFS_ENABLE(1U)
-
#define A_DBG_PVT_REG_TERMN 0x6114
#define S_PVT_REG_TERMN_EN 8
@@ -8846,30 +4470,6 @@
#define V_PVT_REG_TERMN_A(x) ((x) << S_PVT_REG_TERMN_A)
#define G_PVT_REG_TERMN_A(x) (((x) >> S_PVT_REG_TERMN_A) & M_PVT_REG_TERMN_A)
-#define A_DBG_T5_STATIC_U_DFS_CONF 0x6114
-
-#define S_STATIC_U_DFS_RANGEA 8
-#define M_STATIC_U_DFS_RANGEA 0x1fU
-#define V_STATIC_U_DFS_RANGEA(x) ((x) << S_STATIC_U_DFS_RANGEA)
-#define G_STATIC_U_DFS_RANGEA(x) (((x) >> S_STATIC_U_DFS_RANGEA) & M_STATIC_U_DFS_RANGEA)
-
-#define S_STATIC_U_DFS_RANGEB 3
-#define M_STATIC_U_DFS_RANGEB 0x1fU
-#define V_STATIC_U_DFS_RANGEB(x) ((x) << S_STATIC_U_DFS_RANGEB)
-#define G_STATIC_U_DFS_RANGEB(x) (((x) >> S_STATIC_U_DFS_RANGEB) & M_STATIC_U_DFS_RANGEB)
-
-#define S_STATIC_U_DFS_FFTUNE4 2
-#define V_STATIC_U_DFS_FFTUNE4(x) ((x) << S_STATIC_U_DFS_FFTUNE4)
-#define F_STATIC_U_DFS_FFTUNE4 V_STATIC_U_DFS_FFTUNE4(1U)
-
-#define S_STATIC_U_DFS_FFTUNE5 1
-#define V_STATIC_U_DFS_FFTUNE5(x) ((x) << S_STATIC_U_DFS_FFTUNE5)
-#define F_STATIC_U_DFS_FFTUNE5 V_STATIC_U_DFS_FFTUNE5(1U)
-
-#define S_STATIC_U_DFS_ENABLE 0
-#define V_STATIC_U_DFS_ENABLE(x) ((x) << S_STATIC_U_DFS_ENABLE)
-#define F_STATIC_U_DFS_ENABLE V_STATIC_U_DFS_ENABLE(1U)
-
#define A_DBG_PVT_REG_TERMP 0x6118
#define S_PVT_REG_TERMP_EN 8
@@ -8886,88 +4486,6 @@
#define V_PVT_REG_TERMP_A(x) ((x) << S_PVT_REG_TERMP_A)
#define G_PVT_REG_TERMP_A(x) (((x) >> S_PVT_REG_TERMP_A) & M_PVT_REG_TERMP_A)
-#define A_DBG_GPIO_PE_EN 0x6118
-
-#define S_GPIO19_PE_EN 19
-#define V_GPIO19_PE_EN(x) ((x) << S_GPIO19_PE_EN)
-#define F_GPIO19_PE_EN V_GPIO19_PE_EN(1U)
-
-#define S_GPIO18_PE_EN 18
-#define V_GPIO18_PE_EN(x) ((x) << S_GPIO18_PE_EN)
-#define F_GPIO18_PE_EN V_GPIO18_PE_EN(1U)
-
-#define S_GPIO17_PE_EN 17
-#define V_GPIO17_PE_EN(x) ((x) << S_GPIO17_PE_EN)
-#define F_GPIO17_PE_EN V_GPIO17_PE_EN(1U)
-
-#define S_GPIO16_PE_EN 16
-#define V_GPIO16_PE_EN(x) ((x) << S_GPIO16_PE_EN)
-#define F_GPIO16_PE_EN V_GPIO16_PE_EN(1U)
-
-#define S_GPIO15_PE_EN 15
-#define V_GPIO15_PE_EN(x) ((x) << S_GPIO15_PE_EN)
-#define F_GPIO15_PE_EN V_GPIO15_PE_EN(1U)
-
-#define S_GPIO14_PE_EN 14
-#define V_GPIO14_PE_EN(x) ((x) << S_GPIO14_PE_EN)
-#define F_GPIO14_PE_EN V_GPIO14_PE_EN(1U)
-
-#define S_GPIO13_PE_EN 13
-#define V_GPIO13_PE_EN(x) ((x) << S_GPIO13_PE_EN)
-#define F_GPIO13_PE_EN V_GPIO13_PE_EN(1U)
-
-#define S_GPIO12_PE_EN 12
-#define V_GPIO12_PE_EN(x) ((x) << S_GPIO12_PE_EN)
-#define F_GPIO12_PE_EN V_GPIO12_PE_EN(1U)
-
-#define S_GPIO11_PE_EN 11
-#define V_GPIO11_PE_EN(x) ((x) << S_GPIO11_PE_EN)
-#define F_GPIO11_PE_EN V_GPIO11_PE_EN(1U)
-
-#define S_GPIO10_PE_EN 10
-#define V_GPIO10_PE_EN(x) ((x) << S_GPIO10_PE_EN)
-#define F_GPIO10_PE_EN V_GPIO10_PE_EN(1U)
-
-#define S_GPIO9_PE_EN 9
-#define V_GPIO9_PE_EN(x) ((x) << S_GPIO9_PE_EN)
-#define F_GPIO9_PE_EN V_GPIO9_PE_EN(1U)
-
-#define S_GPIO8_PE_EN 8
-#define V_GPIO8_PE_EN(x) ((x) << S_GPIO8_PE_EN)
-#define F_GPIO8_PE_EN V_GPIO8_PE_EN(1U)
-
-#define S_GPIO7_PE_EN 7
-#define V_GPIO7_PE_EN(x) ((x) << S_GPIO7_PE_EN)
-#define F_GPIO7_PE_EN V_GPIO7_PE_EN(1U)
-
-#define S_GPIO6_PE_EN 6
-#define V_GPIO6_PE_EN(x) ((x) << S_GPIO6_PE_EN)
-#define F_GPIO6_PE_EN V_GPIO6_PE_EN(1U)
-
-#define S_GPIO5_PE_EN 5
-#define V_GPIO5_PE_EN(x) ((x) << S_GPIO5_PE_EN)
-#define F_GPIO5_PE_EN V_GPIO5_PE_EN(1U)
-
-#define S_GPIO4_PE_EN 4
-#define V_GPIO4_PE_EN(x) ((x) << S_GPIO4_PE_EN)
-#define F_GPIO4_PE_EN V_GPIO4_PE_EN(1U)
-
-#define S_GPIO3_PE_EN 3
-#define V_GPIO3_PE_EN(x) ((x) << S_GPIO3_PE_EN)
-#define F_GPIO3_PE_EN V_GPIO3_PE_EN(1U)
-
-#define S_GPIO2_PE_EN 2
-#define V_GPIO2_PE_EN(x) ((x) << S_GPIO2_PE_EN)
-#define F_GPIO2_PE_EN V_GPIO2_PE_EN(1U)
-
-#define S_GPIO1_PE_EN 1
-#define V_GPIO1_PE_EN(x) ((x) << S_GPIO1_PE_EN)
-#define F_GPIO1_PE_EN V_GPIO1_PE_EN(1U)
-
-#define S_GPIO0_PE_EN 0
-#define V_GPIO0_PE_EN(x) ((x) << S_GPIO0_PE_EN)
-#define F_GPIO0_PE_EN V_GPIO0_PE_EN(1U)
-
#define A_DBG_PVT_REG_THRESHOLD 0x611c
#define S_PVT_CALIBRATION_DONE 8
@@ -9006,88 +4524,6 @@
#define V_THRESHOLD_DRVN_MIN_SYNC(x) ((x) << S_THRESHOLD_DRVN_MIN_SYNC)
#define F_THRESHOLD_DRVN_MIN_SYNC V_THRESHOLD_DRVN_MIN_SYNC(1U)
-#define A_DBG_GPIO_PS_EN 0x611c
-
-#define S_GPIO19_PS_EN 19
-#define V_GPIO19_PS_EN(x) ((x) << S_GPIO19_PS_EN)
-#define F_GPIO19_PS_EN V_GPIO19_PS_EN(1U)
-
-#define S_GPIO18_PS_EN 18
-#define V_GPIO18_PS_EN(x) ((x) << S_GPIO18_PS_EN)
-#define F_GPIO18_PS_EN V_GPIO18_PS_EN(1U)
-
-#define S_GPIO17_PS_EN 17
-#define V_GPIO17_PS_EN(x) ((x) << S_GPIO17_PS_EN)
-#define F_GPIO17_PS_EN V_GPIO17_PS_EN(1U)
-
-#define S_GPIO16_PS_EN 16
-#define V_GPIO16_PS_EN(x) ((x) << S_GPIO16_PS_EN)
-#define F_GPIO16_PS_EN V_GPIO16_PS_EN(1U)
-
-#define S_GPIO15_PS_EN 15
-#define V_GPIO15_PS_EN(x) ((x) << S_GPIO15_PS_EN)
-#define F_GPIO15_PS_EN V_GPIO15_PS_EN(1U)
-
-#define S_GPIO14_PS_EN 14
-#define V_GPIO14_PS_EN(x) ((x) << S_GPIO14_PS_EN)
-#define F_GPIO14_PS_EN V_GPIO14_PS_EN(1U)
-
-#define S_GPIO13_PS_EN 13
-#define V_GPIO13_PS_EN(x) ((x) << S_GPIO13_PS_EN)
-#define F_GPIO13_PS_EN V_GPIO13_PS_EN(1U)
-
-#define S_GPIO12_PS_EN 12
-#define V_GPIO12_PS_EN(x) ((x) << S_GPIO12_PS_EN)
-#define F_GPIO12_PS_EN V_GPIO12_PS_EN(1U)
-
-#define S_GPIO11_PS_EN 11
-#define V_GPIO11_PS_EN(x) ((x) << S_GPIO11_PS_EN)
-#define F_GPIO11_PS_EN V_GPIO11_PS_EN(1U)
-
-#define S_GPIO10_PS_EN 10
-#define V_GPIO10_PS_EN(x) ((x) << S_GPIO10_PS_EN)
-#define F_GPIO10_PS_EN V_GPIO10_PS_EN(1U)
-
-#define S_GPIO9_PS_EN 9
-#define V_GPIO9_PS_EN(x) ((x) << S_GPIO9_PS_EN)
-#define F_GPIO9_PS_EN V_GPIO9_PS_EN(1U)
-
-#define S_GPIO8_PS_EN 8
-#define V_GPIO8_PS_EN(x) ((x) << S_GPIO8_PS_EN)
-#define F_GPIO8_PS_EN V_GPIO8_PS_EN(1U)
-
-#define S_GPIO7_PS_EN 7
-#define V_GPIO7_PS_EN(x) ((x) << S_GPIO7_PS_EN)
-#define F_GPIO7_PS_EN V_GPIO7_PS_EN(1U)
-
-#define S_GPIO6_PS_EN 6
-#define V_GPIO6_PS_EN(x) ((x) << S_GPIO6_PS_EN)
-#define F_GPIO6_PS_EN V_GPIO6_PS_EN(1U)
-
-#define S_GPIO5_PS_EN 5
-#define V_GPIO5_PS_EN(x) ((x) << S_GPIO5_PS_EN)
-#define F_GPIO5_PS_EN V_GPIO5_PS_EN(1U)
-
-#define S_GPIO4_PS_EN 4
-#define V_GPIO4_PS_EN(x) ((x) << S_GPIO4_PS_EN)
-#define F_GPIO4_PS_EN V_GPIO4_PS_EN(1U)
-
-#define S_GPIO3_PS_EN 3
-#define V_GPIO3_PS_EN(x) ((x) << S_GPIO3_PS_EN)
-#define F_GPIO3_PS_EN V_GPIO3_PS_EN(1U)
-
-#define S_GPIO2_PS_EN 2
-#define V_GPIO2_PS_EN(x) ((x) << S_GPIO2_PS_EN)
-#define F_GPIO2_PS_EN V_GPIO2_PS_EN(1U)
-
-#define S_GPIO1_PS_EN 1
-#define V_GPIO1_PS_EN(x) ((x) << S_GPIO1_PS_EN)
-#define F_GPIO1_PS_EN V_GPIO1_PS_EN(1U)
-
-#define S_GPIO0_PS_EN 0
-#define V_GPIO0_PS_EN(x) ((x) << S_GPIO0_PS_EN)
-#define F_GPIO0_PS_EN V_GPIO0_PS_EN(1U)
-
#define A_DBG_PVT_REG_IN_TERMP 0x6120
#define S_REG_IN_TERMP_B 4
@@ -9100,7 +4536,6 @@
#define V_REG_IN_TERMP_A(x) ((x) << S_REG_IN_TERMP_A)
#define G_REG_IN_TERMP_A(x) (((x) >> S_REG_IN_TERMP_A) & M_REG_IN_TERMP_A)
-#define A_DBG_EFUSE_BYTE16_19 0x6120
#define A_DBG_PVT_REG_IN_TERMN 0x6124
#define S_REG_IN_TERMN_B 4
@@ -9113,7 +4548,6 @@
#define V_REG_IN_TERMN_A(x) ((x) << S_REG_IN_TERMN_A)
#define G_REG_IN_TERMN_A(x) (((x) >> S_REG_IN_TERMN_A) & M_REG_IN_TERMN_A)
-#define A_DBG_EFUSE_BYTE20_23 0x6124
#define A_DBG_PVT_REG_IN_DRVP 0x6128
#define S_REG_IN_DRVP_B 4
@@ -9126,7 +4560,6 @@
#define V_REG_IN_DRVP_A(x) ((x) << S_REG_IN_DRVP_A)
#define G_REG_IN_DRVP_A(x) (((x) >> S_REG_IN_DRVP_A) & M_REG_IN_DRVP_A)
-#define A_DBG_EFUSE_BYTE24_27 0x6128
#define A_DBG_PVT_REG_IN_DRVN 0x612c
#define S_REG_IN_DRVN_B 4
@@ -9139,7 +4572,6 @@
#define V_REG_IN_DRVN_A(x) ((x) << S_REG_IN_DRVN_A)
#define G_REG_IN_DRVN_A(x) (((x) >> S_REG_IN_DRVN_A) & M_REG_IN_DRVN_A)
-#define A_DBG_EFUSE_BYTE28_31 0x612c
#define A_DBG_PVT_REG_OUT_TERMP 0x6130
#define S_REG_OUT_TERMP_B 4
@@ -9152,7 +4584,6 @@
#define V_REG_OUT_TERMP_A(x) ((x) << S_REG_OUT_TERMP_A)
#define G_REG_OUT_TERMP_A(x) (((x) >> S_REG_OUT_TERMP_A) & M_REG_OUT_TERMP_A)
-#define A_DBG_EFUSE_BYTE32_35 0x6130
#define A_DBG_PVT_REG_OUT_TERMN 0x6134
#define S_REG_OUT_TERMN_B 4
@@ -9165,7 +4596,6 @@
#define V_REG_OUT_TERMN_A(x) ((x) << S_REG_OUT_TERMN_A)
#define G_REG_OUT_TERMN_A(x) (((x) >> S_REG_OUT_TERMN_A) & M_REG_OUT_TERMN_A)
-#define A_DBG_EFUSE_BYTE36_39 0x6134
#define A_DBG_PVT_REG_OUT_DRVP 0x6138
#define S_REG_OUT_DRVP_B 4
@@ -9178,7 +4608,6 @@
#define V_REG_OUT_DRVP_A(x) ((x) << S_REG_OUT_DRVP_A)
#define G_REG_OUT_DRVP_A(x) (((x) >> S_REG_OUT_DRVP_A) & M_REG_OUT_DRVP_A)
-#define A_DBG_EFUSE_BYTE40_43 0x6138
#define A_DBG_PVT_REG_OUT_DRVN 0x613c
#define S_REG_OUT_DRVN_B 4
@@ -9191,7 +4620,6 @@
#define V_REG_OUT_DRVN_A(x) ((x) << S_REG_OUT_DRVN_A)
#define G_REG_OUT_DRVN_A(x) (((x) >> S_REG_OUT_DRVN_A) & M_REG_OUT_DRVN_A)
-#define A_DBG_EFUSE_BYTE44_47 0x613c
#define A_DBG_PVT_REG_HISTORY_TERMP 0x6140
#define S_TERMP_B_HISTORY 4
@@ -9204,7 +4632,6 @@
#define V_TERMP_A_HISTORY(x) ((x) << S_TERMP_A_HISTORY)
#define G_TERMP_A_HISTORY(x) (((x) >> S_TERMP_A_HISTORY) & M_TERMP_A_HISTORY)
-#define A_DBG_EFUSE_BYTE48_51 0x6140
#define A_DBG_PVT_REG_HISTORY_TERMN 0x6144
#define S_TERMN_B_HISTORY 4
@@ -9217,7 +4644,6 @@
#define V_TERMN_A_HISTORY(x) ((x) << S_TERMN_A_HISTORY)
#define G_TERMN_A_HISTORY(x) (((x) >> S_TERMN_A_HISTORY) & M_TERMN_A_HISTORY)
-#define A_DBG_EFUSE_BYTE52_55 0x6144
#define A_DBG_PVT_REG_HISTORY_DRVP 0x6148
#define S_DRVP_B_HISTORY 4
@@ -9230,7 +4656,6 @@
#define V_DRVP_A_HISTORY(x) ((x) << S_DRVP_A_HISTORY)
#define G_DRVP_A_HISTORY(x) (((x) >> S_DRVP_A_HISTORY) & M_DRVP_A_HISTORY)
-#define A_DBG_EFUSE_BYTE56_59 0x6148
#define A_DBG_PVT_REG_HISTORY_DRVN 0x614c
#define S_DRVN_B_HISTORY 4
@@ -9243,7 +4668,6 @@
#define V_DRVN_A_HISTORY(x) ((x) << S_DRVN_A_HISTORY)
#define G_DRVN_A_HISTORY(x) (((x) >> S_DRVN_A_HISTORY) & M_DRVN_A_HISTORY)
-#define A_DBG_EFUSE_BYTE60_63 0x614c
#define A_DBG_PVT_REG_SAMPLE_WAIT_CLKS 0x6150
#define S_SAMPLE_WAIT_CLKS 0
@@ -11083,18 +6507,6 @@
#define V_EXT_MEM_SIZE(x) ((x) << S_EXT_MEM_SIZE)
#define G_EXT_MEM_SIZE(x) (((x) >> S_EXT_MEM_SIZE) & M_EXT_MEM_SIZE)
-#define A_MA_EXT_MEMORY0_BAR 0x77c8
-
-#define S_EXT_MEM0_BASE 16
-#define M_EXT_MEM0_BASE 0xfffU
-#define V_EXT_MEM0_BASE(x) ((x) << S_EXT_MEM0_BASE)
-#define G_EXT_MEM0_BASE(x) (((x) >> S_EXT_MEM0_BASE) & M_EXT_MEM0_BASE)
-
-#define S_EXT_MEM0_SIZE 0
-#define M_EXT_MEM0_SIZE 0xfffU
-#define V_EXT_MEM0_SIZE(x) ((x) << S_EXT_MEM0_SIZE)
-#define G_EXT_MEM0_SIZE(x) (((x) >> S_EXT_MEM0_SIZE) & M_EXT_MEM0_SIZE)
-
#define A_MA_HOST_MEMORY_BAR 0x77cc
#define S_HMA_BASE 16
@@ -11118,15 +6530,6 @@
#define V_EXT_MEM_PAGE_SIZE(x) ((x) << S_EXT_MEM_PAGE_SIZE)
#define G_EXT_MEM_PAGE_SIZE(x) (((x) >> S_EXT_MEM_PAGE_SIZE) & M_EXT_MEM_PAGE_SIZE)
-#define S_BRC_MODE1 6
-#define V_BRC_MODE1(x) ((x) << S_BRC_MODE1)
-#define F_BRC_MODE1 V_BRC_MODE1(1U)
-
-#define S_EXT_MEM_PAGE_SIZE1 4
-#define M_EXT_MEM_PAGE_SIZE1 0x3U
-#define V_EXT_MEM_PAGE_SIZE1(x) ((x) << S_EXT_MEM_PAGE_SIZE1)
-#define G_EXT_MEM_PAGE_SIZE1(x) (((x) >> S_EXT_MEM_PAGE_SIZE1) & M_EXT_MEM_PAGE_SIZE1)
-
#define A_MA_ARB_CTRL 0x77d4
#define S_DIS_PAGE_HINT 1
@@ -11137,10 +6540,6 @@
#define V_DIS_ADV_ARB(x) ((x) << S_DIS_ADV_ARB)
#define F_DIS_ADV_ARB V_DIS_ADV_ARB(1U)
-#define S_DIS_BANK_FAIR 2
-#define V_DIS_BANK_FAIR(x) ((x) << S_DIS_BANK_FAIR)
-#define F_DIS_BANK_FAIR V_DIS_BANK_FAIR(1U)
-
#define A_MA_TARGET_MEM_ENABLE 0x77d8
#define S_HMA_ENABLE 3
@@ -11159,18 +6558,6 @@
#define V_EDRAM0_ENABLE(x) ((x) << S_EDRAM0_ENABLE)
#define F_EDRAM0_ENABLE V_EDRAM0_ENABLE(1U)
-#define S_HMA_MUX 5
-#define V_HMA_MUX(x) ((x) << S_HMA_MUX)
-#define F_HMA_MUX V_HMA_MUX(1U)
-
-#define S_EXT_MEM1_ENABLE 4
-#define V_EXT_MEM1_ENABLE(x) ((x) << S_EXT_MEM1_ENABLE)
-#define F_EXT_MEM1_ENABLE V_EXT_MEM1_ENABLE(1U)
-
-#define S_EXT_MEM0_ENABLE 2
-#define V_EXT_MEM0_ENABLE(x) ((x) << S_EXT_MEM0_ENABLE)
-#define F_EXT_MEM0_ENABLE V_EXT_MEM0_ENABLE(1U)
-
#define A_MA_INT_ENABLE 0x77dc
#define S_MEM_PERR_INT_ENABLE 1
@@ -11181,10 +6568,6 @@
#define V_MEM_WRAP_INT_ENABLE(x) ((x) << S_MEM_WRAP_INT_ENABLE)
#define F_MEM_WRAP_INT_ENABLE V_MEM_WRAP_INT_ENABLE(1U)
-#define S_MEM_TO_INT_ENABLE 2
-#define V_MEM_TO_INT_ENABLE(x) ((x) << S_MEM_TO_INT_ENABLE)
-#define F_MEM_TO_INT_ENABLE V_MEM_TO_INT_ENABLE(1U)
-
#define A_MA_INT_CAUSE 0x77e0
#define S_MEM_PERR_INT_CAUSE 1
@@ -11195,10 +6578,6 @@
#define V_MEM_WRAP_INT_CAUSE(x) ((x) << S_MEM_WRAP_INT_CAUSE)
#define F_MEM_WRAP_INT_CAUSE V_MEM_WRAP_INT_CAUSE(1U)
-#define S_MEM_TO_INT_CAUSE 2
-#define V_MEM_TO_INT_CAUSE(x) ((x) << S_MEM_TO_INT_CAUSE)
-#define F_MEM_TO_INT_CAUSE V_MEM_TO_INT_CAUSE(1U)
-
#define A_MA_INT_WRAP_STATUS 0x77e4
#define S_MEM_WRAP_ADDRESS 4
@@ -11355,7 +6734,6 @@
#define V_CL0_PAR_RDQUEUE_ERROR_EN(x) ((x) << S_CL0_PAR_RDQUEUE_ERROR_EN)
#define F_CL0_PAR_RDQUEUE_ERROR_EN V_CL0_PAR_RDQUEUE_ERROR_EN(1U)
-#define A_MA_PARITY_ERROR_ENABLE1 0x77f0
#define A_MA_PARITY_ERROR_STATUS 0x77f4
#define S_TP_DMARBT_PAR_ERROR 31
@@ -11486,7 +6864,6 @@
#define V_CL0_PAR_RDQUEUE_ERROR(x) ((x) << S_CL0_PAR_RDQUEUE_ERROR)
#define F_CL0_PAR_RDQUEUE_ERROR V_CL0_PAR_RDQUEUE_ERROR(1U)
-#define A_MA_PARITY_ERROR_STATUS1 0x77f4
#define A_MA_SGE_PCIE_COHERANCY_CTRL 0x77f8
#define S_BONUS_REG 6
@@ -11514,737 +6891,6 @@
#define V_UE_ENABLE(x) ((x) << S_UE_ENABLE)
#define F_UE_ENABLE V_UE_ENABLE(1U)
-#define S_FUTURE_EXPANSION 1
-#define M_FUTURE_EXPANSION 0x7fffffffU
-#define V_FUTURE_EXPANSION(x) ((x) << S_FUTURE_EXPANSION)
-#define G_FUTURE_EXPANSION(x) (((x) >> S_FUTURE_EXPANSION) & M_FUTURE_EXPANSION)
-
-#define A_MA_PARITY_ERROR_ENABLE2 0x7800
-
-#define S_ARB4_PAR_WRQUEUE_ERROR_EN 1
-#define V_ARB4_PAR_WRQUEUE_ERROR_EN(x) ((x) << S_ARB4_PAR_WRQUEUE_ERROR_EN)
-#define F_ARB4_PAR_WRQUEUE_ERROR_EN V_ARB4_PAR_WRQUEUE_ERROR_EN(1U)
-
-#define S_ARB4_PAR_RDQUEUE_ERROR_EN 0
-#define V_ARB4_PAR_RDQUEUE_ERROR_EN(x) ((x) << S_ARB4_PAR_RDQUEUE_ERROR_EN)
-#define F_ARB4_PAR_RDQUEUE_ERROR_EN V_ARB4_PAR_RDQUEUE_ERROR_EN(1U)
-
-#define A_MA_PARITY_ERROR_STATUS2 0x7804
-
-#define S_ARB4_PAR_WRQUEUE_ERROR 1
-#define V_ARB4_PAR_WRQUEUE_ERROR(x) ((x) << S_ARB4_PAR_WRQUEUE_ERROR)
-#define F_ARB4_PAR_WRQUEUE_ERROR V_ARB4_PAR_WRQUEUE_ERROR(1U)
-
-#define S_ARB4_PAR_RDQUEUE_ERROR 0
-#define V_ARB4_PAR_RDQUEUE_ERROR(x) ((x) << S_ARB4_PAR_RDQUEUE_ERROR)
-#define F_ARB4_PAR_RDQUEUE_ERROR V_ARB4_PAR_RDQUEUE_ERROR(1U)
-
-#define A_MA_EXT_MEMORY1_BAR 0x7808
-
-#define S_EXT_MEM1_BASE 16
-#define M_EXT_MEM1_BASE 0xfffU
-#define V_EXT_MEM1_BASE(x) ((x) << S_EXT_MEM1_BASE)
-#define G_EXT_MEM1_BASE(x) (((x) >> S_EXT_MEM1_BASE) & M_EXT_MEM1_BASE)
-
-#define S_EXT_MEM1_SIZE 0
-#define M_EXT_MEM1_SIZE 0xfffU
-#define V_EXT_MEM1_SIZE(x) ((x) << S_EXT_MEM1_SIZE)
-#define G_EXT_MEM1_SIZE(x) (((x) >> S_EXT_MEM1_SIZE) & M_EXT_MEM1_SIZE)
-
-#define A_MA_PMTX_THROTTLE 0x780c
-
-#define S_FL_ENABLE 31
-#define V_FL_ENABLE(x) ((x) << S_FL_ENABLE)
-#define F_FL_ENABLE V_FL_ENABLE(1U)
-
-#define S_FL_LIMIT 0
-#define M_FL_LIMIT 0xffU
-#define V_FL_LIMIT(x) ((x) << S_FL_LIMIT)
-#define G_FL_LIMIT(x) (((x) >> S_FL_LIMIT) & M_FL_LIMIT)
-
-#define A_MA_PMRX_THROTTLE 0x7810
-#define A_MA_SGE_TH0_WRDATA_CNT 0x7814
-#define A_MA_SGE_TH1_WRDATA_CNT 0x7818
-#define A_MA_ULPTX_WRDATA_CNT 0x781c
-#define A_MA_ULPRX_WRDATA_CNT 0x7820
-#define A_MA_ULPTXRX_WRDATA_CNT 0x7824
-#define A_MA_TP_TH0_WRDATA_CNT 0x7828
-#define A_MA_TP_TH1_WRDATA_CNT 0x782c
-#define A_MA_LE_WRDATA_CNT 0x7830
-#define A_MA_CIM_WRDATA_CNT 0x7834
-#define A_MA_PCIE_WRDATA_CNT 0x7838
-#define A_MA_PMTX_WRDATA_CNT 0x783c
-#define A_MA_PMRX_WRDATA_CNT 0x7840
-#define A_MA_HMA_WRDATA_CNT 0x7844
-#define A_MA_SGE_TH0_RDDATA_CNT 0x7848
-#define A_MA_SGE_TH1_RDDATA_CNT 0x784c
-#define A_MA_ULPTX_RDDATA_CNT 0x7850
-#define A_MA_ULPRX_RDDATA_CNT 0x7854
-#define A_MA_ULPTXRX_RDDATA_CNT 0x7858
-#define A_MA_TP_TH0_RDDATA_CNT 0x785c
-#define A_MA_TP_TH1_RDDATA_CNT 0x7860
-#define A_MA_LE_RDDATA_CNT 0x7864
-#define A_MA_CIM_RDDATA_CNT 0x7868
-#define A_MA_PCIE_RDDATA_CNT 0x786c
-#define A_MA_PMTX_RDDATA_CNT 0x7870
-#define A_MA_PMRX_RDDATA_CNT 0x7874
-#define A_MA_HMA_RDDATA_CNT 0x7878
-#define A_MA_EDRAM0_WRDATA_CNT1 0x787c
-#define A_MA_EDRAM0_WRDATA_CNT0 0x7880
-#define A_MA_EDRAM1_WRDATA_CNT1 0x7884
-#define A_MA_EDRAM1_WRDATA_CNT0 0x7888
-#define A_MA_EXT_MEMORY0_WRDATA_CNT1 0x788c
-#define A_MA_EXT_MEMORY0_WRDATA_CNT0 0x7890
-#define A_MA_HOST_MEMORY_WRDATA_CNT1 0x7894
-#define A_MA_HOST_MEMORY_WRDATA_CNT0 0x7898
-#define A_MA_EXT_MEMORY1_WRDATA_CNT1 0x789c
-#define A_MA_EXT_MEMORY1_WRDATA_CNT0 0x78a0
-#define A_MA_EDRAM0_RDDATA_CNT1 0x78a4
-#define A_MA_EDRAM0_RDDATA_CNT0 0x78a8
-#define A_MA_EDRAM1_RDDATA_CNT1 0x78ac
-#define A_MA_EDRAM1_RDDATA_CNT0 0x78b0
-#define A_MA_EXT_MEMORY0_RDDATA_CNT1 0x78b4
-#define A_MA_EXT_MEMORY0_RDDATA_CNT0 0x78b8
-#define A_MA_HOST_MEMORY_RDDATA_CNT1 0x78bc
-#define A_MA_HOST_MEMORY_RDDATA_CNT0 0x78c0
-#define A_MA_EXT_MEMORY1_RDDATA_CNT1 0x78c4
-#define A_MA_EXT_MEMORY1_RDDATA_CNT0 0x78c8
-#define A_MA_TIMEOUT_CFG 0x78cc
-
-#define S_CLR 31
-#define V_CLR(x) ((x) << S_CLR)
-#define F_CLR V_CLR(1U)
-
-#define S_CNT_LOCK 30
-#define V_CNT_LOCK(x) ((x) << S_CNT_LOCK)
-#define F_CNT_LOCK V_CNT_LOCK(1U)
-
-#define S_WRN 24
-#define V_WRN(x) ((x) << S_WRN)
-#define F_WRN V_WRN(1U)
-
-#define S_DIR 23
-#define V_DIR(x) ((x) << S_DIR)
-#define F_DIR V_DIR(1U)
-
-#define S_TO_BUS 22
-#define V_TO_BUS(x) ((x) << S_TO_BUS)
-#define F_TO_BUS V_TO_BUS(1U)
-
-#define S_CLIENT 16
-#define M_CLIENT 0xfU
-#define V_CLIENT(x) ((x) << S_CLIENT)
-#define G_CLIENT(x) (((x) >> S_CLIENT) & M_CLIENT)
-
-#define S_DELAY 0
-#define M_DELAY 0xffffU
-#define V_DELAY(x) ((x) << S_DELAY)
-#define G_DELAY(x) (((x) >> S_DELAY) & M_DELAY)
-
-#define A_MA_TIMEOUT_CNT 0x78d0
-
-#define S_CNT_VAL 0
-#define M_CNT_VAL 0xffffU
-#define V_CNT_VAL(x) ((x) << S_CNT_VAL)
-#define G_CNT_VAL(x) (((x) >> S_CNT_VAL) & M_CNT_VAL)
-
-#define A_MA_WRITE_TIMEOUT_ERROR_ENABLE 0x78d4
-
-#define S_FUTURE_CEXPANSION 29
-#define M_FUTURE_CEXPANSION 0x7U
-#define V_FUTURE_CEXPANSION(x) ((x) << S_FUTURE_CEXPANSION)
-#define G_FUTURE_CEXPANSION(x) (((x) >> S_FUTURE_CEXPANSION) & M_FUTURE_CEXPANSION)
-
-#define S_CL12_WR_CMD_TO_EN 28
-#define V_CL12_WR_CMD_TO_EN(x) ((x) << S_CL12_WR_CMD_TO_EN)
-#define F_CL12_WR_CMD_TO_EN V_CL12_WR_CMD_TO_EN(1U)
-
-#define S_CL11_WR_CMD_TO_EN 27
-#define V_CL11_WR_CMD_TO_EN(x) ((x) << S_CL11_WR_CMD_TO_EN)
-#define F_CL11_WR_CMD_TO_EN V_CL11_WR_CMD_TO_EN(1U)
-
-#define S_CL10_WR_CMD_TO_EN 26
-#define V_CL10_WR_CMD_TO_EN(x) ((x) << S_CL10_WR_CMD_TO_EN)
-#define F_CL10_WR_CMD_TO_EN V_CL10_WR_CMD_TO_EN(1U)
-
-#define S_CL9_WR_CMD_TO_EN 25
-#define V_CL9_WR_CMD_TO_EN(x) ((x) << S_CL9_WR_CMD_TO_EN)
-#define F_CL9_WR_CMD_TO_EN V_CL9_WR_CMD_TO_EN(1U)
-
-#define S_CL8_WR_CMD_TO_EN 24
-#define V_CL8_WR_CMD_TO_EN(x) ((x) << S_CL8_WR_CMD_TO_EN)
-#define F_CL8_WR_CMD_TO_EN V_CL8_WR_CMD_TO_EN(1U)
-
-#define S_CL7_WR_CMD_TO_EN 23
-#define V_CL7_WR_CMD_TO_EN(x) ((x) << S_CL7_WR_CMD_TO_EN)
-#define F_CL7_WR_CMD_TO_EN V_CL7_WR_CMD_TO_EN(1U)
-
-#define S_CL6_WR_CMD_TO_EN 22
-#define V_CL6_WR_CMD_TO_EN(x) ((x) << S_CL6_WR_CMD_TO_EN)
-#define F_CL6_WR_CMD_TO_EN V_CL6_WR_CMD_TO_EN(1U)
-
-#define S_CL5_WR_CMD_TO_EN 21
-#define V_CL5_WR_CMD_TO_EN(x) ((x) << S_CL5_WR_CMD_TO_EN)
-#define F_CL5_WR_CMD_TO_EN V_CL5_WR_CMD_TO_EN(1U)
-
-#define S_CL4_WR_CMD_TO_EN 20
-#define V_CL4_WR_CMD_TO_EN(x) ((x) << S_CL4_WR_CMD_TO_EN)
-#define F_CL4_WR_CMD_TO_EN V_CL4_WR_CMD_TO_EN(1U)
-
-#define S_CL3_WR_CMD_TO_EN 19
-#define V_CL3_WR_CMD_TO_EN(x) ((x) << S_CL3_WR_CMD_TO_EN)
-#define F_CL3_WR_CMD_TO_EN V_CL3_WR_CMD_TO_EN(1U)
-
-#define S_CL2_WR_CMD_TO_EN 18
-#define V_CL2_WR_CMD_TO_EN(x) ((x) << S_CL2_WR_CMD_TO_EN)
-#define F_CL2_WR_CMD_TO_EN V_CL2_WR_CMD_TO_EN(1U)
-
-#define S_CL1_WR_CMD_TO_EN 17
-#define V_CL1_WR_CMD_TO_EN(x) ((x) << S_CL1_WR_CMD_TO_EN)
-#define F_CL1_WR_CMD_TO_EN V_CL1_WR_CMD_TO_EN(1U)
-
-#define S_CL0_WR_CMD_TO_EN 16
-#define V_CL0_WR_CMD_TO_EN(x) ((x) << S_CL0_WR_CMD_TO_EN)
-#define F_CL0_WR_CMD_TO_EN V_CL0_WR_CMD_TO_EN(1U)
-
-#define S_FUTURE_DEXPANSION 13
-#define M_FUTURE_DEXPANSION 0x7U
-#define V_FUTURE_DEXPANSION(x) ((x) << S_FUTURE_DEXPANSION)
-#define G_FUTURE_DEXPANSION(x) (((x) >> S_FUTURE_DEXPANSION) & M_FUTURE_DEXPANSION)
-
-#define S_CL12_WR_DATA_TO_EN 12
-#define V_CL12_WR_DATA_TO_EN(x) ((x) << S_CL12_WR_DATA_TO_EN)
-#define F_CL12_WR_DATA_TO_EN V_CL12_WR_DATA_TO_EN(1U)
-
-#define S_CL11_WR_DATA_TO_EN 11
-#define V_CL11_WR_DATA_TO_EN(x) ((x) << S_CL11_WR_DATA_TO_EN)
-#define F_CL11_WR_DATA_TO_EN V_CL11_WR_DATA_TO_EN(1U)
-
-#define S_CL10_WR_DATA_TO_EN 10
-#define V_CL10_WR_DATA_TO_EN(x) ((x) << S_CL10_WR_DATA_TO_EN)
-#define F_CL10_WR_DATA_TO_EN V_CL10_WR_DATA_TO_EN(1U)
-
-#define S_CL9_WR_DATA_TO_EN 9
-#define V_CL9_WR_DATA_TO_EN(x) ((x) << S_CL9_WR_DATA_TO_EN)
-#define F_CL9_WR_DATA_TO_EN V_CL9_WR_DATA_TO_EN(1U)
-
-#define S_CL8_WR_DATA_TO_EN 8
-#define V_CL8_WR_DATA_TO_EN(x) ((x) << S_CL8_WR_DATA_TO_EN)
-#define F_CL8_WR_DATA_TO_EN V_CL8_WR_DATA_TO_EN(1U)
-
-#define S_CL7_WR_DATA_TO_EN 7
-#define V_CL7_WR_DATA_TO_EN(x) ((x) << S_CL7_WR_DATA_TO_EN)
-#define F_CL7_WR_DATA_TO_EN V_CL7_WR_DATA_TO_EN(1U)
-
-#define S_CL6_WR_DATA_TO_EN 6
-#define V_CL6_WR_DATA_TO_EN(x) ((x) << S_CL6_WR_DATA_TO_EN)
-#define F_CL6_WR_DATA_TO_EN V_CL6_WR_DATA_TO_EN(1U)
-
-#define S_CL5_WR_DATA_TO_EN 5
-#define V_CL5_WR_DATA_TO_EN(x) ((x) << S_CL5_WR_DATA_TO_EN)
-#define F_CL5_WR_DATA_TO_EN V_CL5_WR_DATA_TO_EN(1U)
-
-#define S_CL4_WR_DATA_TO_EN 4
-#define V_CL4_WR_DATA_TO_EN(x) ((x) << S_CL4_WR_DATA_TO_EN)
-#define F_CL4_WR_DATA_TO_EN V_CL4_WR_DATA_TO_EN(1U)
-
-#define S_CL3_WR_DATA_TO_EN 3
-#define V_CL3_WR_DATA_TO_EN(x) ((x) << S_CL3_WR_DATA_TO_EN)
-#define F_CL3_WR_DATA_TO_EN V_CL3_WR_DATA_TO_EN(1U)
-
-#define S_CL2_WR_DATA_TO_EN 2
-#define V_CL2_WR_DATA_TO_EN(x) ((x) << S_CL2_WR_DATA_TO_EN)
-#define F_CL2_WR_DATA_TO_EN V_CL2_WR_DATA_TO_EN(1U)
-
-#define S_CL1_WR_DATA_TO_EN 1
-#define V_CL1_WR_DATA_TO_EN(x) ((x) << S_CL1_WR_DATA_TO_EN)
-#define F_CL1_WR_DATA_TO_EN V_CL1_WR_DATA_TO_EN(1U)
-
-#define S_CL0_WR_DATA_TO_EN 0
-#define V_CL0_WR_DATA_TO_EN(x) ((x) << S_CL0_WR_DATA_TO_EN)
-#define F_CL0_WR_DATA_TO_EN V_CL0_WR_DATA_TO_EN(1U)
-
-#define A_MA_WRITE_TIMEOUT_ERROR_STATUS 0x78d8
-
-#define S_CL12_WR_CMD_TO_ERROR 28
-#define V_CL12_WR_CMD_TO_ERROR(x) ((x) << S_CL12_WR_CMD_TO_ERROR)
-#define F_CL12_WR_CMD_TO_ERROR V_CL12_WR_CMD_TO_ERROR(1U)
-
-#define S_CL11_WR_CMD_TO_ERROR 27
-#define V_CL11_WR_CMD_TO_ERROR(x) ((x) << S_CL11_WR_CMD_TO_ERROR)
-#define F_CL11_WR_CMD_TO_ERROR V_CL11_WR_CMD_TO_ERROR(1U)
-
-#define S_CL10_WR_CMD_TO_ERROR 26
-#define V_CL10_WR_CMD_TO_ERROR(x) ((x) << S_CL10_WR_CMD_TO_ERROR)
-#define F_CL10_WR_CMD_TO_ERROR V_CL10_WR_CMD_TO_ERROR(1U)
-
-#define S_CL9_WR_CMD_TO_ERROR 25
-#define V_CL9_WR_CMD_TO_ERROR(x) ((x) << S_CL9_WR_CMD_TO_ERROR)
-#define F_CL9_WR_CMD_TO_ERROR V_CL9_WR_CMD_TO_ERROR(1U)
-
-#define S_CL8_WR_CMD_TO_ERROR 24
-#define V_CL8_WR_CMD_TO_ERROR(x) ((x) << S_CL8_WR_CMD_TO_ERROR)
-#define F_CL8_WR_CMD_TO_ERROR V_CL8_WR_CMD_TO_ERROR(1U)
-
-#define S_CL7_WR_CMD_TO_ERROR 23
-#define V_CL7_WR_CMD_TO_ERROR(x) ((x) << S_CL7_WR_CMD_TO_ERROR)
-#define F_CL7_WR_CMD_TO_ERROR V_CL7_WR_CMD_TO_ERROR(1U)
-
-#define S_CL6_WR_CMD_TO_ERROR 22
-#define V_CL6_WR_CMD_TO_ERROR(x) ((x) << S_CL6_WR_CMD_TO_ERROR)
-#define F_CL6_WR_CMD_TO_ERROR V_CL6_WR_CMD_TO_ERROR(1U)
-
-#define S_CL5_WR_CMD_TO_ERROR 21
-#define V_CL5_WR_CMD_TO_ERROR(x) ((x) << S_CL5_WR_CMD_TO_ERROR)
-#define F_CL5_WR_CMD_TO_ERROR V_CL5_WR_CMD_TO_ERROR(1U)
-
-#define S_CL4_WR_CMD_TO_ERROR 20
-#define V_CL4_WR_CMD_TO_ERROR(x) ((x) << S_CL4_WR_CMD_TO_ERROR)
-#define F_CL4_WR_CMD_TO_ERROR V_CL4_WR_CMD_TO_ERROR(1U)
-
-#define S_CL3_WR_CMD_TO_ERROR 19
-#define V_CL3_WR_CMD_TO_ERROR(x) ((x) << S_CL3_WR_CMD_TO_ERROR)
-#define F_CL3_WR_CMD_TO_ERROR V_CL3_WR_CMD_TO_ERROR(1U)
-
-#define S_CL2_WR_CMD_TO_ERROR 18
-#define V_CL2_WR_CMD_TO_ERROR(x) ((x) << S_CL2_WR_CMD_TO_ERROR)
-#define F_CL2_WR_CMD_TO_ERROR V_CL2_WR_CMD_TO_ERROR(1U)
-
-#define S_CL1_WR_CMD_TO_ERROR 17
-#define V_CL1_WR_CMD_TO_ERROR(x) ((x) << S_CL1_WR_CMD_TO_ERROR)
-#define F_CL1_WR_CMD_TO_ERROR V_CL1_WR_CMD_TO_ERROR(1U)
-
-#define S_CL0_WR_CMD_TO_ERROR 16
-#define V_CL0_WR_CMD_TO_ERROR(x) ((x) << S_CL0_WR_CMD_TO_ERROR)
-#define F_CL0_WR_CMD_TO_ERROR V_CL0_WR_CMD_TO_ERROR(1U)
-
-#define S_CL12_WR_DATA_TO_ERROR 12
-#define V_CL12_WR_DATA_TO_ERROR(x) ((x) << S_CL12_WR_DATA_TO_ERROR)
-#define F_CL12_WR_DATA_TO_ERROR V_CL12_WR_DATA_TO_ERROR(1U)
-
-#define S_CL11_WR_DATA_TO_ERROR 11
-#define V_CL11_WR_DATA_TO_ERROR(x) ((x) << S_CL11_WR_DATA_TO_ERROR)
-#define F_CL11_WR_DATA_TO_ERROR V_CL11_WR_DATA_TO_ERROR(1U)
-
-#define S_CL10_WR_DATA_TO_ERROR 10
-#define V_CL10_WR_DATA_TO_ERROR(x) ((x) << S_CL10_WR_DATA_TO_ERROR)
-#define F_CL10_WR_DATA_TO_ERROR V_CL10_WR_DATA_TO_ERROR(1U)
-
-#define S_CL9_WR_DATA_TO_ERROR 9
-#define V_CL9_WR_DATA_TO_ERROR(x) ((x) << S_CL9_WR_DATA_TO_ERROR)
-#define F_CL9_WR_DATA_TO_ERROR V_CL9_WR_DATA_TO_ERROR(1U)
-
-#define S_CL8_WR_DATA_TO_ERROR 8
-#define V_CL8_WR_DATA_TO_ERROR(x) ((x) << S_CL8_WR_DATA_TO_ERROR)
-#define F_CL8_WR_DATA_TO_ERROR V_CL8_WR_DATA_TO_ERROR(1U)
-
-#define S_CL7_WR_DATA_TO_ERROR 7
-#define V_CL7_WR_DATA_TO_ERROR(x) ((x) << S_CL7_WR_DATA_TO_ERROR)
-#define F_CL7_WR_DATA_TO_ERROR V_CL7_WR_DATA_TO_ERROR(1U)
-
-#define S_CL6_WR_DATA_TO_ERROR 6
-#define V_CL6_WR_DATA_TO_ERROR(x) ((x) << S_CL6_WR_DATA_TO_ERROR)
-#define F_CL6_WR_DATA_TO_ERROR V_CL6_WR_DATA_TO_ERROR(1U)
-
-#define S_CL5_WR_DATA_TO_ERROR 5
-#define V_CL5_WR_DATA_TO_ERROR(x) ((x) << S_CL5_WR_DATA_TO_ERROR)
-#define F_CL5_WR_DATA_TO_ERROR V_CL5_WR_DATA_TO_ERROR(1U)
-
-#define S_CL4_WR_DATA_TO_ERROR 4
-#define V_CL4_WR_DATA_TO_ERROR(x) ((x) << S_CL4_WR_DATA_TO_ERROR)
-#define F_CL4_WR_DATA_TO_ERROR V_CL4_WR_DATA_TO_ERROR(1U)
-
-#define S_CL3_WR_DATA_TO_ERROR 3
-#define V_CL3_WR_DATA_TO_ERROR(x) ((x) << S_CL3_WR_DATA_TO_ERROR)
-#define F_CL3_WR_DATA_TO_ERROR V_CL3_WR_DATA_TO_ERROR(1U)
-
-#define S_CL2_WR_DATA_TO_ERROR 2
-#define V_CL2_WR_DATA_TO_ERROR(x) ((x) << S_CL2_WR_DATA_TO_ERROR)
-#define F_CL2_WR_DATA_TO_ERROR V_CL2_WR_DATA_TO_ERROR(1U)
-
-#define S_CL1_WR_DATA_TO_ERROR 1
-#define V_CL1_WR_DATA_TO_ERROR(x) ((x) << S_CL1_WR_DATA_TO_ERROR)
-#define F_CL1_WR_DATA_TO_ERROR V_CL1_WR_DATA_TO_ERROR(1U)
-
-#define S_CL0_WR_DATA_TO_ERROR 0
-#define V_CL0_WR_DATA_TO_ERROR(x) ((x) << S_CL0_WR_DATA_TO_ERROR)
-#define F_CL0_WR_DATA_TO_ERROR V_CL0_WR_DATA_TO_ERROR(1U)
-
-#define A_MA_READ_TIMEOUT_ERROR_ENABLE 0x78dc
-
-#define S_CL12_RD_CMD_TO_EN 28
-#define V_CL12_RD_CMD_TO_EN(x) ((x) << S_CL12_RD_CMD_TO_EN)
-#define F_CL12_RD_CMD_TO_EN V_CL12_RD_CMD_TO_EN(1U)
-
-#define S_CL11_RD_CMD_TO_EN 27
-#define V_CL11_RD_CMD_TO_EN(x) ((x) << S_CL11_RD_CMD_TO_EN)
-#define F_CL11_RD_CMD_TO_EN V_CL11_RD_CMD_TO_EN(1U)
-
-#define S_CL10_RD_CMD_TO_EN 26
-#define V_CL10_RD_CMD_TO_EN(x) ((x) << S_CL10_RD_CMD_TO_EN)
-#define F_CL10_RD_CMD_TO_EN V_CL10_RD_CMD_TO_EN(1U)
-
-#define S_CL9_RD_CMD_TO_EN 25
-#define V_CL9_RD_CMD_TO_EN(x) ((x) << S_CL9_RD_CMD_TO_EN)
-#define F_CL9_RD_CMD_TO_EN V_CL9_RD_CMD_TO_EN(1U)
-
-#define S_CL8_RD_CMD_TO_EN 24
-#define V_CL8_RD_CMD_TO_EN(x) ((x) << S_CL8_RD_CMD_TO_EN)
-#define F_CL8_RD_CMD_TO_EN V_CL8_RD_CMD_TO_EN(1U)
-
-#define S_CL7_RD_CMD_TO_EN 23
-#define V_CL7_RD_CMD_TO_EN(x) ((x) << S_CL7_RD_CMD_TO_EN)
-#define F_CL7_RD_CMD_TO_EN V_CL7_RD_CMD_TO_EN(1U)
-
-#define S_CL6_RD_CMD_TO_EN 22
-#define V_CL6_RD_CMD_TO_EN(x) ((x) << S_CL6_RD_CMD_TO_EN)
-#define F_CL6_RD_CMD_TO_EN V_CL6_RD_CMD_TO_EN(1U)
-
-#define S_CL5_RD_CMD_TO_EN 21
-#define V_CL5_RD_CMD_TO_EN(x) ((x) << S_CL5_RD_CMD_TO_EN)
-#define F_CL5_RD_CMD_TO_EN V_CL5_RD_CMD_TO_EN(1U)
-
-#define S_CL4_RD_CMD_TO_EN 20
-#define V_CL4_RD_CMD_TO_EN(x) ((x) << S_CL4_RD_CMD_TO_EN)
-#define F_CL4_RD_CMD_TO_EN V_CL4_RD_CMD_TO_EN(1U)
-
-#define S_CL3_RD_CMD_TO_EN 19
-#define V_CL3_RD_CMD_TO_EN(x) ((x) << S_CL3_RD_CMD_TO_EN)
-#define F_CL3_RD_CMD_TO_EN V_CL3_RD_CMD_TO_EN(1U)
-
-#define S_CL2_RD_CMD_TO_EN 18
-#define V_CL2_RD_CMD_TO_EN(x) ((x) << S_CL2_RD_CMD_TO_EN)
-#define F_CL2_RD_CMD_TO_EN V_CL2_RD_CMD_TO_EN(1U)
-
-#define S_CL1_RD_CMD_TO_EN 17
-#define V_CL1_RD_CMD_TO_EN(x) ((x) << S_CL1_RD_CMD_TO_EN)
-#define F_CL1_RD_CMD_TO_EN V_CL1_RD_CMD_TO_EN(1U)
-
-#define S_CL0_RD_CMD_TO_EN 16
-#define V_CL0_RD_CMD_TO_EN(x) ((x) << S_CL0_RD_CMD_TO_EN)
-#define F_CL0_RD_CMD_TO_EN V_CL0_RD_CMD_TO_EN(1U)
-
-#define S_CL12_RD_DATA_TO_EN 12
-#define V_CL12_RD_DATA_TO_EN(x) ((x) << S_CL12_RD_DATA_TO_EN)
-#define F_CL12_RD_DATA_TO_EN V_CL12_RD_DATA_TO_EN(1U)
-
-#define S_CL11_RD_DATA_TO_EN 11
-#define V_CL11_RD_DATA_TO_EN(x) ((x) << S_CL11_RD_DATA_TO_EN)
-#define F_CL11_RD_DATA_TO_EN V_CL11_RD_DATA_TO_EN(1U)
-
-#define S_CL10_RD_DATA_TO_EN 10
-#define V_CL10_RD_DATA_TO_EN(x) ((x) << S_CL10_RD_DATA_TO_EN)
-#define F_CL10_RD_DATA_TO_EN V_CL10_RD_DATA_TO_EN(1U)
-
-#define S_CL9_RD_DATA_TO_EN 9
-#define V_CL9_RD_DATA_TO_EN(x) ((x) << S_CL9_RD_DATA_TO_EN)
-#define F_CL9_RD_DATA_TO_EN V_CL9_RD_DATA_TO_EN(1U)
-
-#define S_CL8_RD_DATA_TO_EN 8
-#define V_CL8_RD_DATA_TO_EN(x) ((x) << S_CL8_RD_DATA_TO_EN)
-#define F_CL8_RD_DATA_TO_EN V_CL8_RD_DATA_TO_EN(1U)
-
-#define S_CL7_RD_DATA_TO_EN 7
-#define V_CL7_RD_DATA_TO_EN(x) ((x) << S_CL7_RD_DATA_TO_EN)
-#define F_CL7_RD_DATA_TO_EN V_CL7_RD_DATA_TO_EN(1U)
-
-#define S_CL6_RD_DATA_TO_EN 6
-#define V_CL6_RD_DATA_TO_EN(x) ((x) << S_CL6_RD_DATA_TO_EN)
-#define F_CL6_RD_DATA_TO_EN V_CL6_RD_DATA_TO_EN(1U)
-
-#define S_CL5_RD_DATA_TO_EN 5
-#define V_CL5_RD_DATA_TO_EN(x) ((x) << S_CL5_RD_DATA_TO_EN)
-#define F_CL5_RD_DATA_TO_EN V_CL5_RD_DATA_TO_EN(1U)
-
-#define S_CL4_RD_DATA_TO_EN 4
-#define V_CL4_RD_DATA_TO_EN(x) ((x) << S_CL4_RD_DATA_TO_EN)
-#define F_CL4_RD_DATA_TO_EN V_CL4_RD_DATA_TO_EN(1U)
-
-#define S_CL3_RD_DATA_TO_EN 3
-#define V_CL3_RD_DATA_TO_EN(x) ((x) << S_CL3_RD_DATA_TO_EN)
-#define F_CL3_RD_DATA_TO_EN V_CL3_RD_DATA_TO_EN(1U)
-
-#define S_CL2_RD_DATA_TO_EN 2
-#define V_CL2_RD_DATA_TO_EN(x) ((x) << S_CL2_RD_DATA_TO_EN)
-#define F_CL2_RD_DATA_TO_EN V_CL2_RD_DATA_TO_EN(1U)
-
-#define S_CL1_RD_DATA_TO_EN 1
-#define V_CL1_RD_DATA_TO_EN(x) ((x) << S_CL1_RD_DATA_TO_EN)
-#define F_CL1_RD_DATA_TO_EN V_CL1_RD_DATA_TO_EN(1U)
-
-#define S_CL0_RD_DATA_TO_EN 0
-#define V_CL0_RD_DATA_TO_EN(x) ((x) << S_CL0_RD_DATA_TO_EN)
-#define F_CL0_RD_DATA_TO_EN V_CL0_RD_DATA_TO_EN(1U)
-
-#define A_MA_READ_TIMEOUT_ERROR_STATUS 0x78e0
-
-#define S_CL12_RD_CMD_TO_ERROR 28
-#define V_CL12_RD_CMD_TO_ERROR(x) ((x) << S_CL12_RD_CMD_TO_ERROR)
-#define F_CL12_RD_CMD_TO_ERROR V_CL12_RD_CMD_TO_ERROR(1U)
-
-#define S_CL11_RD_CMD_TO_ERROR 27
-#define V_CL11_RD_CMD_TO_ERROR(x) ((x) << S_CL11_RD_CMD_TO_ERROR)
-#define F_CL11_RD_CMD_TO_ERROR V_CL11_RD_CMD_TO_ERROR(1U)
-
-#define S_CL10_RD_CMD_TO_ERROR 26
-#define V_CL10_RD_CMD_TO_ERROR(x) ((x) << S_CL10_RD_CMD_TO_ERROR)
-#define F_CL10_RD_CMD_TO_ERROR V_CL10_RD_CMD_TO_ERROR(1U)
-
-#define S_CL9_RD_CMD_TO_ERROR 25
-#define V_CL9_RD_CMD_TO_ERROR(x) ((x) << S_CL9_RD_CMD_TO_ERROR)
-#define F_CL9_RD_CMD_TO_ERROR V_CL9_RD_CMD_TO_ERROR(1U)
-
-#define S_CL8_RD_CMD_TO_ERROR 24
-#define V_CL8_RD_CMD_TO_ERROR(x) ((x) << S_CL8_RD_CMD_TO_ERROR)
-#define F_CL8_RD_CMD_TO_ERROR V_CL8_RD_CMD_TO_ERROR(1U)
-
-#define S_CL7_RD_CMD_TO_ERROR 23
-#define V_CL7_RD_CMD_TO_ERROR(x) ((x) << S_CL7_RD_CMD_TO_ERROR)
-#define F_CL7_RD_CMD_TO_ERROR V_CL7_RD_CMD_TO_ERROR(1U)
-
-#define S_CL6_RD_CMD_TO_ERROR 22
-#define V_CL6_RD_CMD_TO_ERROR(x) ((x) << S_CL6_RD_CMD_TO_ERROR)
-#define F_CL6_RD_CMD_TO_ERROR V_CL6_RD_CMD_TO_ERROR(1U)
-
-#define S_CL5_RD_CMD_TO_ERROR 21
-#define V_CL5_RD_CMD_TO_ERROR(x) ((x) << S_CL5_RD_CMD_TO_ERROR)
-#define F_CL5_RD_CMD_TO_ERROR V_CL5_RD_CMD_TO_ERROR(1U)
-
-#define S_CL4_RD_CMD_TO_ERROR 20
-#define V_CL4_RD_CMD_TO_ERROR(x) ((x) << S_CL4_RD_CMD_TO_ERROR)
-#define F_CL4_RD_CMD_TO_ERROR V_CL4_RD_CMD_TO_ERROR(1U)
-
-#define S_CL3_RD_CMD_TO_ERROR 19
-#define V_CL3_RD_CMD_TO_ERROR(x) ((x) << S_CL3_RD_CMD_TO_ERROR)
-#define F_CL3_RD_CMD_TO_ERROR V_CL3_RD_CMD_TO_ERROR(1U)
-
-#define S_CL2_RD_CMD_TO_ERROR 18
-#define V_CL2_RD_CMD_TO_ERROR(x) ((x) << S_CL2_RD_CMD_TO_ERROR)
-#define F_CL2_RD_CMD_TO_ERROR V_CL2_RD_CMD_TO_ERROR(1U)
-
-#define S_CL1_RD_CMD_TO_ERROR 17
-#define V_CL1_RD_CMD_TO_ERROR(x) ((x) << S_CL1_RD_CMD_TO_ERROR)
-#define F_CL1_RD_CMD_TO_ERROR V_CL1_RD_CMD_TO_ERROR(1U)
-
-#define S_CL0_RD_CMD_TO_ERROR 16
-#define V_CL0_RD_CMD_TO_ERROR(x) ((x) << S_CL0_RD_CMD_TO_ERROR)
-#define F_CL0_RD_CMD_TO_ERROR V_CL0_RD_CMD_TO_ERROR(1U)
-
-#define S_CL12_RD_DATA_TO_ERROR 12
-#define V_CL12_RD_DATA_TO_ERROR(x) ((x) << S_CL12_RD_DATA_TO_ERROR)
-#define F_CL12_RD_DATA_TO_ERROR V_CL12_RD_DATA_TO_ERROR(1U)
-
-#define S_CL11_RD_DATA_TO_ERROR 11
-#define V_CL11_RD_DATA_TO_ERROR(x) ((x) << S_CL11_RD_DATA_TO_ERROR)
-#define F_CL11_RD_DATA_TO_ERROR V_CL11_RD_DATA_TO_ERROR(1U)
-
-#define S_CL10_RD_DATA_TO_ERROR 10
-#define V_CL10_RD_DATA_TO_ERROR(x) ((x) << S_CL10_RD_DATA_TO_ERROR)
-#define F_CL10_RD_DATA_TO_ERROR V_CL10_RD_DATA_TO_ERROR(1U)
-
-#define S_CL9_RD_DATA_TO_ERROR 9
-#define V_CL9_RD_DATA_TO_ERROR(x) ((x) << S_CL9_RD_DATA_TO_ERROR)
-#define F_CL9_RD_DATA_TO_ERROR V_CL9_RD_DATA_TO_ERROR(1U)
-
-#define S_CL8_RD_DATA_TO_ERROR 8
-#define V_CL8_RD_DATA_TO_ERROR(x) ((x) << S_CL8_RD_DATA_TO_ERROR)
-#define F_CL8_RD_DATA_TO_ERROR V_CL8_RD_DATA_TO_ERROR(1U)
-
-#define S_CL7_RD_DATA_TO_ERROR 7
-#define V_CL7_RD_DATA_TO_ERROR(x) ((x) << S_CL7_RD_DATA_TO_ERROR)
-#define F_CL7_RD_DATA_TO_ERROR V_CL7_RD_DATA_TO_ERROR(1U)
-
-#define S_CL6_RD_DATA_TO_ERROR 6
-#define V_CL6_RD_DATA_TO_ERROR(x) ((x) << S_CL6_RD_DATA_TO_ERROR)
-#define F_CL6_RD_DATA_TO_ERROR V_CL6_RD_DATA_TO_ERROR(1U)
-
-#define S_CL5_RD_DATA_TO_ERROR 5
-#define V_CL5_RD_DATA_TO_ERROR(x) ((x) << S_CL5_RD_DATA_TO_ERROR)
-#define F_CL5_RD_DATA_TO_ERROR V_CL5_RD_DATA_TO_ERROR(1U)
-
-#define S_CL4_RD_DATA_TO_ERROR 4
-#define V_CL4_RD_DATA_TO_ERROR(x) ((x) << S_CL4_RD_DATA_TO_ERROR)
-#define F_CL4_RD_DATA_TO_ERROR V_CL4_RD_DATA_TO_ERROR(1U)
-
-#define S_CL3_RD_DATA_TO_ERROR 3
-#define V_CL3_RD_DATA_TO_ERROR(x) ((x) << S_CL3_RD_DATA_TO_ERROR)
-#define F_CL3_RD_DATA_TO_ERROR V_CL3_RD_DATA_TO_ERROR(1U)
-
-#define S_CL2_RD_DATA_TO_ERROR 2
-#define V_CL2_RD_DATA_TO_ERROR(x) ((x) << S_CL2_RD_DATA_TO_ERROR)
-#define F_CL2_RD_DATA_TO_ERROR V_CL2_RD_DATA_TO_ERROR(1U)
-
-#define S_CL1_RD_DATA_TO_ERROR 1
-#define V_CL1_RD_DATA_TO_ERROR(x) ((x) << S_CL1_RD_DATA_TO_ERROR)
-#define F_CL1_RD_DATA_TO_ERROR V_CL1_RD_DATA_TO_ERROR(1U)
-
-#define S_CL0_RD_DATA_TO_ERROR 0
-#define V_CL0_RD_DATA_TO_ERROR(x) ((x) << S_CL0_RD_DATA_TO_ERROR)
-#define F_CL0_RD_DATA_TO_ERROR V_CL0_RD_DATA_TO_ERROR(1U)
-
-#define A_MA_BKP_CNT_SEL 0x78e4
-
-#define S_BKP_CNT_TYPE 30
-#define M_BKP_CNT_TYPE 0x3U
-#define V_BKP_CNT_TYPE(x) ((x) << S_BKP_CNT_TYPE)
-#define G_BKP_CNT_TYPE(x) (((x) >> S_BKP_CNT_TYPE) & M_BKP_CNT_TYPE)
-
-#define S_BKP_CLIENT 24
-#define M_BKP_CLIENT 0xfU
-#define V_BKP_CLIENT(x) ((x) << S_BKP_CLIENT)
-#define G_BKP_CLIENT(x) (((x) >> S_BKP_CLIENT) & M_BKP_CLIENT)
-
-#define A_MA_BKP_CNT 0x78e8
-#define A_MA_WRT_ARB 0x78ec
-
-#define S_WRT_EN 31
-#define V_WRT_EN(x) ((x) << S_WRT_EN)
-#define F_WRT_EN V_WRT_EN(1U)
-
-#define S_WR_TIM 16
-#define M_WR_TIM 0xffU
-#define V_WR_TIM(x) ((x) << S_WR_TIM)
-#define G_WR_TIM(x) (((x) >> S_WR_TIM) & M_WR_TIM)
-
-#define S_RD_WIN 8
-#define M_RD_WIN 0xffU
-#define V_RD_WIN(x) ((x) << S_RD_WIN)
-#define G_RD_WIN(x) (((x) >> S_RD_WIN) & M_RD_WIN)
-
-#define S_WR_WIN 0
-#define M_WR_WIN 0xffU
-#define V_WR_WIN(x) ((x) << S_WR_WIN)
-#define G_WR_WIN(x) (((x) >> S_WR_WIN) & M_WR_WIN)
-
-#define A_MA_IF_PARITY_ERROR_ENABLE 0x78f0
-
-#define S_CL12_IF_PAR_EN 12
-#define V_CL12_IF_PAR_EN(x) ((x) << S_CL12_IF_PAR_EN)
-#define F_CL12_IF_PAR_EN V_CL12_IF_PAR_EN(1U)
-
-#define S_CL11_IF_PAR_EN 11
-#define V_CL11_IF_PAR_EN(x) ((x) << S_CL11_IF_PAR_EN)
-#define F_CL11_IF_PAR_EN V_CL11_IF_PAR_EN(1U)
-
-#define S_CL10_IF_PAR_EN 10
-#define V_CL10_IF_PAR_EN(x) ((x) << S_CL10_IF_PAR_EN)
-#define F_CL10_IF_PAR_EN V_CL10_IF_PAR_EN(1U)
-
-#define S_CL9_IF_PAR_EN 9
-#define V_CL9_IF_PAR_EN(x) ((x) << S_CL9_IF_PAR_EN)
-#define F_CL9_IF_PAR_EN V_CL9_IF_PAR_EN(1U)
-
-#define S_CL8_IF_PAR_EN 8
-#define V_CL8_IF_PAR_EN(x) ((x) << S_CL8_IF_PAR_EN)
-#define F_CL8_IF_PAR_EN V_CL8_IF_PAR_EN(1U)
-
-#define S_CL7_IF_PAR_EN 7
-#define V_CL7_IF_PAR_EN(x) ((x) << S_CL7_IF_PAR_EN)
-#define F_CL7_IF_PAR_EN V_CL7_IF_PAR_EN(1U)
-
-#define S_CL6_IF_PAR_EN 6
-#define V_CL6_IF_PAR_EN(x) ((x) << S_CL6_IF_PAR_EN)
-#define F_CL6_IF_PAR_EN V_CL6_IF_PAR_EN(1U)
-
-#define S_CL5_IF_PAR_EN 5
-#define V_CL5_IF_PAR_EN(x) ((x) << S_CL5_IF_PAR_EN)
-#define F_CL5_IF_PAR_EN V_CL5_IF_PAR_EN(1U)
-
-#define S_CL4_IF_PAR_EN 4
-#define V_CL4_IF_PAR_EN(x) ((x) << S_CL4_IF_PAR_EN)
-#define F_CL4_IF_PAR_EN V_CL4_IF_PAR_EN(1U)
-
-#define S_CL3_IF_PAR_EN 3
-#define V_CL3_IF_PAR_EN(x) ((x) << S_CL3_IF_PAR_EN)
-#define F_CL3_IF_PAR_EN V_CL3_IF_PAR_EN(1U)
-
-#define S_CL2_IF_PAR_EN 2
-#define V_CL2_IF_PAR_EN(x) ((x) << S_CL2_IF_PAR_EN)
-#define F_CL2_IF_PAR_EN V_CL2_IF_PAR_EN(1U)
-
-#define S_CL1_IF_PAR_EN 1
-#define V_CL1_IF_PAR_EN(x) ((x) << S_CL1_IF_PAR_EN)
-#define F_CL1_IF_PAR_EN V_CL1_IF_PAR_EN(1U)
-
-#define S_CL0_IF_PAR_EN 0
-#define V_CL0_IF_PAR_EN(x) ((x) << S_CL0_IF_PAR_EN)
-#define F_CL0_IF_PAR_EN V_CL0_IF_PAR_EN(1U)
-
-#define A_MA_IF_PARITY_ERROR_STATUS 0x78f4
-
-#define S_CL12_IF_PAR_ERROR 12
-#define V_CL12_IF_PAR_ERROR(x) ((x) << S_CL12_IF_PAR_ERROR)
-#define F_CL12_IF_PAR_ERROR V_CL12_IF_PAR_ERROR(1U)
-
-#define S_CL11_IF_PAR_ERROR 11
-#define V_CL11_IF_PAR_ERROR(x) ((x) << S_CL11_IF_PAR_ERROR)
-#define F_CL11_IF_PAR_ERROR V_CL11_IF_PAR_ERROR(1U)
-
-#define S_CL10_IF_PAR_ERROR 10
-#define V_CL10_IF_PAR_ERROR(x) ((x) << S_CL10_IF_PAR_ERROR)
-#define F_CL10_IF_PAR_ERROR V_CL10_IF_PAR_ERROR(1U)
-
-#define S_CL9_IF_PAR_ERROR 9
-#define V_CL9_IF_PAR_ERROR(x) ((x) << S_CL9_IF_PAR_ERROR)
-#define F_CL9_IF_PAR_ERROR V_CL9_IF_PAR_ERROR(1U)
-
-#define S_CL8_IF_PAR_ERROR 8
-#define V_CL8_IF_PAR_ERROR(x) ((x) << S_CL8_IF_PAR_ERROR)
-#define F_CL8_IF_PAR_ERROR V_CL8_IF_PAR_ERROR(1U)
-
-#define S_CL7_IF_PAR_ERROR 7
-#define V_CL7_IF_PAR_ERROR(x) ((x) << S_CL7_IF_PAR_ERROR)
-#define F_CL7_IF_PAR_ERROR V_CL7_IF_PAR_ERROR(1U)
-
-#define S_CL6_IF_PAR_ERROR 6
-#define V_CL6_IF_PAR_ERROR(x) ((x) << S_CL6_IF_PAR_ERROR)
-#define F_CL6_IF_PAR_ERROR V_CL6_IF_PAR_ERROR(1U)
-
-#define S_CL5_IF_PAR_ERROR 5
-#define V_CL5_IF_PAR_ERROR(x) ((x) << S_CL5_IF_PAR_ERROR)
-#define F_CL5_IF_PAR_ERROR V_CL5_IF_PAR_ERROR(1U)
-
-#define S_CL4_IF_PAR_ERROR 4
-#define V_CL4_IF_PAR_ERROR(x) ((x) << S_CL4_IF_PAR_ERROR)
-#define F_CL4_IF_PAR_ERROR V_CL4_IF_PAR_ERROR(1U)
-
-#define S_CL3_IF_PAR_ERROR 3
-#define V_CL3_IF_PAR_ERROR(x) ((x) << S_CL3_IF_PAR_ERROR)
-#define F_CL3_IF_PAR_ERROR V_CL3_IF_PAR_ERROR(1U)
-
-#define S_CL2_IF_PAR_ERROR 2
-#define V_CL2_IF_PAR_ERROR(x) ((x) << S_CL2_IF_PAR_ERROR)
-#define F_CL2_IF_PAR_ERROR V_CL2_IF_PAR_ERROR(1U)
-
-#define S_CL1_IF_PAR_ERROR 1
-#define V_CL1_IF_PAR_ERROR(x) ((x) << S_CL1_IF_PAR_ERROR)
-#define F_CL1_IF_PAR_ERROR V_CL1_IF_PAR_ERROR(1U)
-
-#define S_CL0_IF_PAR_ERROR 0
-#define V_CL0_IF_PAR_ERROR(x) ((x) << S_CL0_IF_PAR_ERROR)
-#define F_CL0_IF_PAR_ERROR V_CL0_IF_PAR_ERROR(1U)
-
-#define A_MA_LOCAL_DEBUG_CFG 0x78f8
-
-#define S_DEBUG_OR 15
-#define V_DEBUG_OR(x) ((x) << S_DEBUG_OR)
-#define F_DEBUG_OR V_DEBUG_OR(1U)
-
-#define S_DEBUG_HI 14
-#define V_DEBUG_HI(x) ((x) << S_DEBUG_HI)
-#define F_DEBUG_HI V_DEBUG_HI(1U)
-
-#define S_DEBUG_RPT 13
-#define V_DEBUG_RPT(x) ((x) << S_DEBUG_RPT)
-#define F_DEBUG_RPT V_DEBUG_RPT(1U)
-
-#define S_DEBUGPAGE 10
-#define M_DEBUGPAGE 0x7U
-#define V_DEBUGPAGE(x) ((x) << S_DEBUGPAGE)
-#define G_DEBUGPAGE(x) (((x) >> S_DEBUGPAGE) & M_DEBUGPAGE)
-
-#define A_MA_LOCAL_DEBUG_RPT 0x78fc
-
/* registers for module EDC_0 */
#define EDC_0_BASE_ADDR 0x7900
@@ -12365,7 +7011,6 @@
#define V_MBMSGRDYINT(x) ((x) << S_MBMSGRDYINT)
#define F_MBMSGRDYINT V_MBMSGRDYINT(1U)
-#define A_CIM_PF_MAILBOX_CTRL_SHADOW_COPY 0x290
#define A_CIM_BOOT_CFG 0x7b00
#define S_BOOTADDR 8
@@ -12535,38 +7180,6 @@
#define V_PREFDROPINTEN(x) ((x) << S_PREFDROPINTEN)
#define F_PREFDROPINTEN V_PREFDROPINTEN(1U)
-#define S_MA_CIM_INTFPERR 28
-#define V_MA_CIM_INTFPERR(x) ((x) << S_MA_CIM_INTFPERR)
-#define F_MA_CIM_INTFPERR V_MA_CIM_INTFPERR(1U)
-
-#define S_PLCIM_MSTRSPDATAPARERR 27
-#define V_PLCIM_MSTRSPDATAPARERR(x) ((x) << S_PLCIM_MSTRSPDATAPARERR)
-#define F_PLCIM_MSTRSPDATAPARERR V_PLCIM_MSTRSPDATAPARERR(1U)
-
-#define S_NCSI2CIMINTFPARERR 26
-#define V_NCSI2CIMINTFPARERR(x) ((x) << S_NCSI2CIMINTFPARERR)
-#define F_NCSI2CIMINTFPARERR V_NCSI2CIMINTFPARERR(1U)
-
-#define S_SGE2CIMINTFPARERR 25
-#define V_SGE2CIMINTFPARERR(x) ((x) << S_SGE2CIMINTFPARERR)
-#define F_SGE2CIMINTFPARERR V_SGE2CIMINTFPARERR(1U)
-
-#define S_ULP2CIMINTFPARERR 24
-#define V_ULP2CIMINTFPARERR(x) ((x) << S_ULP2CIMINTFPARERR)
-#define F_ULP2CIMINTFPARERR V_ULP2CIMINTFPARERR(1U)
-
-#define S_TP2CIMINTFPARERR 23
-#define V_TP2CIMINTFPARERR(x) ((x) << S_TP2CIMINTFPARERR)
-#define F_TP2CIMINTFPARERR V_TP2CIMINTFPARERR(1U)
-
-#define S_OBQSGERX1PARERR 22
-#define V_OBQSGERX1PARERR(x) ((x) << S_OBQSGERX1PARERR)
-#define F_OBQSGERX1PARERR V_OBQSGERX1PARERR(1U)
-
-#define S_OBQSGERX0PARERR 21
-#define V_OBQSGERX0PARERR(x) ((x) << S_OBQSGERX0PARERR)
-#define F_OBQSGERX0PARERR V_OBQSGERX0PARERR(1U)
-
#define A_CIM_HOST_INT_CAUSE 0x7b2c
#define S_TIEQOUTPARERRINT 20
@@ -13125,11 +7738,6 @@
#define V_DPIFHOSTMASK(x) ((x) << S_DPIFHOSTMASK)
#define G_DPIFHOSTMASK(x) (((x) >> S_DPIFHOSTMASK) & M_DPIFHOSTMASK)
-#define S_T5_DPIFHOSTMASK 0
-#define M_T5_DPIFHOSTMASK 0x1fffffffU
-#define V_T5_DPIFHOSTMASK(x) ((x) << S_T5_DPIFHOSTMASK)
-#define G_T5_DPIFHOSTMASK(x) (((x) >> S_T5_DPIFHOSTMASK) & M_T5_DPIFHOSTMASK)
-
#define A_CIM_DEBUG_PIF_UPACC_CAUSE_MASK 0x7c14
#define S_DPIFHUPAMASK 0
@@ -13144,11 +7752,6 @@
#define V_DUPMASK(x) ((x) << S_DUPMASK)
#define G_DUPMASK(x) (((x) >> S_DUPMASK) & M_DUPMASK)
-#define S_T5_DUPMASK 0
-#define M_T5_DUPMASK 0x1fffffffU
-#define V_T5_DUPMASK(x) ((x) << S_T5_DUPMASK)
-#define G_T5_DUPMASK(x) (((x) >> S_T5_DUPMASK) & M_T5_DUPMASK)
-
#define A_CIM_DEBUG_UP_UPACC_CAUSE_MASK 0x7c1c
#define S_DUPUACCMASK 0
@@ -13164,11 +7767,6 @@
#define V_PERREN(x) ((x) << S_PERREN)
#define G_PERREN(x) (((x) >> S_PERREN) & M_PERREN)
-#define S_T5_PERREN 0
-#define M_T5_PERREN 0x1fffffffU
-#define V_T5_PERREN(x) ((x) << S_T5_PERREN)
-#define G_T5_PERREN(x) (((x) >> S_T5_PERREN) & M_T5_PERREN)
-
#define A_CIM_EEPROM_BUSY_BIT 0x7c28
#define S_EEPROMBUSY 0
@@ -13189,70 +7787,7 @@
#define A_CIM_CIM_DEBUG_SPARE 0x7c34
#define A_CIM_UP_OPERATION_FREQ 0x7c38
-#define A_CIM_CIM_IBQ_ERR_CODE 0x7c3c
-#define S_CIM_ULP_TX_PKT_ERR_CODE 16
-#define M_CIM_ULP_TX_PKT_ERR_CODE 0xffU
-#define V_CIM_ULP_TX_PKT_ERR_CODE(x) ((x) << S_CIM_ULP_TX_PKT_ERR_CODE)
-#define G_CIM_ULP_TX_PKT_ERR_CODE(x) (((x) >> S_CIM_ULP_TX_PKT_ERR_CODE) & M_CIM_ULP_TX_PKT_ERR_CODE)
-
-#define S_CIM_SGE1_PKT_ERR_CODE 8
-#define M_CIM_SGE1_PKT_ERR_CODE 0xffU
-#define V_CIM_SGE1_PKT_ERR_CODE(x) ((x) << S_CIM_SGE1_PKT_ERR_CODE)
-#define G_CIM_SGE1_PKT_ERR_CODE(x) (((x) >> S_CIM_SGE1_PKT_ERR_CODE) & M_CIM_SGE1_PKT_ERR_CODE)
-
-#define S_CIM_SGE0_PKT_ERR_CODE 0
-#define M_CIM_SGE0_PKT_ERR_CODE 0xffU
-#define V_CIM_SGE0_PKT_ERR_CODE(x) ((x) << S_CIM_SGE0_PKT_ERR_CODE)
-#define G_CIM_SGE0_PKT_ERR_CODE(x) (((x) >> S_CIM_SGE0_PKT_ERR_CODE) & M_CIM_SGE0_PKT_ERR_CODE)
-
-#define A_CIM_IBQ_DBG_WAIT_COUNTER 0x7c40
-#define A_CIM_PIO_UP_MST_CFG_SEL 0x7c44
-
-#define S_PIO_UP_MST_CFG_SEL 0
-#define V_PIO_UP_MST_CFG_SEL(x) ((x) << S_PIO_UP_MST_CFG_SEL)
-#define F_PIO_UP_MST_CFG_SEL V_PIO_UP_MST_CFG_SEL(1U)
-
-#define A_CIM_CGEN 0x7c48
-
-#define S_TSCH_CGEN 0
-#define V_TSCH_CGEN(x) ((x) << S_TSCH_CGEN)
-#define F_TSCH_CGEN V_TSCH_CGEN(1U)
-
-#define A_CIM_QUEUE_FEATURE_DISABLE 0x7c4c
-
-#define S_OBQ_THROUTTLE_ON_EOP 4
-#define V_OBQ_THROUTTLE_ON_EOP(x) ((x) << S_OBQ_THROUTTLE_ON_EOP)
-#define F_OBQ_THROUTTLE_ON_EOP V_OBQ_THROUTTLE_ON_EOP(1U)
-
-#define S_OBQ_READ_CTL_PERF_MODE_DISABLE 3
-#define V_OBQ_READ_CTL_PERF_MODE_DISABLE(x) ((x) << S_OBQ_READ_CTL_PERF_MODE_DISABLE)
-#define F_OBQ_READ_CTL_PERF_MODE_DISABLE V_OBQ_READ_CTL_PERF_MODE_DISABLE(1U)
-
-#define S_OBQ_WAIT_FOR_EOP_FLUSH_DISABLE 2
-#define V_OBQ_WAIT_FOR_EOP_FLUSH_DISABLE(x) ((x) << S_OBQ_WAIT_FOR_EOP_FLUSH_DISABLE)
-#define F_OBQ_WAIT_FOR_EOP_FLUSH_DISABLE V_OBQ_WAIT_FOR_EOP_FLUSH_DISABLE(1U)
-
-#define S_IBQ_RRA_DSBL 1
-#define V_IBQ_RRA_DSBL(x) ((x) << S_IBQ_RRA_DSBL)
-#define F_IBQ_RRA_DSBL V_IBQ_RRA_DSBL(1U)
-
-#define S_IBQ_SKID_FIFO_EOP_FLSH_DSBL 0
-#define V_IBQ_SKID_FIFO_EOP_FLSH_DSBL(x) ((x) << S_IBQ_SKID_FIFO_EOP_FLSH_DSBL)
-#define F_IBQ_SKID_FIFO_EOP_FLSH_DSBL V_IBQ_SKID_FIFO_EOP_FLSH_DSBL(1U)
-
-#define A_CIM_CGEN_GLOBAL 0x7c50
-
-#define S_CGEN_GLOBAL 0
-#define V_CGEN_GLOBAL(x) ((x) << S_CGEN_GLOBAL)
-#define F_CGEN_GLOBAL V_CGEN_GLOBAL(1U)
-
-#define A_CIM_DPSLP_EN 0x7c54
-
-#define S_PIFDBGLA_DPSLP_EN 0
-#define V_PIFDBGLA_DPSLP_EN(x) ((x) << S_PIFDBGLA_DPSLP_EN)
-#define F_PIFDBGLA_DPSLP_EN V_PIFDBGLA_DPSLP_EN(1U)
-
/* registers for module TP */
#define TP_BASE_ADDR 0x7d00
@@ -13362,58 +7897,6 @@
#define V_CTUNNEL(x) ((x) << S_CTUNNEL)
#define F_CTUNNEL V_CTUNNEL(1U)
-#define S_VLANEXTENPORT3 31
-#define V_VLANEXTENPORT3(x) ((x) << S_VLANEXTENPORT3)
-#define F_VLANEXTENPORT3 V_VLANEXTENPORT3(1U)
-
-#define S_VLANEXTENPORT2 30
-#define V_VLANEXTENPORT2(x) ((x) << S_VLANEXTENPORT2)
-#define F_VLANEXTENPORT2 V_VLANEXTENPORT2(1U)
-
-#define S_VLANEXTENPORT1 29
-#define V_VLANEXTENPORT1(x) ((x) << S_VLANEXTENPORT1)
-#define F_VLANEXTENPORT1 V_VLANEXTENPORT1(1U)
-
-#define S_VLANEXTENPORT0 28
-#define V_VLANEXTENPORT0(x) ((x) << S_VLANEXTENPORT0)
-#define F_VLANEXTENPORT0 V_VLANEXTENPORT0(1U)
-
-#define S_VNTAGDEFAULTVAL 13
-#define V_VNTAGDEFAULTVAL(x) ((x) << S_VNTAGDEFAULTVAL)
-#define F_VNTAGDEFAULTVAL V_VNTAGDEFAULTVAL(1U)
-
-#define S_ECHECKUDPLEN 12
-#define V_ECHECKUDPLEN(x) ((x) << S_ECHECKUDPLEN)
-#define F_ECHECKUDPLEN V_ECHECKUDPLEN(1U)
-
-#define S_FCOEFPMA 10
-#define V_FCOEFPMA(x) ((x) << S_FCOEFPMA)
-#define F_FCOEFPMA V_FCOEFPMA(1U)
-
-#define S_VNTAGETHENABLE 8
-#define V_VNTAGETHENABLE(x) ((x) << S_VNTAGETHENABLE)
-#define F_VNTAGETHENABLE V_VNTAGETHENABLE(1U)
-
-#define S_IP_CCSM 7
-#define V_IP_CCSM(x) ((x) << S_IP_CCSM)
-#define F_IP_CCSM V_IP_CCSM(1U)
-
-#define S_CCHECKSUMCHECKUDP 6
-#define V_CCHECKSUMCHECKUDP(x) ((x) << S_CCHECKSUMCHECKUDP)
-#define F_CCHECKSUMCHECKUDP V_CCHECKSUMCHECKUDP(1U)
-
-#define S_TCP_CCSM 5
-#define V_TCP_CCSM(x) ((x) << S_TCP_CCSM)
-#define F_TCP_CCSM V_TCP_CCSM(1U)
-
-#define S_CDEMUX 3
-#define V_CDEMUX(x) ((x) << S_CDEMUX)
-#define F_CDEMUX V_CDEMUX(1U)
-
-#define S_ETHUPEN 2
-#define V_ETHUPEN(x) ((x) << S_ETHUPEN)
-#define F_ETHUPEN V_ETHUPEN(1U)
-
#define A_TP_OUT_CONFIG 0x7d04
#define S_PORTQFCEN 28
@@ -13505,10 +7988,6 @@
#define V_CETHERNET(x) ((x) << S_CETHERNET)
#define F_CETHERNET V_CETHERNET(1U)
-#define S_EVNTAGEN 9
-#define V_EVNTAGEN(x) ((x) << S_EVNTAGEN)
-#define F_EVNTAGEN V_EVNTAGEN(1U)
-
#define A_TP_GLOBAL_CONFIG 0x7d08
#define S_SYNCOOKIEPARAMS 26
@@ -13587,14 +8066,6 @@
#define V_IPTTL(x) ((x) << S_IPTTL)
#define G_IPTTL(x) (((x) >> S_IPTTL) & M_IPTTL)
-#define S_RSSSYNSTEERENABLE 12
-#define V_RSSSYNSTEERENABLE(x) ((x) << S_RSSSYNSTEERENABLE)
-#define F_RSSSYNSTEERENABLE V_RSSSYNSTEERENABLE(1U)
-
-#define S_ISSFROMCPLENABLE 11
-#define V_ISSFROMCPLENABLE(x) ((x) << S_ISSFROMCPLENABLE)
-#define F_ISSFROMCPLENABLE V_ISSFROMCPLENABLE(1U)
-
#define A_TP_DB_CONFIG 0x7d0c
#define S_DBMAXOPCNT 24
@@ -13875,10 +8346,6 @@
#define V_TXDATAACKPAGEENABLE(x) ((x) << S_TXDATAACKPAGEENABLE)
#define F_TXDATAACKPAGEENABLE V_TXDATAACKPAGEENABLE(1U)
-#define S_ENABLEFILTERNAT 5
-#define V_ENABLEFILTERNAT(x) ((x) << S_ENABLEFILTERNAT)
-#define F_ENABLEFILTERNAT V_ENABLEFILTERNAT(1U)
-
#define A_TP_PC_CONFIG2 0x7d4c
#define S_ENABLEMTUVFMODE 31
@@ -14009,10 +8476,6 @@
#define V_ENABLETNLOFDCLOSED(x) ((x) << S_ENABLETNLOFDCLOSED)
#define F_ENABLETNLOFDCLOSED V_ENABLETNLOFDCLOSED(1U)
-#define S_ENABLEFINDDPOFF 14
-#define V_ENABLEFINDDPOFF(x) ((x) << S_ENABLEFINDDPOFF)
-#define F_ENABLEFINDDPOFF V_ENABLEFINDDPOFF(1U)
-
#define A_TP_TCP_BACKOFF_REG0 0x7d50
#define S_TIMERBACKOFFINDEX3 24
@@ -14163,19 +8626,6 @@
#define V_SWSTIMER(x) ((x) << S_SWSTIMER)
#define F_SWSTIMER V_SWSTIMER(1U)
-#define S_LIMTXTHRESH 28
-#define M_LIMTXTHRESH 0xfU
-#define V_LIMTXTHRESH(x) ((x) << S_LIMTXTHRESH)
-#define G_LIMTXTHRESH(x) (((x) >> S_LIMTXTHRESH) & M_LIMTXTHRESH)
-
-#define S_CHNERRENABLE 14
-#define V_CHNERRENABLE(x) ((x) << S_CHNERRENABLE)
-#define F_CHNERRENABLE V_CHNERRENABLE(1U)
-
-#define S_SETTIMEENABLE 13
-#define V_SETTIMEENABLE(x) ((x) << S_SETTIMEENABLE)
-#define F_SETTIMEENABLE V_SETTIMEENABLE(1U)
-
#define A_TP_PARA_REG1 0x7d64
#define S_INITRWND 16
@@ -14327,74 +8777,6 @@
#define V_RENOCFG(x) ((x) << S_RENOCFG)
#define G_RENOCFG(x) (((x) >> S_RENOCFG) & M_RENOCFG)
-#define S_IDLECWNDHIGHSPEED 28
-#define V_IDLECWNDHIGHSPEED(x) ((x) << S_IDLECWNDHIGHSPEED)
-#define F_IDLECWNDHIGHSPEED V_IDLECWNDHIGHSPEED(1U)
-
-#define S_RXMTCWNDHIGHSPEED 27
-#define V_RXMTCWNDHIGHSPEED(x) ((x) << S_RXMTCWNDHIGHSPEED)
-#define F_RXMTCWNDHIGHSPEED V_RXMTCWNDHIGHSPEED(1U)
-
-#define S_OVERDRIVEHIGHSPEED 25
-#define M_OVERDRIVEHIGHSPEED 0x3U
-#define V_OVERDRIVEHIGHSPEED(x) ((x) << S_OVERDRIVEHIGHSPEED)
-#define G_OVERDRIVEHIGHSPEED(x) (((x) >> S_OVERDRIVEHIGHSPEED) & M_OVERDRIVEHIGHSPEED)
-
-#define S_BYTECOUNTHIGHSPEED 24
-#define V_BYTECOUNTHIGHSPEED(x) ((x) << S_BYTECOUNTHIGHSPEED)
-#define F_BYTECOUNTHIGHSPEED V_BYTECOUNTHIGHSPEED(1U)
-
-#define S_IDLECWNDNEWRENO 20
-#define V_IDLECWNDNEWRENO(x) ((x) << S_IDLECWNDNEWRENO)
-#define F_IDLECWNDNEWRENO V_IDLECWNDNEWRENO(1U)
-
-#define S_RXMTCWNDNEWRENO 19
-#define V_RXMTCWNDNEWRENO(x) ((x) << S_RXMTCWNDNEWRENO)
-#define F_RXMTCWNDNEWRENO V_RXMTCWNDNEWRENO(1U)
-
-#define S_OVERDRIVENEWRENO 17
-#define M_OVERDRIVENEWRENO 0x3U
-#define V_OVERDRIVENEWRENO(x) ((x) << S_OVERDRIVENEWRENO)
-#define G_OVERDRIVENEWRENO(x) (((x) >> S_OVERDRIVENEWRENO) & M_OVERDRIVENEWRENO)
-
-#define S_BYTECOUNTNEWRENO 16
-#define V_BYTECOUNTNEWRENO(x) ((x) << S_BYTECOUNTNEWRENO)
-#define F_BYTECOUNTNEWRENO V_BYTECOUNTNEWRENO(1U)
-
-#define S_IDLECWNDTAHOE 12
-#define V_IDLECWNDTAHOE(x) ((x) << S_IDLECWNDTAHOE)
-#define F_IDLECWNDTAHOE V_IDLECWNDTAHOE(1U)
-
-#define S_RXMTCWNDTAHOE 11
-#define V_RXMTCWNDTAHOE(x) ((x) << S_RXMTCWNDTAHOE)
-#define F_RXMTCWNDTAHOE V_RXMTCWNDTAHOE(1U)
-
-#define S_OVERDRIVETAHOE 9
-#define M_OVERDRIVETAHOE 0x3U
-#define V_OVERDRIVETAHOE(x) ((x) << S_OVERDRIVETAHOE)
-#define G_OVERDRIVETAHOE(x) (((x) >> S_OVERDRIVETAHOE) & M_OVERDRIVETAHOE)
-
-#define S_BYTECOUNTTAHOE 8
-#define V_BYTECOUNTTAHOE(x) ((x) << S_BYTECOUNTTAHOE)
-#define F_BYTECOUNTTAHOE V_BYTECOUNTTAHOE(1U)
-
-#define S_IDLECWNDRENO 4
-#define V_IDLECWNDRENO(x) ((x) << S_IDLECWNDRENO)
-#define F_IDLECWNDRENO V_IDLECWNDRENO(1U)
-
-#define S_RXMTCWNDRENO 3
-#define V_RXMTCWNDRENO(x) ((x) << S_RXMTCWNDRENO)
-#define F_RXMTCWNDRENO V_RXMTCWNDRENO(1U)
-
-#define S_OVERDRIVERENO 1
-#define M_OVERDRIVERENO 0x3U
-#define V_OVERDRIVERENO(x) ((x) << S_OVERDRIVERENO)
-#define G_OVERDRIVERENO(x) (((x) >> S_OVERDRIVERENO) & M_OVERDRIVERENO)
-
-#define S_BYTECOUNTRENO 0
-#define V_BYTECOUNTRENO(x) ((x) << S_BYTECOUNTRENO)
-#define F_BYTECOUNTRENO V_BYTECOUNTRENO(1U)
-
#define A_TP_PARA_REG5 0x7d74
#define S_INDICATESIZE 16
@@ -14443,18 +8825,6 @@
#define V_PUSHTIMERENABLE(x) ((x) << S_PUSHTIMERENABLE)
#define F_PUSHTIMERENABLE V_PUSHTIMERENABLE(1U)
-#define S_ENABLEXOFFPDU 7
-#define V_ENABLEXOFFPDU(x) ((x) << S_ENABLEXOFFPDU)
-#define F_ENABLEXOFFPDU V_ENABLEXOFFPDU(1U)
-
-#define S_ENABLENEWFAR 6
-#define V_ENABLENEWFAR(x) ((x) << S_ENABLENEWFAR)
-#define F_ENABLENEWFAR V_ENABLENEWFAR(1U)
-
-#define S_ENABLEFRAGCHECK 5
-#define V_ENABLEFRAGCHECK(x) ((x) << S_ENABLEFRAGCHECK)
-#define F_ENABLEFRAGCHECK V_ENABLEFRAGCHECK(1U)
-
#define A_TP_PARA_REG6 0x7d78
#define S_TXPDUSIZEADJ 24
@@ -14547,10 +8917,6 @@
#define V_DISABLEPDUXMT(x) ((x) << S_DISABLEPDUXMT)
#define F_DISABLEPDUXMT V_DISABLEPDUXMT(1U)
-#define S_DISABLEPDUACK 20
-#define V_DISABLEPDUACK(x) ((x) << S_DISABLEPDUACK)
-#define F_DISABLEPDUACK V_DISABLEPDUACK(1U)
-
#define A_TP_PARA_REG7 0x7d7c
#define S_PMMAXXFERLEN1 16
@@ -14706,14 +9072,6 @@
#define V_DROPERRORANY(x) ((x) << S_DROPERRORANY)
#define F_DROPERRORANY V_DROPERRORANY(1U)
-#define S_TNLERRORFPMA 31
-#define V_TNLERRORFPMA(x) ((x) << S_TNLERRORFPMA)
-#define F_TNLERRORFPMA V_TNLERRORFPMA(1U)
-
-#define S_DROPERRORFPMA 15
-#define V_DROPERRORFPMA(x) ((x) << S_DROPERRORFPMA)
-#define F_DROPERRORFPMA V_DROPERRORFPMA(1U)
-
#define A_TP_TIMER_RESOLUTION 0x7d90
#define S_TIMERRESOLUTION 16
@@ -15090,18 +9448,6 @@
#define V_DISABLE(x) ((x) << S_DISABLE)
#define F_DISABLE V_DISABLE(1U)
-#define S_TNLFCOEMODE 23
-#define V_TNLFCOEMODE(x) ((x) << S_TNLFCOEMODE)
-#define F_TNLFCOEMODE V_TNLFCOEMODE(1U)
-
-#define S_TNLFCOEEN 21
-#define V_TNLFCOEEN(x) ((x) << S_TNLFCOEEN)
-#define F_TNLFCOEEN V_TNLFCOEEN(1U)
-
-#define S_HASHXOR 20
-#define V_HASHXOR(x) ((x) << S_HASHXOR)
-#define F_HASHXOR V_HASHXOR(1U)
-
#define A_TP_RSS_CONFIG_TNL 0x7df4
#define S_MASKSIZE 28
@@ -15129,11 +9475,6 @@
#define V_RRCPLQUEWIDTH(x) ((x) << S_RRCPLQUEWIDTH)
#define G_RRCPLQUEWIDTH(x) (((x) >> S_RRCPLQUEWIDTH) & M_RRCPLQUEWIDTH)
-#define S_FRMWRQUEMASK 12
-#define M_FRMWRQUEMASK 0xfU
-#define V_FRMWRQUEMASK(x) ((x) << S_FRMWRQUEMASK)
-#define G_FRMWRQUEMASK(x) (((x) >> S_FRMWRQUEMASK) & M_FRMWRQUEMASK)
-
#define A_TP_RSS_CONFIG_SYN 0x7dfc
#define A_TP_RSS_CONFIG_VRT 0x7e00
@@ -15189,14 +9530,6 @@
#define V_KEYWRADDR(x) ((x) << S_KEYWRADDR)
#define G_KEYWRADDR(x) (((x) >> S_KEYWRADDR) & M_KEYWRADDR)
-#define S_VFVLANEN 21
-#define V_VFVLANEN(x) ((x) << S_VFVLANEN)
-#define F_VFVLANEN V_VFVLANEN(1U)
-
-#define S_VFFWEN 20
-#define V_VFFWEN(x) ((x) << S_VFFWEN)
-#define F_VFFWEN V_VFFWEN(1U)
-
#define A_TP_RSS_CONFIG_CNG 0x7e04
#define S_CHNCOUNT3 31
@@ -15576,10 +9909,6 @@
#define V_DELINVFIFOPERR(x) ((x) << S_DELINVFIFOPERR)
#define F_DELINVFIFOPERR V_DELINVFIFOPERR(1U)
-#define S_CTPOUTPLDFIFOPERR 7
-#define V_CTPOUTPLDFIFOPERR(x) ((x) << S_CTPOUTPLDFIFOPERR)
-#define F_CTPOUTPLDFIFOPERR V_CTPOUTPLDFIFOPERR(1U)
-
#define A_TP_INT_CAUSE 0x7e74
#define A_TP_PER_ENABLE 0x7e78
#define A_TP_FLM_FREE_PS_CNT 0x7e80
@@ -15629,7 +9958,6 @@
#define V_DISABLETIMEFREEZE(x) ((x) << S_DISABLETIMEFREEZE)
#define F_DISABLETIMEFREEZE V_DISABLETIMEFREEZE(1U)
-#define A_TP_STAMP_TIME 0x7ea8
#define A_TP_DEBUG_FLAGS 0x7eac
#define S_RXTIMERDACKFIRST 26
@@ -15724,18 +10052,6 @@
#define V_TXRCVADVLTMSS(x) ((x) << S_TXRCVADVLTMSS)
#define F_TXRCVADVLTMSS V_TXRCVADVLTMSS(1U)
-#define S_RXTIMERCOMPBUFFER 27
-#define V_RXTIMERCOMPBUFFER(x) ((x) << S_RXTIMERCOMPBUFFER)
-#define F_RXTIMERCOMPBUFFER V_RXTIMERCOMPBUFFER(1U)
-
-#define S_TXDFRFAST 13
-#define V_TXDFRFAST(x) ((x) << S_TXDFRFAST)
-#define F_TXDFRFAST V_TXDFRFAST(1U)
-
-#define S_TXRXMMISC 12
-#define V_TXRXMMISC(x) ((x) << S_TXRXMMISC)
-#define F_TXRXMMISC V_TXRXMMISC(1U)
-
#define A_TP_RX_SCHED 0x7eb0
#define S_RXCOMMITRESET1 31
@@ -16536,28 +10852,6 @@
#define V_TXPPPENPORT0(x) ((x) << S_TXPPPENPORT0)
#define G_TXPPPENPORT0(x) (((x) >> S_TXPPPENPORT0) & M_TXPPPENPORT0)
-#define A_TP_RX_SCHED_FIFO 0x2b
-
-#define S_COMMITLIMIT1H 24
-#define M_COMMITLIMIT1H 0xffU
-#define V_COMMITLIMIT1H(x) ((x) << S_COMMITLIMIT1H)
-#define G_COMMITLIMIT1H(x) (((x) >> S_COMMITLIMIT1H) & M_COMMITLIMIT1H)
-
-#define S_COMMITLIMIT1L 16
-#define M_COMMITLIMIT1L 0xffU
-#define V_COMMITLIMIT1L(x) ((x) << S_COMMITLIMIT1L)
-#define G_COMMITLIMIT1L(x) (((x) >> S_COMMITLIMIT1L) & M_COMMITLIMIT1L)
-
-#define S_COMMITLIMIT0H 8
-#define M_COMMITLIMIT0H 0xffU
-#define V_COMMITLIMIT0H(x) ((x) << S_COMMITLIMIT0H)
-#define G_COMMITLIMIT0H(x) (((x) >> S_COMMITLIMIT0H) & M_COMMITLIMIT0H)
-
-#define S_COMMITLIMIT0L 0
-#define M_COMMITLIMIT0L 0xffU
-#define V_COMMITLIMIT0L(x) ((x) << S_COMMITLIMIT0L)
-#define G_COMMITLIMIT0L(x) (((x) >> S_COMMITLIMIT0L) & M_COMMITLIMIT0L)
-
#define A_TP_IPMI_CFG1 0x2e
#define S_VLANENABLE 31
@@ -16826,90 +11120,6 @@
#define V_IPV4TYPE(x) ((x) << S_IPV4TYPE)
#define G_IPV4TYPE(x) (((x) >> S_IPV4TYPE) & M_IPV4TYPE)
-#define A_TP_ETHER_TYPE_FW 0x52
-
-#define S_ETHTYPE1 16
-#define M_ETHTYPE1 0xffffU
-#define V_ETHTYPE1(x) ((x) << S_ETHTYPE1)
-#define G_ETHTYPE1(x) (((x) >> S_ETHTYPE1) & M_ETHTYPE1)
-
-#define S_ETHTYPE0 0
-#define M_ETHTYPE0 0xffffU
-#define V_ETHTYPE0(x) ((x) << S_ETHTYPE0)
-#define G_ETHTYPE0(x) (((x) >> S_ETHTYPE0) & M_ETHTYPE0)
-
-#define A_TP_CORE_POWER 0x54
-
-#define S_SLEEPRDYVNT 12
-#define V_SLEEPRDYVNT(x) ((x) << S_SLEEPRDYVNT)
-#define F_SLEEPRDYVNT V_SLEEPRDYVNT(1U)
-
-#define S_SLEEPRDYTBL 11
-#define V_SLEEPRDYTBL(x) ((x) << S_SLEEPRDYTBL)
-#define F_SLEEPRDYTBL V_SLEEPRDYTBL(1U)
-
-#define S_SLEEPRDYMIB 10
-#define V_SLEEPRDYMIB(x) ((x) << S_SLEEPRDYMIB)
-#define F_SLEEPRDYMIB V_SLEEPRDYMIB(1U)
-
-#define S_SLEEPRDYARP 9
-#define V_SLEEPRDYARP(x) ((x) << S_SLEEPRDYARP)
-#define F_SLEEPRDYARP V_SLEEPRDYARP(1U)
-
-#define S_SLEEPRDYRSS 8
-#define V_SLEEPRDYRSS(x) ((x) << S_SLEEPRDYRSS)
-#define F_SLEEPRDYRSS V_SLEEPRDYRSS(1U)
-
-#define S_SLEEPREQVNT 4
-#define V_SLEEPREQVNT(x) ((x) << S_SLEEPREQVNT)
-#define F_SLEEPREQVNT V_SLEEPREQVNT(1U)
-
-#define S_SLEEPREQTBL 3
-#define V_SLEEPREQTBL(x) ((x) << S_SLEEPREQTBL)
-#define F_SLEEPREQTBL V_SLEEPREQTBL(1U)
-
-#define S_SLEEPREQMIB 2
-#define V_SLEEPREQMIB(x) ((x) << S_SLEEPREQMIB)
-#define F_SLEEPREQMIB V_SLEEPREQMIB(1U)
-
-#define S_SLEEPREQARP 1
-#define V_SLEEPREQARP(x) ((x) << S_SLEEPREQARP)
-#define F_SLEEPREQARP V_SLEEPREQARP(1U)
-
-#define S_SLEEPREQRSS 0
-#define V_SLEEPREQRSS(x) ((x) << S_SLEEPREQRSS)
-#define F_SLEEPREQRSS V_SLEEPREQRSS(1U)
-
-#define A_TP_CORE_RDMA 0x55
-
-#define S_IMMEDIATEOP 20
-#define M_IMMEDIATEOP 0xfU
-#define V_IMMEDIATEOP(x) ((x) << S_IMMEDIATEOP)
-#define G_IMMEDIATEOP(x) (((x) >> S_IMMEDIATEOP) & M_IMMEDIATEOP)
-
-#define S_IMMEDIATESE 16
-#define M_IMMEDIATESE 0xfU
-#define V_IMMEDIATESE(x) ((x) << S_IMMEDIATESE)
-#define G_IMMEDIATESE(x) (((x) >> S_IMMEDIATESE) & M_IMMEDIATESE)
-
-#define S_ATOMICREQOP 12
-#define M_ATOMICREQOP 0xfU
-#define V_ATOMICREQOP(x) ((x) << S_ATOMICREQOP)
-#define G_ATOMICREQOP(x) (((x) >> S_ATOMICREQOP) & M_ATOMICREQOP)
-
-#define S_ATOMICRSPOP 8
-#define M_ATOMICRSPOP 0xfU
-#define V_ATOMICRSPOP(x) ((x) << S_ATOMICRSPOP)
-#define G_ATOMICRSPOP(x) (((x) >> S_ATOMICRSPOP) & M_ATOMICRSPOP)
-
-#define S_IMMEDIASEEN 1
-#define V_IMMEDIASEEN(x) ((x) << S_IMMEDIASEEN)
-#define F_IMMEDIASEEN V_IMMEDIASEEN(1U)
-
-#define S_IMMEDIATEEN 0
-#define V_IMMEDIATEEN(x) ((x) << S_IMMEDIATEEN)
-#define F_IMMEDIATEEN V_IMMEDIATEEN(1U)
-
#define A_TP_DBG_CLEAR 0x60
#define A_TP_DBG_CORE_HDR0 0x61
@@ -17029,16 +11239,16 @@
#define V_SRAMFATAL(x) ((x) << S_SRAMFATAL)
#define F_SRAMFATAL V_SRAMFATAL(1U)
-#define S_CPCMDCONG 24
-#define M_CPCMDCONG 0xfU
+#define S_EPCMDCONG 24
+#define M_EPCMDCONG 0xfU
+#define V_EPCMDCONG(x) ((x) << S_EPCMDCONG)
+#define G_EPCMDCONG(x) (((x) >> S_EPCMDCONG) & M_EPCMDCONG)
+
+#define S_CPCMDCONG 22
+#define M_CPCMDCONG 0x3U
#define V_CPCMDCONG(x) ((x) << S_CPCMDCONG)
#define G_CPCMDCONG(x) (((x) >> S_CPCMDCONG) & M_CPCMDCONG)
-#define S_EPCMDCONG 22
-#define M_EPCMDCONG 0x3U
-#define V_EPCMDCONG(x) ((x) << S_EPCMDCONG)
-#define G_EPCMDCONG(x) (((x) >> S_EPCMDCONG) & M_EPCMDCONG)
-
#define S_CPCMDLENFATAL 21
#define V_CPCMDLENFATAL(x) ((x) << S_CPCMDLENFATAL)
#define F_CPCMDLENFATAL V_CPCMDLENFATAL(1U)
@@ -17085,14 +11295,6 @@
#define V_CPCMDEOICNT(x) ((x) << S_CPCMDEOICNT)
#define G_CPCMDEOICNT(x) (((x) >> S_CPCMDEOICNT) & M_CPCMDEOICNT)
-#define S_CPCMDTTLFATAL 6
-#define V_CPCMDTTLFATAL(x) ((x) << S_CPCMDTTLFATAL)
-#define F_CPCMDTTLFATAL V_CPCMDTTLFATAL(1U)
-
-#define S_CDATACHNFATAL 5
-#define V_CDATACHNFATAL(x) ((x) << S_CDATACHNFATAL)
-#define F_CDATACHNFATAL V_CDATACHNFATAL(1U)
-
#define A_TP_DBG_CORE_OUT 0x64
#define S_CCPLENC 26
@@ -17183,46 +11385,6 @@
#define V_EPLDTXZEROPDRDY(x) ((x) << S_EPLDTXZEROPDRDY)
#define F_EPLDTXZEROPDRDY V_EPLDTXZEROPDRDY(1U)
-#define S_CRXBUSYOUT 31
-#define V_CRXBUSYOUT(x) ((x) << S_CRXBUSYOUT)
-#define F_CRXBUSYOUT V_CRXBUSYOUT(1U)
-
-#define S_CTXBUSYOUT 30
-#define V_CTXBUSYOUT(x) ((x) << S_CTXBUSYOUT)
-#define F_CTXBUSYOUT V_CTXBUSYOUT(1U)
-
-#define S_CRDCPLPKT 29
-#define V_CRDCPLPKT(x) ((x) << S_CRDCPLPKT)
-#define F_CRDCPLPKT V_CRDCPLPKT(1U)
-
-#define S_CRDTCPPKT 28
-#define V_CRDTCPPKT(x) ((x) << S_CRDTCPPKT)
-#define F_CRDTCPPKT V_CRDTCPPKT(1U)
-
-#define S_CNEWMSG 27
-#define V_CNEWMSG(x) ((x) << S_CNEWMSG)
-#define F_CNEWMSG V_CNEWMSG(1U)
-
-#define S_ERXBUSYOUT 15
-#define V_ERXBUSYOUT(x) ((x) << S_ERXBUSYOUT)
-#define F_ERXBUSYOUT V_ERXBUSYOUT(1U)
-
-#define S_ETXBUSYOUT 14
-#define V_ETXBUSYOUT(x) ((x) << S_ETXBUSYOUT)
-#define F_ETXBUSYOUT V_ETXBUSYOUT(1U)
-
-#define S_ERDCPLPKT 13
-#define V_ERDCPLPKT(x) ((x) << S_ERDCPLPKT)
-#define F_ERDCPLPKT V_ERDCPLPKT(1U)
-
-#define S_ERDTCPPKT 12
-#define V_ERDTCPPKT(x) ((x) << S_ERDTCPPKT)
-#define F_ERDTCPPKT V_ERDTCPPKT(1U)
-
-#define S_ENEWMSG 11
-#define V_ENEWMSG(x) ((x) << S_ENEWMSG)
-#define F_ENEWMSG V_ENEWMSG(1U)
-
#define A_TP_DBG_CORE_TID 0x65
#define S_LINENUMBER 24
@@ -17243,11 +11405,6 @@
#define V_TIDVALUE(x) ((x) << S_TIDVALUE)
#define G_TIDVALUE(x) (((x) >> S_TIDVALUE) & M_TIDVALUE)
-#define S_SRC 21
-#define M_SRC 0x3U
-#define V_SRC(x) ((x) << S_SRC)
-#define G_SRC(x) (((x) >> S_SRC) & M_SRC)
-
#define A_TP_DBG_ENG_RES0 0x66
#define S_RESOURCESREADY 31
@@ -17345,23 +11502,14 @@
#define V_CPCMDBUSY(x) ((x) << S_CPCMDBUSY)
#define F_CPCMDBUSY V_CPCMDBUSY(1U)
-#define S_EPCMDBUSY 1
-#define V_EPCMDBUSY(x) ((x) << S_EPCMDBUSY)
-#define F_EPCMDBUSY V_EPCMDBUSY(1U)
-
-#define S_ETXBUSY 0
+#define S_ETXBUSY 1
#define V_ETXBUSY(x) ((x) << S_ETXBUSY)
#define F_ETXBUSY V_ETXBUSY(1U)
-#define S_EFFOPCODEOUT 16
-#define M_EFFOPCODEOUT 0xfU
-#define V_EFFOPCODEOUT(x) ((x) << S_EFFOPCODEOUT)
-#define G_EFFOPCODEOUT(x) (((x) >> S_EFFOPCODEOUT) & M_EFFOPCODEOUT)
+#define S_EPCMDBUSY 0
+#define V_EPCMDBUSY(x) ((x) << S_EPCMDBUSY)
+#define F_EPCMDBUSY V_EPCMDBUSY(1U)
-#define S_DELDRDY 14
-#define V_DELDRDY(x) ((x) << S_DELDRDY)
-#define F_DELDRDY V_DELDRDY(1U)
-
#define A_TP_DBG_ENG_RES1 0x67
#define S_RXCPLSRDY 31
@@ -17611,49 +11759,6 @@
#define V_RXMODXOFF(x) ((x) << S_RXMODXOFF)
#define G_RXMODXOFF(x) (((x) >> S_RXMODXOFF) & M_RXMODXOFF)
-#define A_TP_DBG_ERROR_CNT 0x6c
-#define A_TP_MIB_DEBUG 0x6f
-
-#define S_SRC3 31
-#define V_SRC3(x) ((x) << S_SRC3)
-#define F_SRC3 V_SRC3(1U)
-
-#define S_LINENUM3 24
-#define M_LINENUM3 0x7fU
-#define V_LINENUM3(x) ((x) << S_LINENUM3)
-#define G_LINENUM3(x) (((x) >> S_LINENUM3) & M_LINENUM3)
-
-#define S_SRC2 23
-#define V_SRC2(x) ((x) << S_SRC2)
-#define F_SRC2 V_SRC2(1U)
-
-#define S_LINENUM2 16
-#define M_LINENUM2 0x7fU
-#define V_LINENUM2(x) ((x) << S_LINENUM2)
-#define G_LINENUM2(x) (((x) >> S_LINENUM2) & M_LINENUM2)
-
-#define S_SRC1 15
-#define V_SRC1(x) ((x) << S_SRC1)
-#define F_SRC1 V_SRC1(1U)
-
-#define S_LINENUM1 8
-#define M_LINENUM1 0x7fU
-#define V_LINENUM1(x) ((x) << S_LINENUM1)
-#define G_LINENUM1(x) (((x) >> S_LINENUM1) & M_LINENUM1)
-
-#define S_SRC0 7
-#define V_SRC0(x) ((x) << S_SRC0)
-#define F_SRC0 V_SRC0(1U)
-
-#define S_LINENUM0 0
-#define M_LINENUM0 0x7fU
-#define V_LINENUM0(x) ((x) << S_LINENUM0)
-#define G_LINENUM0(x) (((x) >> S_LINENUM0) & M_LINENUM0)
-
-#define A_TP_T5_TX_DROP_CNT_CH0 0x120
-#define A_TP_T5_TX_DROP_CNT_CH1 0x121
-#define A_TP_TX_DROP_CNT_CH2 0x122
-#define A_TP_TX_DROP_CNT_CH3 0x123
#define A_TP_TX_DROP_CFG_CH0 0x12b
#define S_TIMERENABLED 31
@@ -18236,18 +12341,6 @@
#define V_FCOE(x) ((x) << S_FCOE)
#define F_FCOE V_FCOE(1U)
-#define S_FILTERMODE 15
-#define V_FILTERMODE(x) ((x) << S_FILTERMODE)
-#define F_FILTERMODE V_FILTERMODE(1U)
-
-#define S_FCOEMASK 14
-#define V_FCOEMASK(x) ((x) << S_FCOEMASK)
-#define F_FCOEMASK V_FCOEMASK(1U)
-
-#define S_SRVRSRAM 13
-#define V_SRVRSRAM(x) ((x) << S_SRVRSRAM)
-#define F_SRVRSRAM V_SRVRSRAM(1U)
-
#define A_TP_INGRESS_CONFIG 0x141
#define S_OPAQUE_TYPE 16
@@ -18292,10 +12385,6 @@
#define V_IPV6_EXT_HDR_SKIP(x) ((x) << S_IPV6_EXT_HDR_SKIP)
#define G_IPV6_EXT_HDR_SKIP(x) (((x) >> S_IPV6_EXT_HDR_SKIP) & M_IPV6_EXT_HDR_SKIP)
-#define S_FRAG_LEN_MOD8_COMPAT 12
-#define V_FRAG_LEN_MOD8_COMPAT(x) ((x) << S_FRAG_LEN_MOD8_COMPAT)
-#define F_FRAG_LEN_MOD8_COMPAT V_FRAG_LEN_MOD8_COMPAT(1U)
-
#define A_TP_TX_DROP_CFG_CH2 0x142
#define A_TP_TX_DROP_CFG_CH3 0x143
#define A_TP_EGRESS_CONFIG 0x145
@@ -18304,31 +12393,6 @@
#define V_REWRITEFORCETOSIZE(x) ((x) << S_REWRITEFORCETOSIZE)
#define F_REWRITEFORCETOSIZE V_REWRITEFORCETOSIZE(1U)
-#define A_TP_INGRESS_CONFIG2 0x145
-
-#define S_IPV6_UDP_CSUM_COMPAT 31
-#define V_IPV6_UDP_CSUM_COMPAT(x) ((x) << S_IPV6_UDP_CSUM_COMPAT)
-#define F_IPV6_UDP_CSUM_COMPAT V_IPV6_UDP_CSUM_COMPAT(1U)
-
-#define S_VNTAGPLDENABLE 30
-#define V_VNTAGPLDENABLE(x) ((x) << S_VNTAGPLDENABLE)
-#define F_VNTAGPLDENABLE V_VNTAGPLDENABLE(1U)
-
-#define S_TCP_PLD_FILTER_OFFSET 20
-#define M_TCP_PLD_FILTER_OFFSET 0x3ffU
-#define V_TCP_PLD_FILTER_OFFSET(x) ((x) << S_TCP_PLD_FILTER_OFFSET)
-#define G_TCP_PLD_FILTER_OFFSET(x) (((x) >> S_TCP_PLD_FILTER_OFFSET) & M_TCP_PLD_FILTER_OFFSET)
-
-#define S_UDP_PLD_FILTER_OFFSET 10
-#define M_UDP_PLD_FILTER_OFFSET 0x3ffU
-#define V_UDP_PLD_FILTER_OFFSET(x) ((x) << S_UDP_PLD_FILTER_OFFSET)
-#define G_UDP_PLD_FILTER_OFFSET(x) (((x) >> S_UDP_PLD_FILTER_OFFSET) & M_UDP_PLD_FILTER_OFFSET)
-
-#define S_TNL_PLD_FILTER_OFFSET 0
-#define M_TNL_PLD_FILTER_OFFSET 0x3ffU
-#define V_TNL_PLD_FILTER_OFFSET(x) ((x) << S_TNL_PLD_FILTER_OFFSET)
-#define G_TNL_PLD_FILTER_OFFSET(x) (((x) >> S_TNL_PLD_FILTER_OFFSET) & M_TNL_PLD_FILTER_OFFSET)
-
#define A_TP_EHDR_CONFIG_LO 0x146
#define S_CPLLIMIT 24
@@ -18588,22 +12652,6 @@
#define V_RX_PKT_ATTR_DRDY(x) ((x) << S_RX_PKT_ATTR_DRDY)
#define F_RX_PKT_ATTR_DRDY V_RX_PKT_ATTR_DRDY(1U)
-#define S_RXRUNT 25
-#define V_RXRUNT(x) ((x) << S_RXRUNT)
-#define F_RXRUNT V_RXRUNT(1U)
-
-#define S_RXRUNTPARSER 24
-#define V_RXRUNTPARSER(x) ((x) << S_RXRUNTPARSER)
-#define F_RXRUNTPARSER V_RXRUNTPARSER(1U)
-
-#define S_ERROR_SRDY 5
-#define V_ERROR_SRDY(x) ((x) << S_ERROR_SRDY)
-#define F_ERROR_SRDY V_ERROR_SRDY(1U)
-
-#define S_ERROR_DRDY 4
-#define V_ERROR_DRDY(x) ((x) << S_ERROR_DRDY)
-#define F_ERROR_DRDY V_ERROR_DRDY(1U)
-
#define A_TP_DBG_ESIDE_IN1 0x14b
#define A_TP_DBG_ESIDE_IN2 0x14c
#define A_TP_DBG_ESIDE_IN3 0x14d
@@ -18706,162 +12754,6 @@
#define V_SVID_ID_OFFSET(x) ((x) << S_SVID_ID_OFFSET)
#define G_SVID_ID_OFFSET(x) (((x) >> S_SVID_ID_OFFSET) & M_SVID_ID_OFFSET)
-#define A_TP_DBG_ESIDE_OP 0x154
-
-#define S_OPT_PARSER_FATAL_CHANNEL0 29
-#define V_OPT_PARSER_FATAL_CHANNEL0(x) ((x) << S_OPT_PARSER_FATAL_CHANNEL0)
-#define F_OPT_PARSER_FATAL_CHANNEL0 V_OPT_PARSER_FATAL_CHANNEL0(1U)
-
-#define S_OPT_PARSER_BUSY_CHANNEL0 28
-#define V_OPT_PARSER_BUSY_CHANNEL0(x) ((x) << S_OPT_PARSER_BUSY_CHANNEL0)
-#define F_OPT_PARSER_BUSY_CHANNEL0 V_OPT_PARSER_BUSY_CHANNEL0(1U)
-
-#define S_OPT_PARSER_ITCP_STATE_CHANNEL0 26
-#define M_OPT_PARSER_ITCP_STATE_CHANNEL0 0x3U
-#define V_OPT_PARSER_ITCP_STATE_CHANNEL0(x) ((x) << S_OPT_PARSER_ITCP_STATE_CHANNEL0)
-#define G_OPT_PARSER_ITCP_STATE_CHANNEL0(x) (((x) >> S_OPT_PARSER_ITCP_STATE_CHANNEL0) & M_OPT_PARSER_ITCP_STATE_CHANNEL0)
-
-#define S_OPT_PARSER_OTK_STATE_CHANNEL0 24
-#define M_OPT_PARSER_OTK_STATE_CHANNEL0 0x3U
-#define V_OPT_PARSER_OTK_STATE_CHANNEL0(x) ((x) << S_OPT_PARSER_OTK_STATE_CHANNEL0)
-#define G_OPT_PARSER_OTK_STATE_CHANNEL0(x) (((x) >> S_OPT_PARSER_OTK_STATE_CHANNEL0) & M_OPT_PARSER_OTK_STATE_CHANNEL0)
-
-#define S_OPT_PARSER_FATAL_CHANNEL1 21
-#define V_OPT_PARSER_FATAL_CHANNEL1(x) ((x) << S_OPT_PARSER_FATAL_CHANNEL1)
-#define F_OPT_PARSER_FATAL_CHANNEL1 V_OPT_PARSER_FATAL_CHANNEL1(1U)
-
-#define S_OPT_PARSER_BUSY_CHANNEL1 20
-#define V_OPT_PARSER_BUSY_CHANNEL1(x) ((x) << S_OPT_PARSER_BUSY_CHANNEL1)
-#define F_OPT_PARSER_BUSY_CHANNEL1 V_OPT_PARSER_BUSY_CHANNEL1(1U)
-
-#define S_OPT_PARSER_ITCP_STATE_CHANNEL1 18
-#define M_OPT_PARSER_ITCP_STATE_CHANNEL1 0x3U
-#define V_OPT_PARSER_ITCP_STATE_CHANNEL1(x) ((x) << S_OPT_PARSER_ITCP_STATE_CHANNEL1)
-#define G_OPT_PARSER_ITCP_STATE_CHANNEL1(x) (((x) >> S_OPT_PARSER_ITCP_STATE_CHANNEL1) & M_OPT_PARSER_ITCP_STATE_CHANNEL1)
-
-#define S_OPT_PARSER_OTK_STATE_CHANNEL1 16
-#define M_OPT_PARSER_OTK_STATE_CHANNEL1 0x3U
-#define V_OPT_PARSER_OTK_STATE_CHANNEL1(x) ((x) << S_OPT_PARSER_OTK_STATE_CHANNEL1)
-#define G_OPT_PARSER_OTK_STATE_CHANNEL1(x) (((x) >> S_OPT_PARSER_OTK_STATE_CHANNEL1) & M_OPT_PARSER_OTK_STATE_CHANNEL1)
-
-#define S_OPT_PARSER_FATAL_CHANNEL2 13
-#define V_OPT_PARSER_FATAL_CHANNEL2(x) ((x) << S_OPT_PARSER_FATAL_CHANNEL2)
-#define F_OPT_PARSER_FATAL_CHANNEL2 V_OPT_PARSER_FATAL_CHANNEL2(1U)
-
-#define S_OPT_PARSER_BUSY_CHANNEL2 12
-#define V_OPT_PARSER_BUSY_CHANNEL2(x) ((x) << S_OPT_PARSER_BUSY_CHANNEL2)
-#define F_OPT_PARSER_BUSY_CHANNEL2 V_OPT_PARSER_BUSY_CHANNEL2(1U)
-
-#define S_OPT_PARSER_ITCP_STATE_CHANNEL2 10
-#define M_OPT_PARSER_ITCP_STATE_CHANNEL2 0x3U
-#define V_OPT_PARSER_ITCP_STATE_CHANNEL2(x) ((x) << S_OPT_PARSER_ITCP_STATE_CHANNEL2)
-#define G_OPT_PARSER_ITCP_STATE_CHANNEL2(x) (((x) >> S_OPT_PARSER_ITCP_STATE_CHANNEL2) & M_OPT_PARSER_ITCP_STATE_CHANNEL2)
-
-#define S_OPT_PARSER_OTK_STATE_CHANNEL2 8
-#define M_OPT_PARSER_OTK_STATE_CHANNEL2 0x3U
-#define V_OPT_PARSER_OTK_STATE_CHANNEL2(x) ((x) << S_OPT_PARSER_OTK_STATE_CHANNEL2)
-#define G_OPT_PARSER_OTK_STATE_CHANNEL2(x) (((x) >> S_OPT_PARSER_OTK_STATE_CHANNEL2) & M_OPT_PARSER_OTK_STATE_CHANNEL2)
-
-#define S_OPT_PARSER_FATAL_CHANNEL3 5
-#define V_OPT_PARSER_FATAL_CHANNEL3(x) ((x) << S_OPT_PARSER_FATAL_CHANNEL3)
-#define F_OPT_PARSER_FATAL_CHANNEL3 V_OPT_PARSER_FATAL_CHANNEL3(1U)
-
-#define S_OPT_PARSER_BUSY_CHANNEL3 4
-#define V_OPT_PARSER_BUSY_CHANNEL3(x) ((x) << S_OPT_PARSER_BUSY_CHANNEL3)
-#define F_OPT_PARSER_BUSY_CHANNEL3 V_OPT_PARSER_BUSY_CHANNEL3(1U)
-
-#define S_OPT_PARSER_ITCP_STATE_CHANNEL3 2
-#define M_OPT_PARSER_ITCP_STATE_CHANNEL3 0x3U
-#define V_OPT_PARSER_ITCP_STATE_CHANNEL3(x) ((x) << S_OPT_PARSER_ITCP_STATE_CHANNEL3)
-#define G_OPT_PARSER_ITCP_STATE_CHANNEL3(x) (((x) >> S_OPT_PARSER_ITCP_STATE_CHANNEL3) & M_OPT_PARSER_ITCP_STATE_CHANNEL3)
-
-#define S_OPT_PARSER_OTK_STATE_CHANNEL3 0
-#define M_OPT_PARSER_OTK_STATE_CHANNEL3 0x3U
-#define V_OPT_PARSER_OTK_STATE_CHANNEL3(x) ((x) << S_OPT_PARSER_OTK_STATE_CHANNEL3)
-#define G_OPT_PARSER_OTK_STATE_CHANNEL3(x) (((x) >> S_OPT_PARSER_OTK_STATE_CHANNEL3) & M_OPT_PARSER_OTK_STATE_CHANNEL3)
-
-#define A_TP_DBG_ESIDE_OP_ALT 0x155
-
-#define S_OPT_PARSER_PSTATE_FATAL_CHANNEL0 29
-#define V_OPT_PARSER_PSTATE_FATAL_CHANNEL0(x) ((x) << S_OPT_PARSER_PSTATE_FATAL_CHANNEL0)
-#define F_OPT_PARSER_PSTATE_FATAL_CHANNEL0 V_OPT_PARSER_PSTATE_FATAL_CHANNEL0(1U)
-
-#define S_OPT_PARSER_PSTATE_ERRNO_CHANNEL0 24
-#define M_OPT_PARSER_PSTATE_ERRNO_CHANNEL0 0x1fU
-#define V_OPT_PARSER_PSTATE_ERRNO_CHANNEL0(x) ((x) << S_OPT_PARSER_PSTATE_ERRNO_CHANNEL0)
-#define G_OPT_PARSER_PSTATE_ERRNO_CHANNEL0(x) (((x) >> S_OPT_PARSER_PSTATE_ERRNO_CHANNEL0) & M_OPT_PARSER_PSTATE_ERRNO_CHANNEL0)
-
-#define S_OPT_PARSER_PSTATE_FATAL_CHANNEL1 21
-#define V_OPT_PARSER_PSTATE_FATAL_CHANNEL1(x) ((x) << S_OPT_PARSER_PSTATE_FATAL_CHANNEL1)
-#define F_OPT_PARSER_PSTATE_FATAL_CHANNEL1 V_OPT_PARSER_PSTATE_FATAL_CHANNEL1(1U)
-
-#define S_OPT_PARSER_PSTATE_ERRNO_CHANNEL1 16
-#define M_OPT_PARSER_PSTATE_ERRNO_CHANNEL1 0x1fU
-#define V_OPT_PARSER_PSTATE_ERRNO_CHANNEL1(x) ((x) << S_OPT_PARSER_PSTATE_ERRNO_CHANNEL1)
-#define G_OPT_PARSER_PSTATE_ERRNO_CHANNEL1(x) (((x) >> S_OPT_PARSER_PSTATE_ERRNO_CHANNEL1) & M_OPT_PARSER_PSTATE_ERRNO_CHANNEL1)
-
-#define S_OPT_PARSER_PSTATE_FATAL_CHANNEL2 13
-#define V_OPT_PARSER_PSTATE_FATAL_CHANNEL2(x) ((x) << S_OPT_PARSER_PSTATE_FATAL_CHANNEL2)
-#define F_OPT_PARSER_PSTATE_FATAL_CHANNEL2 V_OPT_PARSER_PSTATE_FATAL_CHANNEL2(1U)
-
-#define S_OPT_PARSER_PSTATE_ERRNO_CHANNEL2 8
-#define M_OPT_PARSER_PSTATE_ERRNO_CHANNEL2 0x1fU
-#define V_OPT_PARSER_PSTATE_ERRNO_CHANNEL2(x) ((x) << S_OPT_PARSER_PSTATE_ERRNO_CHANNEL2)
-#define G_OPT_PARSER_PSTATE_ERRNO_CHANNEL2(x) (((x) >> S_OPT_PARSER_PSTATE_ERRNO_CHANNEL2) & M_OPT_PARSER_PSTATE_ERRNO_CHANNEL2)
-
-#define S_OPT_PARSER_PSTATE_FATAL_CHANNEL3 5
-#define V_OPT_PARSER_PSTATE_FATAL_CHANNEL3(x) ((x) << S_OPT_PARSER_PSTATE_FATAL_CHANNEL3)
-#define F_OPT_PARSER_PSTATE_FATAL_CHANNEL3 V_OPT_PARSER_PSTATE_FATAL_CHANNEL3(1U)
-
-#define S_OPT_PARSER_PSTATE_ERRNO_CHANNEL3 0
-#define M_OPT_PARSER_PSTATE_ERRNO_CHANNEL3 0x1fU
-#define V_OPT_PARSER_PSTATE_ERRNO_CHANNEL3(x) ((x) << S_OPT_PARSER_PSTATE_ERRNO_CHANNEL3)
-#define G_OPT_PARSER_PSTATE_ERRNO_CHANNEL3(x) (((x) >> S_OPT_PARSER_PSTATE_ERRNO_CHANNEL3) & M_OPT_PARSER_PSTATE_ERRNO_CHANNEL3)
-
-#define A_TP_DBG_ESIDE_OP_BUSY 0x156
-
-#define S_OPT_PARSER_BUSY_VEC_CHANNEL3 24
-#define M_OPT_PARSER_BUSY_VEC_CHANNEL3 0xffU
-#define V_OPT_PARSER_BUSY_VEC_CHANNEL3(x) ((x) << S_OPT_PARSER_BUSY_VEC_CHANNEL3)
-#define G_OPT_PARSER_BUSY_VEC_CHANNEL3(x) (((x) >> S_OPT_PARSER_BUSY_VEC_CHANNEL3) & M_OPT_PARSER_BUSY_VEC_CHANNEL3)
-
-#define S_OPT_PARSER_BUSY_VEC_CHANNEL2 16
-#define M_OPT_PARSER_BUSY_VEC_CHANNEL2 0xffU
-#define V_OPT_PARSER_BUSY_VEC_CHANNEL2(x) ((x) << S_OPT_PARSER_BUSY_VEC_CHANNEL2)
-#define G_OPT_PARSER_BUSY_VEC_CHANNEL2(x) (((x) >> S_OPT_PARSER_BUSY_VEC_CHANNEL2) & M_OPT_PARSER_BUSY_VEC_CHANNEL2)
-
-#define S_OPT_PARSER_BUSY_VEC_CHANNEL1 8
-#define M_OPT_PARSER_BUSY_VEC_CHANNEL1 0xffU
-#define V_OPT_PARSER_BUSY_VEC_CHANNEL1(x) ((x) << S_OPT_PARSER_BUSY_VEC_CHANNEL1)
-#define G_OPT_PARSER_BUSY_VEC_CHANNEL1(x) (((x) >> S_OPT_PARSER_BUSY_VEC_CHANNEL1) & M_OPT_PARSER_BUSY_VEC_CHANNEL1)
-
-#define S_OPT_PARSER_BUSY_VEC_CHANNEL0 0
-#define M_OPT_PARSER_BUSY_VEC_CHANNEL0 0xffU
-#define V_OPT_PARSER_BUSY_VEC_CHANNEL0(x) ((x) << S_OPT_PARSER_BUSY_VEC_CHANNEL0)
-#define G_OPT_PARSER_BUSY_VEC_CHANNEL0(x) (((x) >> S_OPT_PARSER_BUSY_VEC_CHANNEL0) & M_OPT_PARSER_BUSY_VEC_CHANNEL0)
-
-#define A_TP_DBG_ESIDE_OP_COOKIE 0x157
-
-#define S_OPT_PARSER_COOKIE_CHANNEL3 24
-#define M_OPT_PARSER_COOKIE_CHANNEL3 0xffU
-#define V_OPT_PARSER_COOKIE_CHANNEL3(x) ((x) << S_OPT_PARSER_COOKIE_CHANNEL3)
-#define G_OPT_PARSER_COOKIE_CHANNEL3(x) (((x) >> S_OPT_PARSER_COOKIE_CHANNEL3) & M_OPT_PARSER_COOKIE_CHANNEL3)
-
-#define S_OPT_PARSER_COOKIE_CHANNEL2 16
-#define M_OPT_PARSER_COOKIE_CHANNEL2 0xffU
-#define V_OPT_PARSER_COOKIE_CHANNEL2(x) ((x) << S_OPT_PARSER_COOKIE_CHANNEL2)
-#define G_OPT_PARSER_COOKIE_CHANNEL2(x) (((x) >> S_OPT_PARSER_COOKIE_CHANNEL2) & M_OPT_PARSER_COOKIE_CHANNEL2)
-
-#define S_OPT_PARSER_COOKIE_CHANNEL1 8
-#define M_OPT_PARSER_COOKIE_CHANNEL1 0xffU
-#define V_OPT_PARSER_COOKIE_CHANNEL1(x) ((x) << S_OPT_PARSER_COOKIE_CHANNEL1)
-#define G_OPT_PARSER_COOKIE_CHANNEL1(x) (((x) >> S_OPT_PARSER_COOKIE_CHANNEL1) & M_OPT_PARSER_COOKIE_CHANNEL1)
-
-#define S_OPT_PARSER_COOKIE_CHANNEL0 0
-#define M_OPT_PARSER_COOKIE_CHANNEL0 0xffU
-#define V_OPT_PARSER_COOKIE_CHANNEL0(x) ((x) << S_OPT_PARSER_COOKIE_CHANNEL0)
-#define G_OPT_PARSER_COOKIE_CHANNEL0(x) (((x) >> S_OPT_PARSER_COOKIE_CHANNEL0) & M_OPT_PARSER_COOKIE_CHANNEL0)
-
#define A_TP_DBG_CSIDE_RX0 0x230
#define S_CRXSOPCNT 28
@@ -19274,50 +13166,6 @@
#define V_CMD_SEL(x) ((x) << S_CMD_SEL)
#define F_CMD_SEL V_CMD_SEL(1U)
-#define S_CPL5RXFULL 26
-#define V_CPL5RXFULL(x) ((x) << S_CPL5RXFULL)
-#define F_CPL5RXFULL V_CPL5RXFULL(1U)
-
-#define S_PLD2XRXVALID 23
-#define V_PLD2XRXVALID(x) ((x) << S_PLD2XRXVALID)
-#define F_PLD2XRXVALID V_PLD2XRXVALID(1U)
-
-#define S_DDPSTATE 16
-#define M_DDPSTATE 0x1fU
-#define V_DDPSTATE(x) ((x) << S_DDPSTATE)
-#define G_DDPSTATE(x) (((x) >> S_DDPSTATE) & M_DDPSTATE)
-
-#define S_DDPMSGCODE 12
-#define M_DDPMSGCODE 0xfU
-#define V_DDPMSGCODE(x) ((x) << S_DDPMSGCODE)
-#define G_DDPMSGCODE(x) (((x) >> S_DDPMSGCODE) & M_DDPMSGCODE)
-
-#define S_CPL5SOCPCNT 8
-#define M_CPL5SOCPCNT 0xfU
-#define V_CPL5SOCPCNT(x) ((x) << S_CPL5SOCPCNT)
-#define G_CPL5SOCPCNT(x) (((x) >> S_CPL5SOCPCNT) & M_CPL5SOCPCNT)
-
-#define S_PLDRXZEROPCNT 4
-#define M_PLDRXZEROPCNT 0xfU
-#define V_PLDRXZEROPCNT(x) ((x) << S_PLDRXZEROPCNT)
-#define G_PLDRXZEROPCNT(x) (((x) >> S_PLDRXZEROPCNT) & M_PLDRXZEROPCNT)
-
-#define S_TXFRMERR2 3
-#define V_TXFRMERR2(x) ((x) << S_TXFRMERR2)
-#define F_TXFRMERR2 V_TXFRMERR2(1U)
-
-#define S_TXFRMERR1 2
-#define V_TXFRMERR1(x) ((x) << S_TXFRMERR1)
-#define F_TXFRMERR1 V_TXFRMERR1(1U)
-
-#define S_TXVALID2X 1
-#define V_TXVALID2X(x) ((x) << S_TXVALID2X)
-#define F_TXVALID2X V_TXVALID2X(1U)
-
-#define S_TXFULL2X 0
-#define V_TXFULL2X(x) ((x) << S_TXFULL2X)
-#define F_TXFULL2X V_TXFULL2X(1U)
-
#define A_TP_DBG_CSIDE_DISP1 0x23b
#define A_TP_DBG_CSIDE_DDP0 0x23c
@@ -19517,48 +13365,6 @@
#define V_WRITEZEROOP(x) ((x) << S_WRITEZEROOP)
#define G_WRITEZEROOP(x) (((x) >> S_WRITEZEROOP) & M_WRITEZEROOP)
-#define S_STARTSKIPPLD 7
-#define V_STARTSKIPPLD(x) ((x) << S_STARTSKIPPLD)
-#define F_STARTSKIPPLD V_STARTSKIPPLD(1U)
-
-#define S_ATOMICCMDEN 5
-#define V_ATOMICCMDEN(x) ((x) << S_ATOMICCMDEN)
-#define F_ATOMICCMDEN V_ATOMICCMDEN(1U)
-
-#define A_TP_CSPI_POWER 0x243
-
-#define S_GATECHNTX3 11
-#define V_GATECHNTX3(x) ((x) << S_GATECHNTX3)
-#define F_GATECHNTX3 V_GATECHNTX3(1U)
-
-#define S_GATECHNTX2 10
-#define V_GATECHNTX2(x) ((x) << S_GATECHNTX2)
-#define F_GATECHNTX2 V_GATECHNTX2(1U)
-
-#define S_GATECHNTX1 9
-#define V_GATECHNTX1(x) ((x) << S_GATECHNTX1)
-#define F_GATECHNTX1 V_GATECHNTX1(1U)
-
-#define S_GATECHNTX0 8
-#define V_GATECHNTX0(x) ((x) << S_GATECHNTX0)
-#define F_GATECHNTX0 V_GATECHNTX0(1U)
-
-#define S_GATECHNRX1 7
-#define V_GATECHNRX1(x) ((x) << S_GATECHNRX1)
-#define F_GATECHNRX1 V_GATECHNRX1(1U)
-
-#define S_GATECHNRX0 6
-#define V_GATECHNRX0(x) ((x) << S_GATECHNRX0)
-#define F_GATECHNRX0 V_GATECHNRX0(1U)
-
-#define S_SLEEPRDYUTRN 4
-#define V_SLEEPRDYUTRN(x) ((x) << S_SLEEPRDYUTRN)
-#define F_SLEEPRDYUTRN V_SLEEPRDYUTRN(1U)
-
-#define S_SLEEPREQUTRN 0
-#define V_SLEEPREQUTRN(x) ((x) << S_SLEEPREQUTRN)
-#define F_SLEEPREQUTRN V_SLEEPREQUTRN(1U)
-
#define A_TP_TRC_CONFIG 0x244
#define S_TRCRR 1
@@ -19598,70 +13404,6 @@
#define V_CPRSSTATE0(x) ((x) << S_CPRSSTATE0)
#define G_CPRSSTATE0(x) (((x) >> S_CPRSSTATE0) & M_CPRSSTATE0)
-#define S_C4TUPBUSY3 31
-#define V_C4TUPBUSY3(x) ((x) << S_C4TUPBUSY3)
-#define F_C4TUPBUSY3 V_C4TUPBUSY3(1U)
-
-#define S_CDBVALID3 30
-#define V_CDBVALID3(x) ((x) << S_CDBVALID3)
-#define F_CDBVALID3 V_CDBVALID3(1U)
-
-#define S_CRXVALID3 29
-#define V_CRXVALID3(x) ((x) << S_CRXVALID3)
-#define F_CRXVALID3 V_CRXVALID3(1U)
-
-#define S_CRXFULL3 28
-#define V_CRXFULL3(x) ((x) << S_CRXFULL3)
-#define F_CRXFULL3 V_CRXFULL3(1U)
-
-#define S_C4TUPBUSY2 23
-#define V_C4TUPBUSY2(x) ((x) << S_C4TUPBUSY2)
-#define F_C4TUPBUSY2 V_C4TUPBUSY2(1U)
-
-#define S_CDBVALID2 22
-#define V_CDBVALID2(x) ((x) << S_CDBVALID2)
-#define F_CDBVALID2 V_CDBVALID2(1U)
-
-#define S_CRXVALID2 21
-#define V_CRXVALID2(x) ((x) << S_CRXVALID2)
-#define F_CRXVALID2 V_CRXVALID2(1U)
-
-#define S_CRXFULL2 20
-#define V_CRXFULL2(x) ((x) << S_CRXFULL2)
-#define F_CRXFULL2 V_CRXFULL2(1U)
-
-#define S_C4TUPBUSY1 15
-#define V_C4TUPBUSY1(x) ((x) << S_C4TUPBUSY1)
-#define F_C4TUPBUSY1 V_C4TUPBUSY1(1U)
-
-#define S_CDBVALID1 14
-#define V_CDBVALID1(x) ((x) << S_CDBVALID1)
-#define F_CDBVALID1 V_CDBVALID1(1U)
-
-#define S_CRXVALID1 13
-#define V_CRXVALID1(x) ((x) << S_CRXVALID1)
-#define F_CRXVALID1 V_CRXVALID1(1U)
-
-#define S_CRXFULL1 12
-#define V_CRXFULL1(x) ((x) << S_CRXFULL1)
-#define F_CRXFULL1 V_CRXFULL1(1U)
-
-#define S_C4TUPBUSY0 7
-#define V_C4TUPBUSY0(x) ((x) << S_C4TUPBUSY0)
-#define F_C4TUPBUSY0 V_C4TUPBUSY0(1U)
-
-#define S_CDBVALID0 6
-#define V_CDBVALID0(x) ((x) << S_CDBVALID0)
-#define F_CDBVALID0 V_CDBVALID0(1U)
-
-#define S_CRXVALID0 5
-#define V_CRXVALID0(x) ((x) << S_CRXVALID0)
-#define F_CRXVALID0 V_CRXVALID0(1U)
-
-#define S_CRXFULL0 4
-#define V_CRXFULL0(x) ((x) << S_CRXFULL0)
-#define F_CRXFULL0 V_CRXFULL0(1U)
-
#define A_TP_DBG_CSIDE_DEMUX 0x247
#define S_CALLDONE 28
@@ -19704,151 +13446,6 @@
#define V_CTXPKTCSUMDONE(x) ((x) << S_CTXPKTCSUMDONE)
#define G_CTXPKTCSUMDONE(x) (((x) >> S_CTXPKTCSUMDONE) & M_CTXPKTCSUMDONE)
-#define S_CARBVALID 28
-#define M_CARBVALID 0xfU
-#define V_CARBVALID(x) ((x) << S_CARBVALID)
-#define G_CARBVALID(x) (((x) >> S_CARBVALID) & M_CARBVALID)
-
-#define S_CCPL5DONE 24
-#define M_CCPL5DONE 0xfU
-#define V_CCPL5DONE(x) ((x) << S_CCPL5DONE)
-#define G_CCPL5DONE(x) (((x) >> S_CCPL5DONE) & M_CCPL5DONE)
-
-#define S_CTCPOPDONE 12
-#define M_CTCPOPDONE 0xfU
-#define V_CTCPOPDONE(x) ((x) << S_CTCPOPDONE)
-#define G_CTCPOPDONE(x) (((x) >> S_CTCPOPDONE) & M_CTCPOPDONE)
-
-#define A_TP_DBG_CSIDE_ARBIT 0x248
-
-#define S_CPLVALID3 31
-#define V_CPLVALID3(x) ((x) << S_CPLVALID3)
-#define F_CPLVALID3 V_CPLVALID3(1U)
-
-#define S_PLDVALID3 30
-#define V_PLDVALID3(x) ((x) << S_PLDVALID3)
-#define F_PLDVALID3 V_PLDVALID3(1U)
-
-#define S_CRCVALID3 29
-#define V_CRCVALID3(x) ((x) << S_CRCVALID3)
-#define F_CRCVALID3 V_CRCVALID3(1U)
-
-#define S_ISSVALID3 28
-#define V_ISSVALID3(x) ((x) << S_ISSVALID3)
-#define F_ISSVALID3 V_ISSVALID3(1U)
-
-#define S_DBVALID3 27
-#define V_DBVALID3(x) ((x) << S_DBVALID3)
-#define F_DBVALID3 V_DBVALID3(1U)
-
-#define S_CHKVALID3 26
-#define V_CHKVALID3(x) ((x) << S_CHKVALID3)
-#define F_CHKVALID3 V_CHKVALID3(1U)
-
-#define S_ZRPVALID3 25
-#define V_ZRPVALID3(x) ((x) << S_ZRPVALID3)
-#define F_ZRPVALID3 V_ZRPVALID3(1U)
-
-#define S_ERRVALID3 24
-#define V_ERRVALID3(x) ((x) << S_ERRVALID3)
-#define F_ERRVALID3 V_ERRVALID3(1U)
-
-#define S_CPLVALID2 23
-#define V_CPLVALID2(x) ((x) << S_CPLVALID2)
-#define F_CPLVALID2 V_CPLVALID2(1U)
-
-#define S_PLDVALID2 22
-#define V_PLDVALID2(x) ((x) << S_PLDVALID2)
-#define F_PLDVALID2 V_PLDVALID2(1U)
-
-#define S_CRCVALID2 21
-#define V_CRCVALID2(x) ((x) << S_CRCVALID2)
-#define F_CRCVALID2 V_CRCVALID2(1U)
-
-#define S_ISSVALID2 20
-#define V_ISSVALID2(x) ((x) << S_ISSVALID2)
-#define F_ISSVALID2 V_ISSVALID2(1U)
-
-#define S_DBVALID2 19
-#define V_DBVALID2(x) ((x) << S_DBVALID2)
-#define F_DBVALID2 V_DBVALID2(1U)
-
-#define S_CHKVALID2 18
-#define V_CHKVALID2(x) ((x) << S_CHKVALID2)
-#define F_CHKVALID2 V_CHKVALID2(1U)
-
-#define S_ZRPVALID2 17
-#define V_ZRPVALID2(x) ((x) << S_ZRPVALID2)
-#define F_ZRPVALID2 V_ZRPVALID2(1U)
-
-#define S_ERRVALID2 16
-#define V_ERRVALID2(x) ((x) << S_ERRVALID2)
-#define F_ERRVALID2 V_ERRVALID2(1U)
-
-#define S_CPLVALID1 15
-#define V_CPLVALID1(x) ((x) << S_CPLVALID1)
-#define F_CPLVALID1 V_CPLVALID1(1U)
-
-#define S_PLDVALID1 14
-#define V_PLDVALID1(x) ((x) << S_PLDVALID1)
-#define F_PLDVALID1 V_PLDVALID1(1U)
-
-#define S_CRCVALID1 13
-#define V_CRCVALID1(x) ((x) << S_CRCVALID1)
-#define F_CRCVALID1 V_CRCVALID1(1U)
-
-#define S_ISSVALID1 12
-#define V_ISSVALID1(x) ((x) << S_ISSVALID1)
-#define F_ISSVALID1 V_ISSVALID1(1U)
-
-#define S_DBVALID1 11
-#define V_DBVALID1(x) ((x) << S_DBVALID1)
-#define F_DBVALID1 V_DBVALID1(1U)
-
-#define S_CHKVALID1 10
-#define V_CHKVALID1(x) ((x) << S_CHKVALID1)
-#define F_CHKVALID1 V_CHKVALID1(1U)
-
-#define S_ZRPVALID1 9
-#define V_ZRPVALID1(x) ((x) << S_ZRPVALID1)
-#define F_ZRPVALID1 V_ZRPVALID1(1U)
-
-#define S_ERRVALID1 8
-#define V_ERRVALID1(x) ((x) << S_ERRVALID1)
-#define F_ERRVALID1 V_ERRVALID1(1U)
-
-#define S_CPLVALID0 7
-#define V_CPLVALID0(x) ((x) << S_CPLVALID0)
-#define F_CPLVALID0 V_CPLVALID0(1U)
-
-#define S_PLDVALID0 6
-#define V_PLDVALID0(x) ((x) << S_PLDVALID0)
-#define F_PLDVALID0 V_PLDVALID0(1U)
-
-#define S_CRCVALID0 5
-#define V_CRCVALID0(x) ((x) << S_CRCVALID0)
-#define F_CRCVALID0 V_CRCVALID0(1U)
-
-#define S_ISSVALID0 4
-#define V_ISSVALID0(x) ((x) << S_ISSVALID0)
-#define F_ISSVALID0 V_ISSVALID0(1U)
-
-#define S_DBVALID0 3
-#define V_DBVALID0(x) ((x) << S_DBVALID0)
-#define F_DBVALID0 V_DBVALID0(1U)
-
-#define S_CHKVALID0 2
-#define V_CHKVALID0(x) ((x) << S_CHKVALID0)
-#define F_CHKVALID0 V_CHKVALID0(1U)
-
-#define S_ZRPVALID0 1
-#define V_ZRPVALID0(x) ((x) << S_ZRPVALID0)
-#define F_ZRPVALID0 V_ZRPVALID0(1U)
-
-#define S_ERRVALID0 0
-#define V_ERRVALID0(x) ((x) << S_ERRVALID0)
-#define F_ERRVALID0 V_ERRVALID0(1U)
-
#define A_TP_FIFO_CONFIG 0x8c0
#define S_CH1_OUTPUT 27
@@ -19976,16 +13573,12 @@
#define A_TP_MIB_TID_INV 0x61
#define A_TP_MIB_TID_ACT 0x62
#define A_TP_MIB_TID_PAS 0x63
-#define A_TP_MIB_RQE_DFR_PKT 0x64
-#define A_TP_MIB_RQE_DFR_MOD 0x65
+#define A_TP_MIB_RQE_DFR_MOD 0x64
+#define A_TP_MIB_RQE_DFR_PKT 0x65
#define A_TP_MIB_CPL_OUT_ERR_0 0x68
#define A_TP_MIB_CPL_OUT_ERR_1 0x69
#define A_TP_MIB_CPL_OUT_ERR_2 0x6a
#define A_TP_MIB_CPL_OUT_ERR_3 0x6b
-#define A_TP_MIB_ENG_LINE_0 0x6c
-#define A_TP_MIB_ENG_LINE_1 0x6d
-#define A_TP_MIB_ENG_LINE_2 0x6e
-#define A_TP_MIB_ENG_LINE_3 0x6f
/* registers for module ULP_TX */
#define ULP_TX_BASE_ADDR 0x8dc0
@@ -20004,30 +13597,6 @@
#define V_EXTRA_TAG_INSERTION_ENABLE(x) ((x) << S_EXTRA_TAG_INSERTION_ENABLE)
#define F_EXTRA_TAG_INSERTION_ENABLE V_EXTRA_TAG_INSERTION_ENABLE(1U)
-#define S_PHYS_ADDR_RESP_EN 6
-#define V_PHYS_ADDR_RESP_EN(x) ((x) << S_PHYS_ADDR_RESP_EN)
-#define F_PHYS_ADDR_RESP_EN V_PHYS_ADDR_RESP_EN(1U)
-
-#define S_ENDIANESS_CHANGE 5
-#define V_ENDIANESS_CHANGE(x) ((x) << S_ENDIANESS_CHANGE)
-#define F_ENDIANESS_CHANGE V_ENDIANESS_CHANGE(1U)
-
-#define S_ERR_RTAG_EN 4
-#define V_ERR_RTAG_EN(x) ((x) << S_ERR_RTAG_EN)
-#define F_ERR_RTAG_EN V_ERR_RTAG_EN(1U)
-
-#define S_TSO_ETHLEN_EN 3
-#define V_TSO_ETHLEN_EN(x) ((x) << S_TSO_ETHLEN_EN)
-#define F_TSO_ETHLEN_EN V_TSO_ETHLEN_EN(1U)
-
-#define S_EMSG_MORE_INFO 2
-#define V_EMSG_MORE_INFO(x) ((x) << S_EMSG_MORE_INFO)
-#define F_EMSG_MORE_INFO V_EMSG_MORE_INFO(1U)
-
-#define S_LOSDR 1
-#define V_LOSDR(x) ((x) << S_LOSDR)
-#define F_LOSDR V_LOSDR(1U)
-
#define A_ULP_TX_PERR_INJECT 0x8dc4
#define A_ULP_TX_INT_ENABLE 0x8dc8
@@ -20244,193 +13813,25 @@
#define V_ERR_CNT3(x) ((x) << S_ERR_CNT3)
#define G_ERR_CNT3(x) (((x) >> S_ERR_CNT3) & M_ERR_CNT3)
-#define A_ULP_TX_FC_SOF 0x8e20
-
-#define S_SOF_FS3 24
-#define M_SOF_FS3 0xffU
-#define V_SOF_FS3(x) ((x) << S_SOF_FS3)
-#define G_SOF_FS3(x) (((x) >> S_SOF_FS3) & M_SOF_FS3)
-
-#define S_SOF_FS2 16
-#define M_SOF_FS2 0xffU
-#define V_SOF_FS2(x) ((x) << S_SOF_FS2)
-#define G_SOF_FS2(x) (((x) >> S_SOF_FS2) & M_SOF_FS2)
-
-#define S_SOF_3 8
-#define M_SOF_3 0xffU
-#define V_SOF_3(x) ((x) << S_SOF_3)
-#define G_SOF_3(x) (((x) >> S_SOF_3) & M_SOF_3)
-
-#define S_SOF_2 0
-#define M_SOF_2 0xffU
-#define V_SOF_2(x) ((x) << S_SOF_2)
-#define G_SOF_2(x) (((x) >> S_SOF_2) & M_SOF_2)
-
-#define A_ULP_TX_FC_EOF 0x8e24
-
-#define S_EOF_LS3 24
-#define M_EOF_LS3 0xffU
-#define V_EOF_LS3(x) ((x) << S_EOF_LS3)
-#define G_EOF_LS3(x) (((x) >> S_EOF_LS3) & M_EOF_LS3)
-
-#define S_EOF_LS2 16
-#define M_EOF_LS2 0xffU
-#define V_EOF_LS2(x) ((x) << S_EOF_LS2)
-#define G_EOF_LS2(x) (((x) >> S_EOF_LS2) & M_EOF_LS2)
-
-#define S_EOF_3 8
-#define M_EOF_3 0xffU
-#define V_EOF_3(x) ((x) << S_EOF_3)
-#define G_EOF_3(x) (((x) >> S_EOF_3) & M_EOF_3)
-
-#define S_EOF_2 0
-#define M_EOF_2 0xffU
-#define V_EOF_2(x) ((x) << S_EOF_2)
-#define G_EOF_2(x) (((x) >> S_EOF_2) & M_EOF_2)
-
-#define A_ULP_TX_CGEN_GLOBAL 0x8e28
-
-#define S_ULP_TX_GLOBAL_CGEN 0
-#define V_ULP_TX_GLOBAL_CGEN(x) ((x) << S_ULP_TX_GLOBAL_CGEN)
-#define F_ULP_TX_GLOBAL_CGEN V_ULP_TX_GLOBAL_CGEN(1U)
-
-#define A_ULP_TX_CGEN 0x8e2c
-
-#define S_ULP_TX_CGEN_STORAGE 8
-#define M_ULP_TX_CGEN_STORAGE 0xfU
-#define V_ULP_TX_CGEN_STORAGE(x) ((x) << S_ULP_TX_CGEN_STORAGE)
-#define G_ULP_TX_CGEN_STORAGE(x) (((x) >> S_ULP_TX_CGEN_STORAGE) & M_ULP_TX_CGEN_STORAGE)
-
-#define S_ULP_TX_CGEN_RDMA 4
-#define M_ULP_TX_CGEN_RDMA 0xfU
-#define V_ULP_TX_CGEN_RDMA(x) ((x) << S_ULP_TX_CGEN_RDMA)
-#define G_ULP_TX_CGEN_RDMA(x) (((x) >> S_ULP_TX_CGEN_RDMA) & M_ULP_TX_CGEN_RDMA)
-
-#define S_ULP_TX_CGEN_CHANNEL 0
-#define M_ULP_TX_CGEN_CHANNEL 0xfU
-#define V_ULP_TX_CGEN_CHANNEL(x) ((x) << S_ULP_TX_CGEN_CHANNEL)
-#define G_ULP_TX_CGEN_CHANNEL(x) (((x) >> S_ULP_TX_CGEN_CHANNEL) & M_ULP_TX_CGEN_CHANNEL)
-
#define A_ULP_TX_ULP2TP_BIST_CMD 0x8e30
-#define A_ULP_TX_MEM_CFG 0x8e30
-
-#define S_WRREQ_SZ 0
-#define M_WRREQ_SZ 0x7U
-#define V_WRREQ_SZ(x) ((x) << S_WRREQ_SZ)
-#define G_WRREQ_SZ(x) (((x) >> S_WRREQ_SZ) & M_WRREQ_SZ)
-
#define A_ULP_TX_ULP2TP_BIST_ERROR_CNT 0x8e34
-#define A_ULP_TX_PERR_INJECT_2 0x8e34
#define A_ULP_TX_FPGA_CMD_CTRL 0x8e38
-#define A_ULP_TX_T5_FPGA_CMD_CTRL 0x8e38
-
-#define S_CHANNEL_SEL 12
-#define M_CHANNEL_SEL 0x3U
-#define V_CHANNEL_SEL(x) ((x) << S_CHANNEL_SEL)
-#define G_CHANNEL_SEL(x) (((x) >> S_CHANNEL_SEL) & M_CHANNEL_SEL)
-
-#define S_INTF_SEL 4
-#define M_INTF_SEL 0xfU
-#define V_INTF_SEL(x) ((x) << S_INTF_SEL)
-#define G_INTF_SEL(x) (((x) >> S_INTF_SEL) & M_INTF_SEL)
-
-#define S_NUM_FLITS 1
-#define M_NUM_FLITS 0x7U
-#define V_NUM_FLITS(x) ((x) << S_NUM_FLITS)
-#define G_NUM_FLITS(x) (((x) >> S_NUM_FLITS) & M_NUM_FLITS)
-
-#define S_CMD_GEN_EN 0
-#define V_CMD_GEN_EN(x) ((x) << S_CMD_GEN_EN)
-#define F_CMD_GEN_EN V_CMD_GEN_EN(1U)
-
#define A_ULP_TX_FPGA_CMD_0 0x8e3c
-#define A_ULP_TX_T5_FPGA_CMD_0 0x8e3c
#define A_ULP_TX_FPGA_CMD_1 0x8e40
-#define A_ULP_TX_T5_FPGA_CMD_1 0x8e40
#define A_ULP_TX_FPGA_CMD_2 0x8e44
-#define A_ULP_TX_T5_FPGA_CMD_2 0x8e44
#define A_ULP_TX_FPGA_CMD_3 0x8e48
-#define A_ULP_TX_T5_FPGA_CMD_3 0x8e48
#define A_ULP_TX_FPGA_CMD_4 0x8e4c
-#define A_ULP_TX_T5_FPGA_CMD_4 0x8e4c
#define A_ULP_TX_FPGA_CMD_5 0x8e50
-#define A_ULP_TX_T5_FPGA_CMD_5 0x8e50
#define A_ULP_TX_FPGA_CMD_6 0x8e54
-#define A_ULP_TX_T5_FPGA_CMD_6 0x8e54
#define A_ULP_TX_FPGA_CMD_7 0x8e58
-#define A_ULP_TX_T5_FPGA_CMD_7 0x8e58
#define A_ULP_TX_FPGA_CMD_8 0x8e5c
-#define A_ULP_TX_T5_FPGA_CMD_8 0x8e5c
#define A_ULP_TX_FPGA_CMD_9 0x8e60
-#define A_ULP_TX_T5_FPGA_CMD_9 0x8e60
#define A_ULP_TX_FPGA_CMD_10 0x8e64
-#define A_ULP_TX_T5_FPGA_CMD_10 0x8e64
#define A_ULP_TX_FPGA_CMD_11 0x8e68
-#define A_ULP_TX_T5_FPGA_CMD_11 0x8e68
#define A_ULP_TX_FPGA_CMD_12 0x8e6c
-#define A_ULP_TX_T5_FPGA_CMD_12 0x8e6c
#define A_ULP_TX_FPGA_CMD_13 0x8e70
-#define A_ULP_TX_T5_FPGA_CMD_13 0x8e70
#define A_ULP_TX_FPGA_CMD_14 0x8e74
-#define A_ULP_TX_T5_FPGA_CMD_14 0x8e74
#define A_ULP_TX_FPGA_CMD_15 0x8e78
-#define A_ULP_TX_T5_FPGA_CMD_15 0x8e78
-#define A_ULP_TX_INT_ENABLE_2 0x8e7c
-
-#define S_SMARBT2ULP_DATA_PERR_SET 12
-#define V_SMARBT2ULP_DATA_PERR_SET(x) ((x) << S_SMARBT2ULP_DATA_PERR_SET)
-#define F_SMARBT2ULP_DATA_PERR_SET V_SMARBT2ULP_DATA_PERR_SET(1U)
-
-#define S_ULP2TP_DATA_PERR_SET 11
-#define V_ULP2TP_DATA_PERR_SET(x) ((x) << S_ULP2TP_DATA_PERR_SET)
-#define F_ULP2TP_DATA_PERR_SET V_ULP2TP_DATA_PERR_SET(1U)
-
-#define S_MA2ULP_DATA_PERR_SET 10
-#define V_MA2ULP_DATA_PERR_SET(x) ((x) << S_MA2ULP_DATA_PERR_SET)
-#define F_MA2ULP_DATA_PERR_SET V_MA2ULP_DATA_PERR_SET(1U)
-
-#define S_SGE2ULP_DATA_PERR_SET 9
-#define V_SGE2ULP_DATA_PERR_SET(x) ((x) << S_SGE2ULP_DATA_PERR_SET)
-#define F_SGE2ULP_DATA_PERR_SET V_SGE2ULP_DATA_PERR_SET(1U)
-
-#define S_CIM2ULP_DATA_PERR_SET 8
-#define V_CIM2ULP_DATA_PERR_SET(x) ((x) << S_CIM2ULP_DATA_PERR_SET)
-#define F_CIM2ULP_DATA_PERR_SET V_CIM2ULP_DATA_PERR_SET(1U)
-
-#define S_FSO_HDR_SRAM_PERR_SET3 7
-#define V_FSO_HDR_SRAM_PERR_SET3(x) ((x) << S_FSO_HDR_SRAM_PERR_SET3)
-#define F_FSO_HDR_SRAM_PERR_SET3 V_FSO_HDR_SRAM_PERR_SET3(1U)
-
-#define S_FSO_HDR_SRAM_PERR_SET2 6
-#define V_FSO_HDR_SRAM_PERR_SET2(x) ((x) << S_FSO_HDR_SRAM_PERR_SET2)
-#define F_FSO_HDR_SRAM_PERR_SET2 V_FSO_HDR_SRAM_PERR_SET2(1U)
-
-#define S_FSO_HDR_SRAM_PERR_SET1 5
-#define V_FSO_HDR_SRAM_PERR_SET1(x) ((x) << S_FSO_HDR_SRAM_PERR_SET1)
-#define F_FSO_HDR_SRAM_PERR_SET1 V_FSO_HDR_SRAM_PERR_SET1(1U)
-
-#define S_FSO_HDR_SRAM_PERR_SET0 4
-#define V_FSO_HDR_SRAM_PERR_SET0(x) ((x) << S_FSO_HDR_SRAM_PERR_SET0)
-#define F_FSO_HDR_SRAM_PERR_SET0 V_FSO_HDR_SRAM_PERR_SET0(1U)
-
-#define S_T10_PI_SRAM_PERR_SET3 3
-#define V_T10_PI_SRAM_PERR_SET3(x) ((x) << S_T10_PI_SRAM_PERR_SET3)
-#define F_T10_PI_SRAM_PERR_SET3 V_T10_PI_SRAM_PERR_SET3(1U)
-
-#define S_T10_PI_SRAM_PERR_SET2 2
-#define V_T10_PI_SRAM_PERR_SET2(x) ((x) << S_T10_PI_SRAM_PERR_SET2)
-#define F_T10_PI_SRAM_PERR_SET2 V_T10_PI_SRAM_PERR_SET2(1U)
-
-#define S_T10_PI_SRAM_PERR_SET1 1
-#define V_T10_PI_SRAM_PERR_SET1(x) ((x) << S_T10_PI_SRAM_PERR_SET1)
-#define F_T10_PI_SRAM_PERR_SET1 V_T10_PI_SRAM_PERR_SET1(1U)
-
-#define S_T10_PI_SRAM_PERR_SET0 0
-#define V_T10_PI_SRAM_PERR_SET0(x) ((x) << S_T10_PI_SRAM_PERR_SET0)
-#define F_T10_PI_SRAM_PERR_SET0 V_T10_PI_SRAM_PERR_SET0(1U)
-
-#define A_ULP_TX_INT_CAUSE_2 0x8e80
-#define A_ULP_TX_PERR_ENABLE_2 0x8e84
#define A_ULP_TX_SE_CNT_ERR 0x8ea0
#define S_ERR_CH3 12
@@ -20453,7 +13854,6 @@
#define V_ERR_CH0(x) ((x) << S_ERR_CH0)
#define G_ERR_CH0(x) (((x) >> S_ERR_CH0) & M_ERR_CH0)
-#define A_ULP_TX_T5_SE_CNT_ERR 0x8ea0
#define A_ULP_TX_SE_CNT_CLR 0x8ea4
#define S_CLR_DROP 16
@@ -20481,7 +13881,6 @@
#define V_CLR_CH0(x) ((x) << S_CLR_CH0)
#define G_CLR_CH0(x) (((x) >> S_CLR_CH0) & M_CLR_CH0)
-#define A_ULP_TX_T5_SE_CNT_CLR 0x8ea4
#define A_ULP_TX_SE_CNT_CH0 0x8ea8
#define S_SOP_CNT_ULP2TP 28
@@ -20524,13 +13923,9 @@
#define V_EOP_CNT_CIM2ULP(x) ((x) << S_EOP_CNT_CIM2ULP)
#define G_EOP_CNT_CIM2ULP(x) (((x) >> S_EOP_CNT_CIM2ULP) & M_EOP_CNT_CIM2ULP)
-#define A_ULP_TX_T5_SE_CNT_CH0 0x8ea8
#define A_ULP_TX_SE_CNT_CH1 0x8eac
-#define A_ULP_TX_T5_SE_CNT_CH1 0x8eac
#define A_ULP_TX_SE_CNT_CH2 0x8eb0
-#define A_ULP_TX_T5_SE_CNT_CH2 0x8eb0
#define A_ULP_TX_SE_CNT_CH3 0x8eb4
-#define A_ULP_TX_T5_SE_CNT_CH3 0x8eb4
#define A_ULP_TX_DROP_CNT 0x8eb8
#define S_DROP_CH3 12
@@ -20553,8 +13948,6 @@
#define V_DROP_CH0(x) ((x) << S_DROP_CH0)
#define G_DROP_CH0(x) (((x) >> S_DROP_CH0) & M_DROP_CH0)
-#define A_ULP_TX_T5_DROP_CNT 0x8eb8
-#define A_ULP_TX_CSU_REVISION 0x8ebc
#define A_ULP_TX_LA_RDPTR_0 0x8ec0
#define A_ULP_TX_LA_RDDATA_0 0x8ec4
#define A_ULP_TX_LA_WRPTR_0 0x8ec8
@@ -20599,18 +13992,7 @@
#define A_ULP_TX_LA_RDDATA_10 0x8f64
#define A_ULP_TX_LA_WRPTR_10 0x8f68
#define A_ULP_TX_LA_RESERVED_10 0x8f6c
-#define A_ULP_TX_ASIC_DEBUG_CTRL 0x8f70
-#define S_LA_WR0 0
-#define V_LA_WR0(x) ((x) << S_LA_WR0)
-#define F_LA_WR0 V_LA_WR0(1U)
-
-#define A_ULP_TX_ASIC_DEBUG_0 0x8f74
-#define A_ULP_TX_ASIC_DEBUG_1 0x8f78
-#define A_ULP_TX_ASIC_DEBUG_2 0x8f7c
-#define A_ULP_TX_ASIC_DEBUG_3 0x8f80
-#define A_ULP_TX_ASIC_DEBUG_4 0x8f84
-
/* registers for module PM_RX */
#define PM_RX_BASE_ADDR 0x8fc0
@@ -20637,25 +14019,7 @@
#define A_PM_RX_STAT_CONFIG 0x8fc8
#define A_PM_RX_STAT_COUNT 0x8fcc
#define A_PM_RX_STAT_LSB 0x8fd0
-#define A_PM_RX_DBG_CTRL 0x8fd0
-
-#define S_OSPIWRBUSY_T5 21
-#define M_OSPIWRBUSY_T5 0x3U
-#define V_OSPIWRBUSY_T5(x) ((x) << S_OSPIWRBUSY_T5)
-#define G_OSPIWRBUSY_T5(x) (((x) >> S_OSPIWRBUSY_T5) & M_OSPIWRBUSY_T5)
-
-#define S_ISPIWRBUSY 17
-#define M_ISPIWRBUSY 0xfU
-#define V_ISPIWRBUSY(x) ((x) << S_ISPIWRBUSY)
-#define G_ISPIWRBUSY(x) (((x) >> S_ISPIWRBUSY) & M_ISPIWRBUSY)
-
-#define S_PMDBGADDR 0
-#define M_PMDBGADDR 0x1ffffU
-#define V_PMDBGADDR(x) ((x) << S_PMDBGADDR)
-#define G_PMDBGADDR(x) (((x) >> S_PMDBGADDR) & M_PMDBGADDR)
-
#define A_PM_RX_STAT_MSB 0x8fd4
-#define A_PM_RX_DBG_DATA 0x8fd4
#define A_PM_RX_INT_ENABLE 0x8fd8
#define S_ZERO_E_CMD_ERROR 22
@@ -20750,574 +14114,8 @@
#define V_E_PCMD_PAR_ERROR(x) ((x) << S_E_PCMD_PAR_ERROR)
#define F_E_PCMD_PAR_ERROR V_E_PCMD_PAR_ERROR(1U)
-#define S_OSPI_OVERFLOW1 28
-#define V_OSPI_OVERFLOW1(x) ((x) << S_OSPI_OVERFLOW1)
-#define F_OSPI_OVERFLOW1 V_OSPI_OVERFLOW1(1U)
-
-#define S_OSPI_OVERFLOW0 27
-#define V_OSPI_OVERFLOW0(x) ((x) << S_OSPI_OVERFLOW0)
-#define F_OSPI_OVERFLOW0 V_OSPI_OVERFLOW0(1U)
-
-#define S_MA_INTF_SDC_ERR 26
-#define V_MA_INTF_SDC_ERR(x) ((x) << S_MA_INTF_SDC_ERR)
-#define F_MA_INTF_SDC_ERR V_MA_INTF_SDC_ERR(1U)
-
-#define S_BUNDLE_LEN_PARERR 25
-#define V_BUNDLE_LEN_PARERR(x) ((x) << S_BUNDLE_LEN_PARERR)
-#define F_BUNDLE_LEN_PARERR V_BUNDLE_LEN_PARERR(1U)
-
-#define S_BUNDLE_LEN_OVFL 24
-#define V_BUNDLE_LEN_OVFL(x) ((x) << S_BUNDLE_LEN_OVFL)
-#define F_BUNDLE_LEN_OVFL V_BUNDLE_LEN_OVFL(1U)
-
-#define S_SDC_ERR 23
-#define V_SDC_ERR(x) ((x) << S_SDC_ERR)
-#define F_SDC_ERR V_SDC_ERR(1U)
-
#define A_PM_RX_INT_CAUSE 0x8fdc
-#define A_PM_RX_ISPI_DBG_4B_DATA0 0x10000
-#define A_PM_RX_ISPI_DBG_4B_DATA1 0x10001
-#define A_PM_RX_ISPI_DBG_4B_DATA2 0x10002
-#define A_PM_RX_ISPI_DBG_4B_DATA3 0x10003
-#define A_PM_RX_ISPI_DBG_4B_DATA4 0x10004
-#define A_PM_RX_ISPI_DBG_4B_DATA5 0x10005
-#define A_PM_RX_ISPI_DBG_4B_DATA6 0x10006
-#define A_PM_RX_ISPI_DBG_4B_DATA7 0x10007
-#define A_PM_RX_ISPI_DBG_4B_DATA8 0x10008
-#define A_PM_RX_OSPI_DBG_4B_DATA0 0x10009
-#define A_PM_RX_OSPI_DBG_4B_DATA1 0x1000a
-#define A_PM_RX_OSPI_DBG_4B_DATA2 0x1000b
-#define A_PM_RX_OSPI_DBG_4B_DATA3 0x1000c
-#define A_PM_RX_OSPI_DBG_4B_DATA4 0x1000d
-#define A_PM_RX_OSPI_DBG_4B_DATA5 0x1000e
-#define A_PM_RX_OSPI_DBG_4B_DATA6 0x1000f
-#define A_PM_RX_OSPI_DBG_4B_DATA7 0x10010
-#define A_PM_RX_OSPI_DBG_4B_DATA8 0x10011
-#define A_PM_RX_OSPI_DBG_4B_DATA9 0x10012
-#define A_PM_RX_DBG_STAT_MSB 0x10013
-#define A_PM_RX_DBG_STAT_LSB 0x10014
-#define A_PM_RX_DBG_RSVD_FLIT_CNT 0x10015
-#define S_I_TO_O_PATH_RSVD_FLIT_BACKUP 12
-#define M_I_TO_O_PATH_RSVD_FLIT_BACKUP 0xfU
-#define V_I_TO_O_PATH_RSVD_FLIT_BACKUP(x) ((x) << S_I_TO_O_PATH_RSVD_FLIT_BACKUP)
-#define G_I_TO_O_PATH_RSVD_FLIT_BACKUP(x) (((x) >> S_I_TO_O_PATH_RSVD_FLIT_BACKUP) & M_I_TO_O_PATH_RSVD_FLIT_BACKUP)
-
-#define S_I_TO_O_PATH_RSVD_FLIT 8
-#define M_I_TO_O_PATH_RSVD_FLIT 0xfU
-#define V_I_TO_O_PATH_RSVD_FLIT(x) ((x) << S_I_TO_O_PATH_RSVD_FLIT)
-#define G_I_TO_O_PATH_RSVD_FLIT(x) (((x) >> S_I_TO_O_PATH_RSVD_FLIT) & M_I_TO_O_PATH_RSVD_FLIT)
-
-#define S_PRFCH_RSVD_FLIT 4
-#define M_PRFCH_RSVD_FLIT 0xfU
-#define V_PRFCH_RSVD_FLIT(x) ((x) << S_PRFCH_RSVD_FLIT)
-#define G_PRFCH_RSVD_FLIT(x) (((x) >> S_PRFCH_RSVD_FLIT) & M_PRFCH_RSVD_FLIT)
-
-#define S_OSPI_RSVD_FLIT 0
-#define M_OSPI_RSVD_FLIT 0xfU
-#define V_OSPI_RSVD_FLIT(x) ((x) << S_OSPI_RSVD_FLIT)
-#define G_OSPI_RSVD_FLIT(x) (((x) >> S_OSPI_RSVD_FLIT) & M_OSPI_RSVD_FLIT)
-
-#define A_PM_RX_SDC_EN 0x10016
-
-#define S_SDC_EN 0
-#define V_SDC_EN(x) ((x) << S_SDC_EN)
-#define F_SDC_EN V_SDC_EN(1U)
-
-#define A_PM_RX_INOUT_FIFO_DBG_CHNL_SEL 0x10017
-
-#define S_CHNL_3_SEL 3
-#define V_CHNL_3_SEL(x) ((x) << S_CHNL_3_SEL)
-#define F_CHNL_3_SEL V_CHNL_3_SEL(1U)
-
-#define S_CHNL_2_SEL 2
-#define V_CHNL_2_SEL(x) ((x) << S_CHNL_2_SEL)
-#define F_CHNL_2_SEL V_CHNL_2_SEL(1U)
-
-#define S_CHNL_1_SEL 1
-#define V_CHNL_1_SEL(x) ((x) << S_CHNL_1_SEL)
-#define F_CHNL_1_SEL V_CHNL_1_SEL(1U)
-
-#define S_CHNL_0_SEL 0
-#define V_CHNL_0_SEL(x) ((x) << S_CHNL_0_SEL)
-#define F_CHNL_0_SEL V_CHNL_0_SEL(1U)
-
-#define A_PM_RX_INOUT_FIFO_DBG_WR 0x10018
-
-#define S_O_FIFO_WRITE 3
-#define V_O_FIFO_WRITE(x) ((x) << S_O_FIFO_WRITE)
-#define F_O_FIFO_WRITE V_O_FIFO_WRITE(1U)
-
-#define S_I_FIFO_WRITE 2
-#define V_I_FIFO_WRITE(x) ((x) << S_I_FIFO_WRITE)
-#define F_I_FIFO_WRITE V_I_FIFO_WRITE(1U)
-
-#define S_O_FIFO_READ 1
-#define V_O_FIFO_READ(x) ((x) << S_O_FIFO_READ)
-#define F_O_FIFO_READ V_O_FIFO_READ(1U)
-
-#define S_I_FIFO_READ 0
-#define V_I_FIFO_READ(x) ((x) << S_I_FIFO_READ)
-#define F_I_FIFO_READ V_I_FIFO_READ(1U)
-
-#define A_PM_RX_INPUT_FIFO_STR_FWD_EN 0x10019
-
-#define S_ISPI_STR_FWD_EN 0
-#define V_ISPI_STR_FWD_EN(x) ((x) << S_ISPI_STR_FWD_EN)
-#define F_ISPI_STR_FWD_EN V_ISPI_STR_FWD_EN(1U)
-
-#define A_PM_RX_PRFTCH_ACROSS_BNDLE_EN 0x1001a
-
-#define S_PRFTCH_ACROSS_BNDLE_EN 0
-#define V_PRFTCH_ACROSS_BNDLE_EN(x) ((x) << S_PRFTCH_ACROSS_BNDLE_EN)
-#define F_PRFTCH_ACROSS_BNDLE_EN V_PRFTCH_ACROSS_BNDLE_EN(1U)
-
-#define A_PM_RX_PRFTCH_WRR_ENABLE 0x1001b
-
-#define S_PRFTCH_WRR_ENABLE 0
-#define V_PRFTCH_WRR_ENABLE(x) ((x) << S_PRFTCH_WRR_ENABLE)
-#define F_PRFTCH_WRR_ENABLE V_PRFTCH_WRR_ENABLE(1U)
-
-#define A_PM_RX_PRFTCH_WRR_MAX_DEFICIT_CNT 0x1001c
-
-#define S_CHNL1_MAX_DEFICIT_CNT 16
-#define M_CHNL1_MAX_DEFICIT_CNT 0xffffU
-#define V_CHNL1_MAX_DEFICIT_CNT(x) ((x) << S_CHNL1_MAX_DEFICIT_CNT)
-#define G_CHNL1_MAX_DEFICIT_CNT(x) (((x) >> S_CHNL1_MAX_DEFICIT_CNT) & M_CHNL1_MAX_DEFICIT_CNT)
-
-#define S_CHNL0_MAX_DEFICIT_CNT 0
-#define M_CHNL0_MAX_DEFICIT_CNT 0xffffU
-#define V_CHNL0_MAX_DEFICIT_CNT(x) ((x) << S_CHNL0_MAX_DEFICIT_CNT)
-#define G_CHNL0_MAX_DEFICIT_CNT(x) (((x) >> S_CHNL0_MAX_DEFICIT_CNT) & M_CHNL0_MAX_DEFICIT_CNT)
-
-#define A_PM_RX_FEATURE_EN 0x1001d
-
-#define S_PIO_CH_DEFICIT_CTL_EN_RX 0
-#define V_PIO_CH_DEFICIT_CTL_EN_RX(x) ((x) << S_PIO_CH_DEFICIT_CTL_EN_RX)
-#define F_PIO_CH_DEFICIT_CTL_EN_RX V_PIO_CH_DEFICIT_CTL_EN_RX(1U)
-
-#define A_PM_RX_CH0_OSPI_DEFICIT_THRSHLD 0x1001e
-
-#define S_CH0_OSPI_DEFICIT_THRSHLD 0
-#define M_CH0_OSPI_DEFICIT_THRSHLD 0xfffU
-#define V_CH0_OSPI_DEFICIT_THRSHLD(x) ((x) << S_CH0_OSPI_DEFICIT_THRSHLD)
-#define G_CH0_OSPI_DEFICIT_THRSHLD(x) (((x) >> S_CH0_OSPI_DEFICIT_THRSHLD) & M_CH0_OSPI_DEFICIT_THRSHLD)
-
-#define A_PM_RX_CH1_OSPI_DEFICIT_THRSHLD 0x1001f
-
-#define S_CH1_OSPI_DEFICIT_THRSHLD 0
-#define M_CH1_OSPI_DEFICIT_THRSHLD 0xfffU
-#define V_CH1_OSPI_DEFICIT_THRSHLD(x) ((x) << S_CH1_OSPI_DEFICIT_THRSHLD)
-#define G_CH1_OSPI_DEFICIT_THRSHLD(x) (((x) >> S_CH1_OSPI_DEFICIT_THRSHLD) & M_CH1_OSPI_DEFICIT_THRSHLD)
-
-#define A_PM_RX_INT_CAUSE_MASK_HALT 0x10020
-#define A_PM_RX_DBG_STAT0 0x10021
-
-#define S_RX_RD_I_BUSY 29
-#define V_RX_RD_I_BUSY(x) ((x) << S_RX_RD_I_BUSY)
-#define F_RX_RD_I_BUSY V_RX_RD_I_BUSY(1U)
-
-#define S_RX_WR_TO_O_BUSY 28
-#define V_RX_WR_TO_O_BUSY(x) ((x) << S_RX_WR_TO_O_BUSY)
-#define F_RX_WR_TO_O_BUSY V_RX_WR_TO_O_BUSY(1U)
-
-#define S_RX_M_TO_O_BUSY 27
-#define V_RX_M_TO_O_BUSY(x) ((x) << S_RX_M_TO_O_BUSY)
-#define F_RX_M_TO_O_BUSY V_RX_M_TO_O_BUSY(1U)
-
-#define S_RX_I_TO_M_BUSY 26
-#define V_RX_I_TO_M_BUSY(x) ((x) << S_RX_I_TO_M_BUSY)
-#define F_RX_I_TO_M_BUSY V_RX_I_TO_M_BUSY(1U)
-
-#define S_RX_PCMD_FB_ONLY 25
-#define V_RX_PCMD_FB_ONLY(x) ((x) << S_RX_PCMD_FB_ONLY)
-#define F_RX_PCMD_FB_ONLY V_RX_PCMD_FB_ONLY(1U)
-
-#define S_RX_PCMD_MEM 24
-#define V_RX_PCMD_MEM(x) ((x) << S_RX_PCMD_MEM)
-#define F_RX_PCMD_MEM V_RX_PCMD_MEM(1U)
-
-#define S_RX_PCMD_BYPASS 23
-#define V_RX_PCMD_BYPASS(x) ((x) << S_RX_PCMD_BYPASS)
-#define F_RX_PCMD_BYPASS V_RX_PCMD_BYPASS(1U)
-
-#define S_RX_PCMD_EOP 22
-#define V_RX_PCMD_EOP(x) ((x) << S_RX_PCMD_EOP)
-#define F_RX_PCMD_EOP V_RX_PCMD_EOP(1U)
-
-#define S_RX_DUMPLICATE_PCMD_EOP 21
-#define V_RX_DUMPLICATE_PCMD_EOP(x) ((x) << S_RX_DUMPLICATE_PCMD_EOP)
-#define F_RX_DUMPLICATE_PCMD_EOP V_RX_DUMPLICATE_PCMD_EOP(1U)
-
-#define S_RX_PCMD_EOB 20
-#define V_RX_PCMD_EOB(x) ((x) << S_RX_PCMD_EOB)
-#define F_RX_PCMD_EOB V_RX_PCMD_EOB(1U)
-
-#define S_RX_PCMD_FB 16
-#define M_RX_PCMD_FB 0xfU
-#define V_RX_PCMD_FB(x) ((x) << S_RX_PCMD_FB)
-#define G_RX_PCMD_FB(x) (((x) >> S_RX_PCMD_FB) & M_RX_PCMD_FB)
-
-#define S_RX_PCMD_LEN 0
-#define M_RX_PCMD_LEN 0xffffU
-#define V_RX_PCMD_LEN(x) ((x) << S_RX_PCMD_LEN)
-#define G_RX_PCMD_LEN(x) (((x) >> S_RX_PCMD_LEN) & M_RX_PCMD_LEN)
-
-#define A_PM_RX_DBG_STAT1 0x10022
-
-#define S_RX_PCMD0_MEM 30
-#define V_RX_PCMD0_MEM(x) ((x) << S_RX_PCMD0_MEM)
-#define F_RX_PCMD0_MEM V_RX_PCMD0_MEM(1U)
-
-#define S_RX_FREE_OSPI_CNT0 18
-#define M_RX_FREE_OSPI_CNT0 0xfffU
-#define V_RX_FREE_OSPI_CNT0(x) ((x) << S_RX_FREE_OSPI_CNT0)
-#define G_RX_FREE_OSPI_CNT0(x) (((x) >> S_RX_FREE_OSPI_CNT0) & M_RX_FREE_OSPI_CNT0)
-
-#define S_RX_PCMD0_FLIT_LEN 6
-#define M_RX_PCMD0_FLIT_LEN 0xfffU
-#define V_RX_PCMD0_FLIT_LEN(x) ((x) << S_RX_PCMD0_FLIT_LEN)
-#define G_RX_PCMD0_FLIT_LEN(x) (((x) >> S_RX_PCMD0_FLIT_LEN) & M_RX_PCMD0_FLIT_LEN)
-
-#define S_RX_PCMD0_CMD 2
-#define M_RX_PCMD0_CMD 0xfU
-#define V_RX_PCMD0_CMD(x) ((x) << S_RX_PCMD0_CMD)
-#define G_RX_PCMD0_CMD(x) (((x) >> S_RX_PCMD0_CMD) & M_RX_PCMD0_CMD)
-
-#define S_RX_OFIFO_FULL0 1
-#define V_RX_OFIFO_FULL0(x) ((x) << S_RX_OFIFO_FULL0)
-#define F_RX_OFIFO_FULL0 V_RX_OFIFO_FULL0(1U)
-
-#define S_RX_PCMD0_BYPASS 0
-#define V_RX_PCMD0_BYPASS(x) ((x) << S_RX_PCMD0_BYPASS)
-#define F_RX_PCMD0_BYPASS V_RX_PCMD0_BYPASS(1U)
-
-#define A_PM_RX_DBG_STAT2 0x10023
-
-#define S_RX_PCMD1_MEM 30
-#define V_RX_PCMD1_MEM(x) ((x) << S_RX_PCMD1_MEM)
-#define F_RX_PCMD1_MEM V_RX_PCMD1_MEM(1U)
-
-#define S_RX_FREE_OSPI_CNT1 18
-#define M_RX_FREE_OSPI_CNT1 0xfffU
-#define V_RX_FREE_OSPI_CNT1(x) ((x) << S_RX_FREE_OSPI_CNT1)
-#define G_RX_FREE_OSPI_CNT1(x) (((x) >> S_RX_FREE_OSPI_CNT1) & M_RX_FREE_OSPI_CNT1)
-
-#define S_RX_PCMD1_FLIT_LEN 6
-#define M_RX_PCMD1_FLIT_LEN 0xfffU
-#define V_RX_PCMD1_FLIT_LEN(x) ((x) << S_RX_PCMD1_FLIT_LEN)
-#define G_RX_PCMD1_FLIT_LEN(x) (((x) >> S_RX_PCMD1_FLIT_LEN) & M_RX_PCMD1_FLIT_LEN)
-
-#define S_RX_PCMD1_CMD 2
-#define M_RX_PCMD1_CMD 0xfU
-#define V_RX_PCMD1_CMD(x) ((x) << S_RX_PCMD1_CMD)
-#define G_RX_PCMD1_CMD(x) (((x) >> S_RX_PCMD1_CMD) & M_RX_PCMD1_CMD)
-
-#define S_RX_OFIFO_FULL1 1
-#define V_RX_OFIFO_FULL1(x) ((x) << S_RX_OFIFO_FULL1)
-#define F_RX_OFIFO_FULL1 V_RX_OFIFO_FULL1(1U)
-
-#define S_RX_PCMD1_BYPASS 0
-#define V_RX_PCMD1_BYPASS(x) ((x) << S_RX_PCMD1_BYPASS)
-#define F_RX_PCMD1_BYPASS V_RX_PCMD1_BYPASS(1U)
-
-#define A_PM_RX_DBG_STAT3 0x10024
-
-#define S_RX_SET_PCMD_RES_RDY_RD 10
-#define M_RX_SET_PCMD_RES_RDY_RD 0x3U
-#define V_RX_SET_PCMD_RES_RDY_RD(x) ((x) << S_RX_SET_PCMD_RES_RDY_RD)
-#define G_RX_SET_PCMD_RES_RDY_RD(x) (((x) >> S_RX_SET_PCMD_RES_RDY_RD) & M_RX_SET_PCMD_RES_RDY_RD)
-
-#define S_RX_ISSUED_PREFETCH_RD_E_CLR 8
-#define M_RX_ISSUED_PREFETCH_RD_E_CLR 0x3U
-#define V_RX_ISSUED_PREFETCH_RD_E_CLR(x) ((x) << S_RX_ISSUED_PREFETCH_RD_E_CLR)
-#define G_RX_ISSUED_PREFETCH_RD_E_CLR(x) (((x) >> S_RX_ISSUED_PREFETCH_RD_E_CLR) & M_RX_ISSUED_PREFETCH_RD_E_CLR)
-
-#define S_RX_ISSUED_PREFETCH_RD 6
-#define M_RX_ISSUED_PREFETCH_RD 0x3U
-#define V_RX_ISSUED_PREFETCH_RD(x) ((x) << S_RX_ISSUED_PREFETCH_RD)
-#define G_RX_ISSUED_PREFETCH_RD(x) (((x) >> S_RX_ISSUED_PREFETCH_RD) & M_RX_ISSUED_PREFETCH_RD)
-
-#define S_RX_PCMD_RES_RDY 4
-#define M_RX_PCMD_RES_RDY 0x3U
-#define V_RX_PCMD_RES_RDY(x) ((x) << S_RX_PCMD_RES_RDY)
-#define G_RX_PCMD_RES_RDY(x) (((x) >> S_RX_PCMD_RES_RDY) & M_RX_PCMD_RES_RDY)
-
-#define S_RX_DB_VLD 3
-#define V_RX_DB_VLD(x) ((x) << S_RX_DB_VLD)
-#define F_RX_DB_VLD V_RX_DB_VLD(1U)
-
-#define S_RX_FIRST_BUNDLE 1
-#define M_RX_FIRST_BUNDLE 0x3U
-#define V_RX_FIRST_BUNDLE(x) ((x) << S_RX_FIRST_BUNDLE)
-#define G_RX_FIRST_BUNDLE(x) (((x) >> S_RX_FIRST_BUNDLE) & M_RX_FIRST_BUNDLE)
-
-#define S_RX_SDC_DRDY 0
-#define V_RX_SDC_DRDY(x) ((x) << S_RX_SDC_DRDY)
-#define F_RX_SDC_DRDY V_RX_SDC_DRDY(1U)
-
-#define A_PM_RX_DBG_STAT4 0x10025
-
-#define S_RX_PCMD_VLD 26
-#define V_RX_PCMD_VLD(x) ((x) << S_RX_PCMD_VLD)
-#define F_RX_PCMD_VLD V_RX_PCMD_VLD(1U)
-
-#define S_RX_PCMD_TO_CH 25
-#define V_RX_PCMD_TO_CH(x) ((x) << S_RX_PCMD_TO_CH)
-#define F_RX_PCMD_TO_CH V_RX_PCMD_TO_CH(1U)
-
-#define S_RX_PCMD_FROM_CH 23
-#define M_RX_PCMD_FROM_CH 0x3U
-#define V_RX_PCMD_FROM_CH(x) ((x) << S_RX_PCMD_FROM_CH)
-#define G_RX_PCMD_FROM_CH(x) (((x) >> S_RX_PCMD_FROM_CH) & M_RX_PCMD_FROM_CH)
-
-#define S_RX_LINE 18
-#define M_RX_LINE 0x1fU
-#define V_RX_LINE(x) ((x) << S_RX_LINE)
-#define G_RX_LINE(x) (((x) >> S_RX_LINE) & M_RX_LINE)
-
-#define S_RX_IESPI_TXVALID 14
-#define M_RX_IESPI_TXVALID 0xfU
-#define V_RX_IESPI_TXVALID(x) ((x) << S_RX_IESPI_TXVALID)
-#define G_RX_IESPI_TXVALID(x) (((x) >> S_RX_IESPI_TXVALID) & M_RX_IESPI_TXVALID)
-
-#define S_RX_IESPI_TXFULL 10
-#define M_RX_IESPI_TXFULL 0xfU
-#define V_RX_IESPI_TXFULL(x) ((x) << S_RX_IESPI_TXFULL)
-#define G_RX_IESPI_TXFULL(x) (((x) >> S_RX_IESPI_TXFULL) & M_RX_IESPI_TXFULL)
-
-#define S_RX_PCMD_SRDY 8
-#define M_RX_PCMD_SRDY 0x3U
-#define V_RX_PCMD_SRDY(x) ((x) << S_RX_PCMD_SRDY)
-#define G_RX_PCMD_SRDY(x) (((x) >> S_RX_PCMD_SRDY) & M_RX_PCMD_SRDY)
-
-#define S_RX_PCMD_DRDY 6
-#define M_RX_PCMD_DRDY 0x3U
-#define V_RX_PCMD_DRDY(x) ((x) << S_RX_PCMD_DRDY)
-#define G_RX_PCMD_DRDY(x) (((x) >> S_RX_PCMD_DRDY) & M_RX_PCMD_DRDY)
-
-#define S_RX_PCMD_CMD 2
-#define M_RX_PCMD_CMD 0xfU
-#define V_RX_PCMD_CMD(x) ((x) << S_RX_PCMD_CMD)
-#define G_RX_PCMD_CMD(x) (((x) >> S_RX_PCMD_CMD) & M_RX_PCMD_CMD)
-
-#define S_DUPLICATE 0
-#define M_DUPLICATE 0x3U
-#define V_DUPLICATE(x) ((x) << S_DUPLICATE)
-#define G_DUPLICATE(x) (((x) >> S_DUPLICATE) & M_DUPLICATE)
-
-#define A_PM_RX_DBG_STAT5 0x10026
-
-#define S_RX_ATLST_1_PCMD_CH1 29
-#define V_RX_ATLST_1_PCMD_CH1(x) ((x) << S_RX_ATLST_1_PCMD_CH1)
-#define F_RX_ATLST_1_PCMD_CH1 V_RX_ATLST_1_PCMD_CH1(1U)
-
-#define S_RX_ATLST_1_PCMD_CH0 28
-#define V_RX_ATLST_1_PCMD_CH0(x) ((x) << S_RX_ATLST_1_PCMD_CH0)
-#define F_RX_ATLST_1_PCMD_CH0 V_RX_ATLST_1_PCMD_CH0(1U)
-
-#define S_RX_ISPI_TXVALID 20
-#define M_RX_ISPI_TXVALID 0xfU
-#define V_RX_ISPI_TXVALID(x) ((x) << S_RX_ISPI_TXVALID)
-#define G_RX_ISPI_TXVALID(x) (((x) >> S_RX_ISPI_TXVALID) & M_RX_ISPI_TXVALID)
-
-#define S_RX_ISPI_FULL 16
-#define M_RX_ISPI_FULL 0xfU
-#define V_RX_ISPI_FULL(x) ((x) << S_RX_ISPI_FULL)
-#define G_RX_ISPI_FULL(x) (((x) >> S_RX_ISPI_FULL) & M_RX_ISPI_FULL)
-
-#define S_RX_OSPI_TXVALID 14
-#define M_RX_OSPI_TXVALID 0x3U
-#define V_RX_OSPI_TXVALID(x) ((x) << S_RX_OSPI_TXVALID)
-#define G_RX_OSPI_TXVALID(x) (((x) >> S_RX_OSPI_TXVALID) & M_RX_OSPI_TXVALID)
-
-#define S_RX_OSPI_FULL 12
-#define M_RX_OSPI_FULL 0x3U
-#define V_RX_OSPI_FULL(x) ((x) << S_RX_OSPI_FULL)
-#define G_RX_OSPI_FULL(x) (((x) >> S_RX_OSPI_FULL) & M_RX_OSPI_FULL)
-
-#define S_RX_E_RXVALID 8
-#define M_RX_E_RXVALID 0xfU
-#define V_RX_E_RXVALID(x) ((x) << S_RX_E_RXVALID)
-#define G_RX_E_RXVALID(x) (((x) >> S_RX_E_RXVALID) & M_RX_E_RXVALID)
-
-#define S_RX_E_RXAFULL 4
-#define M_RX_E_RXAFULL 0xfU
-#define V_RX_E_RXAFULL(x) ((x) << S_RX_E_RXAFULL)
-#define G_RX_E_RXAFULL(x) (((x) >> S_RX_E_RXAFULL) & M_RX_E_RXAFULL)
-
-#define S_RX_C_TXVALID 2
-#define M_RX_C_TXVALID 0x3U
-#define V_RX_C_TXVALID(x) ((x) << S_RX_C_TXVALID)
-#define G_RX_C_TXVALID(x) (((x) >> S_RX_C_TXVALID) & M_RX_C_TXVALID)
-
-#define S_RX_C_TXAFULL 0
-#define M_RX_C_TXAFULL 0x3U
-#define V_RX_C_TXAFULL(x) ((x) << S_RX_C_TXAFULL)
-#define G_RX_C_TXAFULL(x) (((x) >> S_RX_C_TXAFULL) & M_RX_C_TXAFULL)
-
-#define A_PM_RX_DBG_STAT6 0x10027
-
-#define S_RX_M_INTRNL_FIFO_CNT 4
-#define M_RX_M_INTRNL_FIFO_CNT 0x3U
-#define V_RX_M_INTRNL_FIFO_CNT(x) ((x) << S_RX_M_INTRNL_FIFO_CNT)
-#define G_RX_M_INTRNL_FIFO_CNT(x) (((x) >> S_RX_M_INTRNL_FIFO_CNT) & M_RX_M_INTRNL_FIFO_CNT)
-
-#define S_RX_M_REQADDRRDY 3
-#define V_RX_M_REQADDRRDY(x) ((x) << S_RX_M_REQADDRRDY)
-#define F_RX_M_REQADDRRDY V_RX_M_REQADDRRDY(1U)
-
-#define S_RX_M_REQWRITE 2
-#define V_RX_M_REQWRITE(x) ((x) << S_RX_M_REQWRITE)
-#define F_RX_M_REQWRITE V_RX_M_REQWRITE(1U)
-
-#define S_RX_M_REQDATAVLD 1
-#define V_RX_M_REQDATAVLD(x) ((x) << S_RX_M_REQDATAVLD)
-#define F_RX_M_REQDATAVLD V_RX_M_REQDATAVLD(1U)
-
-#define S_RX_M_REQDATARDY 0
-#define V_RX_M_REQDATARDY(x) ((x) << S_RX_M_REQDATARDY)
-#define F_RX_M_REQDATARDY V_RX_M_REQDATARDY(1U)
-
-#define A_PM_RX_DBG_STAT7 0x10028
-
-#define S_RX_PCMD1_FREE_CNT 7
-#define M_RX_PCMD1_FREE_CNT 0x7fU
-#define V_RX_PCMD1_FREE_CNT(x) ((x) << S_RX_PCMD1_FREE_CNT)
-#define G_RX_PCMD1_FREE_CNT(x) (((x) >> S_RX_PCMD1_FREE_CNT) & M_RX_PCMD1_FREE_CNT)
-
-#define S_RX_PCMD0_FREE_CNT 0
-#define M_RX_PCMD0_FREE_CNT 0x7fU
-#define V_RX_PCMD0_FREE_CNT(x) ((x) << S_RX_PCMD0_FREE_CNT)
-#define G_RX_PCMD0_FREE_CNT(x) (((x) >> S_RX_PCMD0_FREE_CNT) & M_RX_PCMD0_FREE_CNT)
-
-#define A_PM_RX_DBG_STAT8 0x10029
-
-#define S_RX_IN_EOP_CNT3 28
-#define M_RX_IN_EOP_CNT3 0xfU
-#define V_RX_IN_EOP_CNT3(x) ((x) << S_RX_IN_EOP_CNT3)
-#define G_RX_IN_EOP_CNT3(x) (((x) >> S_RX_IN_EOP_CNT3) & M_RX_IN_EOP_CNT3)
-
-#define S_RX_IN_EOP_CNT2 24
-#define M_RX_IN_EOP_CNT2 0xfU
-#define V_RX_IN_EOP_CNT2(x) ((x) << S_RX_IN_EOP_CNT2)
-#define G_RX_IN_EOP_CNT2(x) (((x) >> S_RX_IN_EOP_CNT2) & M_RX_IN_EOP_CNT2)
-
-#define S_RX_IN_EOP_CNT1 20
-#define M_RX_IN_EOP_CNT1 0xfU
-#define V_RX_IN_EOP_CNT1(x) ((x) << S_RX_IN_EOP_CNT1)
-#define G_RX_IN_EOP_CNT1(x) (((x) >> S_RX_IN_EOP_CNT1) & M_RX_IN_EOP_CNT1)
-
-#define S_RX_IN_EOP_CNT0 16
-#define M_RX_IN_EOP_CNT0 0xfU
-#define V_RX_IN_EOP_CNT0(x) ((x) << S_RX_IN_EOP_CNT0)
-#define G_RX_IN_EOP_CNT0(x) (((x) >> S_RX_IN_EOP_CNT0) & M_RX_IN_EOP_CNT0)
-
-#define S_RX_IN_SOP_CNT3 12
-#define M_RX_IN_SOP_CNT3 0xfU
-#define V_RX_IN_SOP_CNT3(x) ((x) << S_RX_IN_SOP_CNT3)
-#define G_RX_IN_SOP_CNT3(x) (((x) >> S_RX_IN_SOP_CNT3) & M_RX_IN_SOP_CNT3)
-
-#define S_RX_IN_SOP_CNT2 8
-#define M_RX_IN_SOP_CNT2 0xfU
-#define V_RX_IN_SOP_CNT2(x) ((x) << S_RX_IN_SOP_CNT2)
-#define G_RX_IN_SOP_CNT2(x) (((x) >> S_RX_IN_SOP_CNT2) & M_RX_IN_SOP_CNT2)
-
-#define S_RX_IN_SOP_CNT1 4
-#define M_RX_IN_SOP_CNT1 0xfU
-#define V_RX_IN_SOP_CNT1(x) ((x) << S_RX_IN_SOP_CNT1)
-#define G_RX_IN_SOP_CNT1(x) (((x) >> S_RX_IN_SOP_CNT1) & M_RX_IN_SOP_CNT1)
-
-#define S_RX_IN_SOP_CNT0 0
-#define M_RX_IN_SOP_CNT0 0xfU
-#define V_RX_IN_SOP_CNT0(x) ((x) << S_RX_IN_SOP_CNT0)
-#define G_RX_IN_SOP_CNT0(x) (((x) >> S_RX_IN_SOP_CNT0) & M_RX_IN_SOP_CNT0)
-
-#define A_PM_RX_DBG_STAT9 0x1002a
-
-#define S_RX_RSVD0 28
-#define M_RX_RSVD0 0xfU
-#define V_RX_RSVD0(x) ((x) << S_RX_RSVD0)
-#define G_RX_RSVD0(x) (((x) >> S_RX_RSVD0) & M_RX_RSVD0)
-
-#define S_RX_RSVD1 24
-#define M_RX_RSVD1 0xfU
-#define V_RX_RSVD1(x) ((x) << S_RX_RSVD1)
-#define G_RX_RSVD1(x) (((x) >> S_RX_RSVD1) & M_RX_RSVD1)
-
-#define S_RX_OUT_EOP_CNT1 20
-#define M_RX_OUT_EOP_CNT1 0xfU
-#define V_RX_OUT_EOP_CNT1(x) ((x) << S_RX_OUT_EOP_CNT1)
-#define G_RX_OUT_EOP_CNT1(x) (((x) >> S_RX_OUT_EOP_CNT1) & M_RX_OUT_EOP_CNT1)
-
-#define S_RX_OUT_EOP_CNT0 16
-#define M_RX_OUT_EOP_CNT0 0xfU
-#define V_RX_OUT_EOP_CNT0(x) ((x) << S_RX_OUT_EOP_CNT0)
-#define G_RX_OUT_EOP_CNT0(x) (((x) >> S_RX_OUT_EOP_CNT0) & M_RX_OUT_EOP_CNT0)
-
-#define S_RX_RSVD2 12
-#define M_RX_RSVD2 0xfU
-#define V_RX_RSVD2(x) ((x) << S_RX_RSVD2)
-#define G_RX_RSVD2(x) (((x) >> S_RX_RSVD2) & M_RX_RSVD2)
-
-#define S_RX_RSVD3 8
-#define M_RX_RSVD3 0xfU
-#define V_RX_RSVD3(x) ((x) << S_RX_RSVD3)
-#define G_RX_RSVD3(x) (((x) >> S_RX_RSVD3) & M_RX_RSVD3)
-
-#define S_RX_OUT_SOP_CNT1 4
-#define M_RX_OUT_SOP_CNT1 0xfU
-#define V_RX_OUT_SOP_CNT1(x) ((x) << S_RX_OUT_SOP_CNT1)
-#define G_RX_OUT_SOP_CNT1(x) (((x) >> S_RX_OUT_SOP_CNT1) & M_RX_OUT_SOP_CNT1)
-
-#define S_RX_OUT_SOP_CNT0 0
-#define M_RX_OUT_SOP_CNT0 0xfU
-#define V_RX_OUT_SOP_CNT0(x) ((x) << S_RX_OUT_SOP_CNT0)
-#define G_RX_OUT_SOP_CNT0(x) (((x) >> S_RX_OUT_SOP_CNT0) & M_RX_OUT_SOP_CNT0)
-
-#define A_PM_RX_DBG_STAT10 0x1002b
-
-#define S_RX_CH_DEFICIT_BLOWED 24
-#define V_RX_CH_DEFICIT_BLOWED(x) ((x) << S_RX_CH_DEFICIT_BLOWED)
-#define F_RX_CH_DEFICIT_BLOWED V_RX_CH_DEFICIT_BLOWED(1U)
-
-#define S_RX_CH1_DEFICIT 12
-#define M_RX_CH1_DEFICIT 0xfffU
-#define V_RX_CH1_DEFICIT(x) ((x) << S_RX_CH1_DEFICIT)
-#define G_RX_CH1_DEFICIT(x) (((x) >> S_RX_CH1_DEFICIT) & M_RX_CH1_DEFICIT)
-
-#define S_RX_CH0_DEFICIT 0
-#define M_RX_CH0_DEFICIT 0xfffU
-#define V_RX_CH0_DEFICIT(x) ((x) << S_RX_CH0_DEFICIT)
-#define G_RX_CH0_DEFICIT(x) (((x) >> S_RX_CH0_DEFICIT) & M_RX_CH0_DEFICIT)
-
-#define A_PM_RX_DBG_STAT11 0x1002c
-
-#define S_RX_BUNDLE_LEN_SRDY 30
-#define M_RX_BUNDLE_LEN_SRDY 0x3U
-#define V_RX_BUNDLE_LEN_SRDY(x) ((x) << S_RX_BUNDLE_LEN_SRDY)
-#define G_RX_BUNDLE_LEN_SRDY(x) (((x) >> S_RX_BUNDLE_LEN_SRDY) & M_RX_BUNDLE_LEN_SRDY)
-
-#define S_RX_RSVD11_1 28
-#define M_RX_RSVD11_1 0x3U
-#define V_RX_RSVD11_1(x) ((x) << S_RX_RSVD11_1)
-#define G_RX_RSVD11_1(x) (((x) >> S_RX_RSVD11_1) & M_RX_RSVD11_1)
-
-#define S_RX_BUNDLE_LEN1 16
-#define M_RX_BUNDLE_LEN1 0xfffU
-#define V_RX_BUNDLE_LEN1(x) ((x) << S_RX_BUNDLE_LEN1)
-#define G_RX_BUNDLE_LEN1(x) (((x) >> S_RX_BUNDLE_LEN1) & M_RX_BUNDLE_LEN1)
-
-#define S_RX_RSVD11 12
-#define M_RX_RSVD11 0xfU
-#define V_RX_RSVD11(x) ((x) << S_RX_RSVD11)
-#define G_RX_RSVD11(x) (((x) >> S_RX_RSVD11) & M_RX_RSVD11)
-
-#define S_RX_BUNDLE_LEN0 0
-#define M_RX_BUNDLE_LEN0 0xfffU
-#define V_RX_BUNDLE_LEN0(x) ((x) << S_RX_BUNDLE_LEN0)
-#define G_RX_BUNDLE_LEN0(x) (((x) >> S_RX_BUNDLE_LEN0) & M_RX_BUNDLE_LEN0)
-
/* registers for module PM_TX */
#define PM_TX_BASE_ADDR 0x8fe0
@@ -21362,15 +14160,7 @@
#define A_PM_TX_STAT_CONFIG 0x8fe8
#define A_PM_TX_STAT_COUNT 0x8fec
#define A_PM_TX_STAT_LSB 0x8ff0
-#define A_PM_TX_DBG_CTRL 0x8ff0
-
-#define S_OSPIWRBUSY 21
-#define M_OSPIWRBUSY 0xfU
-#define V_OSPIWRBUSY(x) ((x) << S_OSPIWRBUSY)
-#define G_OSPIWRBUSY(x) (((x) >> S_OSPIWRBUSY) & M_OSPIWRBUSY)
-
#define A_PM_TX_STAT_MSB 0x8ff4
-#define A_PM_TX_DBG_DATA 0x8ff4
#define A_PM_TX_INT_ENABLE 0x8ff8
#define S_PCMD_LEN_OVFL0 31
@@ -21503,636 +14293,6 @@
#define V_ZERO_C_CMD_ERROR(x) ((x) << S_ZERO_C_CMD_ERROR)
#define F_ZERO_C_CMD_ERROR V_ZERO_C_CMD_ERROR(1U)
-#define S_OSPI_OR_BUNDLE_LEN_PAR_ERR 3
-#define V_OSPI_OR_BUNDLE_LEN_PAR_ERR(x) ((x) << S_OSPI_OR_BUNDLE_LEN_PAR_ERR)
-#define F_OSPI_OR_BUNDLE_LEN_PAR_ERR V_OSPI_OR_BUNDLE_LEN_PAR_ERR(1U)
-
-#define A_PM_TX_ISPI_DBG_4B_DATA0 0x10000
-#define A_PM_TX_ISPI_DBG_4B_DATA1 0x10001
-#define A_PM_TX_ISPI_DBG_4B_DATA2 0x10002
-#define A_PM_TX_ISPI_DBG_4B_DATA3 0x10003
-#define A_PM_TX_ISPI_DBG_4B_DATA4 0x10004
-#define A_PM_TX_ISPI_DBG_4B_DATA5 0x10005
-#define A_PM_TX_ISPI_DBG_4B_DATA6 0x10006
-#define A_PM_TX_ISPI_DBG_4B_DATA7 0x10007
-#define A_PM_TX_ISPI_DBG_4B_DATA8 0x10008
-#define A_PM_TX_OSPI_DBG_4B_DATA0 0x10009
-#define A_PM_TX_OSPI_DBG_4B_DATA1 0x1000a
-#define A_PM_TX_OSPI_DBG_4B_DATA2 0x1000b
-#define A_PM_TX_OSPI_DBG_4B_DATA3 0x1000c
-#define A_PM_TX_OSPI_DBG_4B_DATA4 0x1000d
-#define A_PM_TX_OSPI_DBG_4B_DATA5 0x1000e
-#define A_PM_TX_OSPI_DBG_4B_DATA6 0x1000f
-#define A_PM_TX_OSPI_DBG_4B_DATA7 0x10010
-#define A_PM_TX_OSPI_DBG_4B_DATA8 0x10011
-#define A_PM_TX_OSPI_DBG_4B_DATA9 0x10012
-#define A_PM_TX_OSPI_DBG_4B_DATA10 0x10013
-#define A_PM_TX_OSPI_DBG_4B_DATA11 0x10014
-#define A_PM_TX_OSPI_DBG_4B_DATA12 0x10015
-#define A_PM_TX_OSPI_DBG_4B_DATA13 0x10016
-#define A_PM_TX_OSPI_DBG_4B_DATA14 0x10017
-#define A_PM_TX_OSPI_DBG_4B_DATA15 0x10018
-#define A_PM_TX_OSPI_DBG_4B_DATA16 0x10019
-#define A_PM_TX_DBG_STAT_MSB 0x1001a
-#define A_PM_TX_DBG_STAT_LSB 0x1001b
-#define A_PM_TX_DBG_RSVD_FLIT_CNT 0x1001c
-#define A_PM_TX_SDC_EN 0x1001d
-#define A_PM_TX_INOUT_FIFO_DBG_CHNL_SEL 0x1001e
-#define A_PM_TX_INOUT_FIFO_DBG_WR 0x1001f
-#define A_PM_TX_INPUT_FIFO_STR_FWD_EN 0x10020
-#define A_PM_TX_FEATURE_EN 0x10021
-
-#define S_PIO_CH_DEFICIT_CTL_EN 2
-#define V_PIO_CH_DEFICIT_CTL_EN(x) ((x) << S_PIO_CH_DEFICIT_CTL_EN)
-#define F_PIO_CH_DEFICIT_CTL_EN V_PIO_CH_DEFICIT_CTL_EN(1U)
-
-#define S_PIO_WRR_BASED_PRFTCH_EN 1
-#define V_PIO_WRR_BASED_PRFTCH_EN(x) ((x) << S_PIO_WRR_BASED_PRFTCH_EN)
-#define F_PIO_WRR_BASED_PRFTCH_EN V_PIO_WRR_BASED_PRFTCH_EN(1U)
-
-#define A_PM_TX_T5_PM_TX_INT_ENABLE 0x10022
-
-#define S_OSPI_OVERFLOW3 7
-#define V_OSPI_OVERFLOW3(x) ((x) << S_OSPI_OVERFLOW3)
-#define F_OSPI_OVERFLOW3 V_OSPI_OVERFLOW3(1U)
-
-#define S_OSPI_OVERFLOW2 6
-#define V_OSPI_OVERFLOW2(x) ((x) << S_OSPI_OVERFLOW2)
-#define F_OSPI_OVERFLOW2 V_OSPI_OVERFLOW2(1U)
-
-#define S_M_INTFPERREN 3
-#define V_M_INTFPERREN(x) ((x) << S_M_INTFPERREN)
-#define F_M_INTFPERREN V_M_INTFPERREN(1U)
-
-#define S_BUNDLE_LEN_PARERR_EN 2
-#define V_BUNDLE_LEN_PARERR_EN(x) ((x) << S_BUNDLE_LEN_PARERR_EN)
-#define F_BUNDLE_LEN_PARERR_EN V_BUNDLE_LEN_PARERR_EN(1U)
-
-#define S_BUNDLE_LEN_OVFL_EN 1
-#define V_BUNDLE_LEN_OVFL_EN(x) ((x) << S_BUNDLE_LEN_OVFL_EN)
-#define F_BUNDLE_LEN_OVFL_EN V_BUNDLE_LEN_OVFL_EN(1U)
-
-#define S_SDC_ERR_EN 0
-#define V_SDC_ERR_EN(x) ((x) << S_SDC_ERR_EN)
-#define F_SDC_ERR_EN V_SDC_ERR_EN(1U)
-
-#define A_PM_TX_PRFTCH_WRR_WAIT_CNT_THRSHLD0 0x10023
-#define A_PM_TX_PRFTCH_WRR_WAIT_CNT_THRSHLD1 0x10024
-#define A_PM_TX_PRFTCH_WRR_WAIT_CNT_THRSHLD2 0x10025
-#define A_PM_TX_PRFTCH_WRR_WAIT_CNT_THRSHLD3 0x10026
-#define A_PM_TX_CH0_OSPI_DEFICIT_THRSHLD 0x10027
-#define A_PM_TX_CH1_OSPI_DEFICIT_THRSHLD 0x10028
-#define A_PM_TX_CH2_OSPI_DEFICIT_THRSHLD 0x10029
-
-#define S_CH2_OSPI_DEFICIT_THRSHLD 0
-#define M_CH2_OSPI_DEFICIT_THRSHLD 0xfffU
-#define V_CH2_OSPI_DEFICIT_THRSHLD(x) ((x) << S_CH2_OSPI_DEFICIT_THRSHLD)
-#define G_CH2_OSPI_DEFICIT_THRSHLD(x) (((x) >> S_CH2_OSPI_DEFICIT_THRSHLD) & M_CH2_OSPI_DEFICIT_THRSHLD)
-
-#define A_PM_TX_CH3_OSPI_DEFICIT_THRSHLD 0x1002a
-
-#define S_CH3_OSPI_DEFICIT_THRSHLD 0
-#define M_CH3_OSPI_DEFICIT_THRSHLD 0xfffU
-#define V_CH3_OSPI_DEFICIT_THRSHLD(x) ((x) << S_CH3_OSPI_DEFICIT_THRSHLD)
-#define G_CH3_OSPI_DEFICIT_THRSHLD(x) (((x) >> S_CH3_OSPI_DEFICIT_THRSHLD) & M_CH3_OSPI_DEFICIT_THRSHLD)
-
-#define A_PM_TX_INT_CAUSE_MASK_HALT 0x1002b
-#define A_PM_TX_DBG_STAT0 0x1002c
-
-#define S_RD_I_BUSY 28
-#define V_RD_I_BUSY(x) ((x) << S_RD_I_BUSY)
-#define F_RD_I_BUSY V_RD_I_BUSY(1U)
-
-#define S_WR_O_ONLY 27
-#define V_WR_O_ONLY(x) ((x) << S_WR_O_ONLY)
-#define F_WR_O_ONLY V_WR_O_ONLY(1U)
-
-#define S_M_TO_BUSY 26
-#define V_M_TO_BUSY(x) ((x) << S_M_TO_BUSY)
-#define F_M_TO_BUSY V_M_TO_BUSY(1U)
-
-#define S_I_TO_M_BUSY 25
-#define V_I_TO_M_BUSY(x) ((x) << S_I_TO_M_BUSY)
-#define F_I_TO_M_BUSY V_I_TO_M_BUSY(1U)
-
-#define S_PCMD_FB_ONLY 24
-#define V_PCMD_FB_ONLY(x) ((x) << S_PCMD_FB_ONLY)
-#define F_PCMD_FB_ONLY V_PCMD_FB_ONLY(1U)
-
-#define S_PCMD_MEM 23
-#define V_PCMD_MEM(x) ((x) << S_PCMD_MEM)
-#define F_PCMD_MEM V_PCMD_MEM(1U)
-
-#define S_PCMD_BYPASS 22
-#define V_PCMD_BYPASS(x) ((x) << S_PCMD_BYPASS)
-#define F_PCMD_BYPASS V_PCMD_BYPASS(1U)
-
-#define S_PCMD_EOP 21
-#define V_PCMD_EOP(x) ((x) << S_PCMD_EOP)
-#define F_PCMD_EOP V_PCMD_EOP(1U)
-
-#define S_PCMD_END_BUNDLE 20
-#define V_PCMD_END_BUNDLE(x) ((x) << S_PCMD_END_BUNDLE)
-#define F_PCMD_END_BUNDLE V_PCMD_END_BUNDLE(1U)
-
-#define S_PCMD_FB_CMD 16
-#define M_PCMD_FB_CMD 0xfU
-#define V_PCMD_FB_CMD(x) ((x) << S_PCMD_FB_CMD)
-#define G_PCMD_FB_CMD(x) (((x) >> S_PCMD_FB_CMD) & M_PCMD_FB_CMD)
-
-#define S_CUR_PCMD_LEN 0
-#define M_CUR_PCMD_LEN 0xffffU
-#define V_CUR_PCMD_LEN(x) ((x) << S_CUR_PCMD_LEN)
-#define G_CUR_PCMD_LEN(x) (((x) >> S_CUR_PCMD_LEN) & M_CUR_PCMD_LEN)
-
-#define A_PM_TX_DBG_STAT1 0x1002d
-
-#define S_PCMD_MEM0 31
-#define V_PCMD_MEM0(x) ((x) << S_PCMD_MEM0)
-#define F_PCMD_MEM0 V_PCMD_MEM0(1U)
-
-#define S_FREE_OESPI_CNT0 19
-#define M_FREE_OESPI_CNT0 0xfffU
-#define V_FREE_OESPI_CNT0(x) ((x) << S_FREE_OESPI_CNT0)
-#define G_FREE_OESPI_CNT0(x) (((x) >> S_FREE_OESPI_CNT0) & M_FREE_OESPI_CNT0)
-
-#define S_PCMD_FLIT_LEN0 7
-#define M_PCMD_FLIT_LEN0 0xfffU
-#define V_PCMD_FLIT_LEN0(x) ((x) << S_PCMD_FLIT_LEN0)
-#define G_PCMD_FLIT_LEN0(x) (((x) >> S_PCMD_FLIT_LEN0) & M_PCMD_FLIT_LEN0)
-
-#define S_PCMD_CMD0 3
-#define M_PCMD_CMD0 0xfU
-#define V_PCMD_CMD0(x) ((x) << S_PCMD_CMD0)
-#define G_PCMD_CMD0(x) (((x) >> S_PCMD_CMD0) & M_PCMD_CMD0)
-
-#define S_OFIFO_FULL0 2
-#define V_OFIFO_FULL0(x) ((x) << S_OFIFO_FULL0)
-#define F_OFIFO_FULL0 V_OFIFO_FULL0(1U)
-
-#define S_GCSUM_DRDY0 1
-#define V_GCSUM_DRDY0(x) ((x) << S_GCSUM_DRDY0)
-#define F_GCSUM_DRDY0 V_GCSUM_DRDY0(1U)
-
-#define S_BYPASS0 0
-#define V_BYPASS0(x) ((x) << S_BYPASS0)
-#define F_BYPASS0 V_BYPASS0(1U)
-
-#define A_PM_TX_DBG_STAT2 0x1002e
-
-#define S_PCMD_MEM1 31
-#define V_PCMD_MEM1(x) ((x) << S_PCMD_MEM1)
-#define F_PCMD_MEM1 V_PCMD_MEM1(1U)
-
-#define S_FREE_OESPI_CNT1 19
-#define M_FREE_OESPI_CNT1 0xfffU
-#define V_FREE_OESPI_CNT1(x) ((x) << S_FREE_OESPI_CNT1)
-#define G_FREE_OESPI_CNT1(x) (((x) >> S_FREE_OESPI_CNT1) & M_FREE_OESPI_CNT1)
-
-#define S_PCMD_FLIT_LEN1 7
-#define M_PCMD_FLIT_LEN1 0xfffU
-#define V_PCMD_FLIT_LEN1(x) ((x) << S_PCMD_FLIT_LEN1)
-#define G_PCMD_FLIT_LEN1(x) (((x) >> S_PCMD_FLIT_LEN1) & M_PCMD_FLIT_LEN1)
-
-#define S_PCMD_CMD1 3
-#define M_PCMD_CMD1 0xfU
-#define V_PCMD_CMD1(x) ((x) << S_PCMD_CMD1)
-#define G_PCMD_CMD1(x) (((x) >> S_PCMD_CMD1) & M_PCMD_CMD1)
-
-#define S_OFIFO_FULL1 2
-#define V_OFIFO_FULL1(x) ((x) << S_OFIFO_FULL1)
-#define F_OFIFO_FULL1 V_OFIFO_FULL1(1U)
-
-#define S_GCSUM_DRDY1 1
-#define V_GCSUM_DRDY1(x) ((x) << S_GCSUM_DRDY1)
-#define F_GCSUM_DRDY1 V_GCSUM_DRDY1(1U)
-
-#define S_BYPASS1 0
-#define V_BYPASS1(x) ((x) << S_BYPASS1)
-#define F_BYPASS1 V_BYPASS1(1U)
-
-#define A_PM_TX_DBG_STAT3 0x1002f
-
-#define S_PCMD_MEM2 31
-#define V_PCMD_MEM2(x) ((x) << S_PCMD_MEM2)
-#define F_PCMD_MEM2 V_PCMD_MEM2(1U)
-
-#define S_FREE_OESPI_CNT2 19
-#define M_FREE_OESPI_CNT2 0xfffU
-#define V_FREE_OESPI_CNT2(x) ((x) << S_FREE_OESPI_CNT2)
-#define G_FREE_OESPI_CNT2(x) (((x) >> S_FREE_OESPI_CNT2) & M_FREE_OESPI_CNT2)
-
-#define S_PCMD_FLIT_LEN2 7
-#define M_PCMD_FLIT_LEN2 0xfffU
-#define V_PCMD_FLIT_LEN2(x) ((x) << S_PCMD_FLIT_LEN2)
-#define G_PCMD_FLIT_LEN2(x) (((x) >> S_PCMD_FLIT_LEN2) & M_PCMD_FLIT_LEN2)
-
-#define S_PCMD_CMD2 3
-#define M_PCMD_CMD2 0xfU
-#define V_PCMD_CMD2(x) ((x) << S_PCMD_CMD2)
-#define G_PCMD_CMD2(x) (((x) >> S_PCMD_CMD2) & M_PCMD_CMD2)
-
-#define S_OFIFO_FULL2 2
-#define V_OFIFO_FULL2(x) ((x) << S_OFIFO_FULL2)
-#define F_OFIFO_FULL2 V_OFIFO_FULL2(1U)
-
-#define S_GCSUM_DRDY2 1
-#define V_GCSUM_DRDY2(x) ((x) << S_GCSUM_DRDY2)
-#define F_GCSUM_DRDY2 V_GCSUM_DRDY2(1U)
-
-#define S_BYPASS2 0
-#define V_BYPASS2(x) ((x) << S_BYPASS2)
-#define F_BYPASS2 V_BYPASS2(1U)
-
-#define A_PM_TX_DBG_STAT4 0x10030
-
-#define S_PCMD_MEM3 31
-#define V_PCMD_MEM3(x) ((x) << S_PCMD_MEM3)
-#define F_PCMD_MEM3 V_PCMD_MEM3(1U)
-
-#define S_FREE_OESPI_CNT3 19
-#define M_FREE_OESPI_CNT3 0xfffU
-#define V_FREE_OESPI_CNT3(x) ((x) << S_FREE_OESPI_CNT3)
-#define G_FREE_OESPI_CNT3(x) (((x) >> S_FREE_OESPI_CNT3) & M_FREE_OESPI_CNT3)
-
-#define S_PCMD_FLIT_LEN3 7
-#define M_PCMD_FLIT_LEN3 0xfffU
-#define V_PCMD_FLIT_LEN3(x) ((x) << S_PCMD_FLIT_LEN3)
-#define G_PCMD_FLIT_LEN3(x) (((x) >> S_PCMD_FLIT_LEN3) & M_PCMD_FLIT_LEN3)
-
-#define S_PCMD_CMD3 3
-#define M_PCMD_CMD3 0xfU
-#define V_PCMD_CMD3(x) ((x) << S_PCMD_CMD3)
-#define G_PCMD_CMD3(x) (((x) >> S_PCMD_CMD3) & M_PCMD_CMD3)
-
-#define S_OFIFO_FULL3 2
-#define V_OFIFO_FULL3(x) ((x) << S_OFIFO_FULL3)
-#define F_OFIFO_FULL3 V_OFIFO_FULL3(1U)
-
-#define S_GCSUM_DRDY3 1
-#define V_GCSUM_DRDY3(x) ((x) << S_GCSUM_DRDY3)
-#define F_GCSUM_DRDY3 V_GCSUM_DRDY3(1U)
-
-#define S_BYPASS3 0
-#define V_BYPASS3(x) ((x) << S_BYPASS3)
-#define F_BYPASS3 V_BYPASS3(1U)
-
-#define A_PM_TX_DBG_STAT5 0x10031
-
-#define S_SET_PCMD_RES_RDY_RD 24
-#define M_SET_PCMD_RES_RDY_RD 0xfU
-#define V_SET_PCMD_RES_RDY_RD(x) ((x) << S_SET_PCMD_RES_RDY_RD)
-#define G_SET_PCMD_RES_RDY_RD(x) (((x) >> S_SET_PCMD_RES_RDY_RD) & M_SET_PCMD_RES_RDY_RD)
-
-#define S_ISSUED_PREF_RD_ER_CLR 20
-#define M_ISSUED_PREF_RD_ER_CLR 0xfU
-#define V_ISSUED_PREF_RD_ER_CLR(x) ((x) << S_ISSUED_PREF_RD_ER_CLR)
-#define G_ISSUED_PREF_RD_ER_CLR(x) (((x) >> S_ISSUED_PREF_RD_ER_CLR) & M_ISSUED_PREF_RD_ER_CLR)
-
-#define S_ISSUED_PREF_RD 16
-#define M_ISSUED_PREF_RD 0xfU
-#define V_ISSUED_PREF_RD(x) ((x) << S_ISSUED_PREF_RD)
-#define G_ISSUED_PREF_RD(x) (((x) >> S_ISSUED_PREF_RD) & M_ISSUED_PREF_RD)
-
-#define S_PCMD_RES_RDY 12
-#define M_PCMD_RES_RDY 0xfU
-#define V_PCMD_RES_RDY(x) ((x) << S_PCMD_RES_RDY)
-#define G_PCMD_RES_RDY(x) (((x) >> S_PCMD_RES_RDY) & M_PCMD_RES_RDY)
-
-#define S_DB_VLD 11
-#define V_DB_VLD(x) ((x) << S_DB_VLD)
-#define F_DB_VLD V_DB_VLD(1U)
-
-#define S_INJECT0_DRDY 10
-#define V_INJECT0_DRDY(x) ((x) << S_INJECT0_DRDY)
-#define F_INJECT0_DRDY V_INJECT0_DRDY(1U)
-
-#define S_INJECT1_DRDY 9
-#define V_INJECT1_DRDY(x) ((x) << S_INJECT1_DRDY)
-#define F_INJECT1_DRDY V_INJECT1_DRDY(1U)
-
-#define S_FIRST_BUNDLE 5
-#define M_FIRST_BUNDLE 0xfU
-#define V_FIRST_BUNDLE(x) ((x) << S_FIRST_BUNDLE)
-#define G_FIRST_BUNDLE(x) (((x) >> S_FIRST_BUNDLE) & M_FIRST_BUNDLE)
-
-#define S_GCSUM_MORE_THAN_2_LEFT 1
-#define M_GCSUM_MORE_THAN_2_LEFT 0xfU
-#define V_GCSUM_MORE_THAN_2_LEFT(x) ((x) << S_GCSUM_MORE_THAN_2_LEFT)
-#define G_GCSUM_MORE_THAN_2_LEFT(x) (((x) >> S_GCSUM_MORE_THAN_2_LEFT) & M_GCSUM_MORE_THAN_2_LEFT)
-
-#define S_SDC_DRDY 0
-#define V_SDC_DRDY(x) ((x) << S_SDC_DRDY)
-#define F_SDC_DRDY V_SDC_DRDY(1U)
-
-#define A_PM_TX_DBG_STAT6 0x10032
-
-#define S_PCMD_VLD 31
-#define V_PCMD_VLD(x) ((x) << S_PCMD_VLD)
-#define F_PCMD_VLD V_PCMD_VLD(1U)
-
-#define S_PCMD_CH 29
-#define M_PCMD_CH 0x3U
-#define V_PCMD_CH(x) ((x) << S_PCMD_CH)
-#define G_PCMD_CH(x) (((x) >> S_PCMD_CH) & M_PCMD_CH)
-
-#define S_STATE_MACHINE_LOC 24
-#define M_STATE_MACHINE_LOC 0x1fU
-#define V_STATE_MACHINE_LOC(x) ((x) << S_STATE_MACHINE_LOC)
-#define G_STATE_MACHINE_LOC(x) (((x) >> S_STATE_MACHINE_LOC) & M_STATE_MACHINE_LOC)
-
-#define S_ICSPI_TXVALID 20
-#define M_ICSPI_TXVALID 0xfU
-#define V_ICSPI_TXVALID(x) ((x) << S_ICSPI_TXVALID)
-#define G_ICSPI_TXVALID(x) (((x) >> S_ICSPI_TXVALID) & M_ICSPI_TXVALID)
-
-#define S_ICSPI_TXFULL 16
-#define M_ICSPI_TXFULL 0xfU
-#define V_ICSPI_TXFULL(x) ((x) << S_ICSPI_TXFULL)
-#define G_ICSPI_TXFULL(x) (((x) >> S_ICSPI_TXFULL) & M_ICSPI_TXFULL)
-
-#define S_PCMD_SRDY 12
-#define M_PCMD_SRDY 0xfU
-#define V_PCMD_SRDY(x) ((x) << S_PCMD_SRDY)
-#define G_PCMD_SRDY(x) (((x) >> S_PCMD_SRDY) & M_PCMD_SRDY)
-
-#define S_PCMD_DRDY 8
-#define M_PCMD_DRDY 0xfU
-#define V_PCMD_DRDY(x) ((x) << S_PCMD_DRDY)
-#define G_PCMD_DRDY(x) (((x) >> S_PCMD_DRDY) & M_PCMD_DRDY)
-
-#define S_PCMD_CMD 4
-#define M_PCMD_CMD 0xfU
-#define V_PCMD_CMD(x) ((x) << S_PCMD_CMD)
-#define G_PCMD_CMD(x) (((x) >> S_PCMD_CMD) & M_PCMD_CMD)
-
-#define S_OEFIFO_FULL3 3
-#define V_OEFIFO_FULL3(x) ((x) << S_OEFIFO_FULL3)
-#define F_OEFIFO_FULL3 V_OEFIFO_FULL3(1U)
-
-#define S_OEFIFO_FULL2 2
-#define V_OEFIFO_FULL2(x) ((x) << S_OEFIFO_FULL2)
-#define F_OEFIFO_FULL2 V_OEFIFO_FULL2(1U)
-
-#define S_OEFIFO_FULL1 1
-#define V_OEFIFO_FULL1(x) ((x) << S_OEFIFO_FULL1)
-#define F_OEFIFO_FULL1 V_OEFIFO_FULL1(1U)
-
-#define S_OEFIFO_FULL0 0
-#define V_OEFIFO_FULL0(x) ((x) << S_OEFIFO_FULL0)
-#define F_OEFIFO_FULL0 V_OEFIFO_FULL0(1U)
-
-#define A_PM_TX_DBG_STAT7 0x10033
-
-#define S_ICSPI_RXVALID 28
-#define M_ICSPI_RXVALID 0xfU
-#define V_ICSPI_RXVALID(x) ((x) << S_ICSPI_RXVALID)
-#define G_ICSPI_RXVALID(x) (((x) >> S_ICSPI_RXVALID) & M_ICSPI_RXVALID)
-
-#define S_ICSPI_RXFULL 24
-#define M_ICSPI_RXFULL 0xfU
-#define V_ICSPI_RXFULL(x) ((x) << S_ICSPI_RXFULL)
-#define G_ICSPI_RXFULL(x) (((x) >> S_ICSPI_RXFULL) & M_ICSPI_RXFULL)
-
-#define S_OESPI_VALID 20
-#define M_OESPI_VALID 0xfU
-#define V_OESPI_VALID(x) ((x) << S_OESPI_VALID)
-#define G_OESPI_VALID(x) (((x) >> S_OESPI_VALID) & M_OESPI_VALID)
-
-#define S_OESPI_FULL 16
-#define M_OESPI_FULL 0xfU
-#define V_OESPI_FULL(x) ((x) << S_OESPI_FULL)
-#define G_OESPI_FULL(x) (((x) >> S_OESPI_FULL) & M_OESPI_FULL)
-
-#define S_C_RXVALID 12
-#define M_C_RXVALID 0xfU
-#define V_C_RXVALID(x) ((x) << S_C_RXVALID)
-#define G_C_RXVALID(x) (((x) >> S_C_RXVALID) & M_C_RXVALID)
-
-#define S_C_RXAFULL 8
-#define M_C_RXAFULL 0xfU
-#define V_C_RXAFULL(x) ((x) << S_C_RXAFULL)
-#define G_C_RXAFULL(x) (((x) >> S_C_RXAFULL) & M_C_RXAFULL)
-
-#define S_E_TXVALID3 7
-#define V_E_TXVALID3(x) ((x) << S_E_TXVALID3)
-#define F_E_TXVALID3 V_E_TXVALID3(1U)
-
-#define S_E_TXVALID2 6
-#define V_E_TXVALID2(x) ((x) << S_E_TXVALID2)
-#define F_E_TXVALID2 V_E_TXVALID2(1U)
-
-#define S_E_TXVALID1 5
-#define V_E_TXVALID1(x) ((x) << S_E_TXVALID1)
-#define F_E_TXVALID1 V_E_TXVALID1(1U)
-
-#define S_E_TXVALID0 4
-#define V_E_TXVALID0(x) ((x) << S_E_TXVALID0)
-#define F_E_TXVALID0 V_E_TXVALID0(1U)
-
-#define S_E_TXFULL3 3
-#define V_E_TXFULL3(x) ((x) << S_E_TXFULL3)
-#define F_E_TXFULL3 V_E_TXFULL3(1U)
-
-#define S_E_TXFULL2 2
-#define V_E_TXFULL2(x) ((x) << S_E_TXFULL2)
-#define F_E_TXFULL2 V_E_TXFULL2(1U)
-
-#define S_E_TXFULL1 1
-#define V_E_TXFULL1(x) ((x) << S_E_TXFULL1)
-#define F_E_TXFULL1 V_E_TXFULL1(1U)
-
-#define S_E_TXFULL0 0
-#define V_E_TXFULL0(x) ((x) << S_E_TXFULL0)
-#define F_E_TXFULL0 V_E_TXFULL0(1U)
-
-#define A_PM_TX_DBG_STAT8 0x10034
-
-#define S_MC_RSP_FIFO_CNT 24
-#define M_MC_RSP_FIFO_CNT 0x3U
-#define V_MC_RSP_FIFO_CNT(x) ((x) << S_MC_RSP_FIFO_CNT)
-#define G_MC_RSP_FIFO_CNT(x) (((x) >> S_MC_RSP_FIFO_CNT) & M_MC_RSP_FIFO_CNT)
-
-#define S_PCMD_FREE_CNT0 14
-#define M_PCMD_FREE_CNT0 0x3ffU
-#define V_PCMD_FREE_CNT0(x) ((x) << S_PCMD_FREE_CNT0)
-#define G_PCMD_FREE_CNT0(x) (((x) >> S_PCMD_FREE_CNT0) & M_PCMD_FREE_CNT0)
-
-#define S_PCMD_FREE_CNT1 4
-#define M_PCMD_FREE_CNT1 0x3ffU
-#define V_PCMD_FREE_CNT1(x) ((x) << S_PCMD_FREE_CNT1)
-#define G_PCMD_FREE_CNT1(x) (((x) >> S_PCMD_FREE_CNT1) & M_PCMD_FREE_CNT1)
-
-#define S_M_REQADDRRDY 3
-#define V_M_REQADDRRDY(x) ((x) << S_M_REQADDRRDY)
-#define F_M_REQADDRRDY V_M_REQADDRRDY(1U)
-
-#define S_M_REQWRITE 2
-#define V_M_REQWRITE(x) ((x) << S_M_REQWRITE)
-#define F_M_REQWRITE V_M_REQWRITE(1U)
-
-#define S_M_REQDATAVLD 1
-#define V_M_REQDATAVLD(x) ((x) << S_M_REQDATAVLD)
-#define F_M_REQDATAVLD V_M_REQDATAVLD(1U)
-
-#define S_M_REQDATARDY 0
-#define V_M_REQDATARDY(x) ((x) << S_M_REQDATARDY)
-#define F_M_REQDATARDY V_M_REQDATARDY(1U)
-
-#define A_PM_TX_DBG_STAT9 0x10035
-
-#define S_PCMD_FREE_CNT2 10
-#define M_PCMD_FREE_CNT2 0x3ffU
-#define V_PCMD_FREE_CNT2(x) ((x) << S_PCMD_FREE_CNT2)
-#define G_PCMD_FREE_CNT2(x) (((x) >> S_PCMD_FREE_CNT2) & M_PCMD_FREE_CNT2)
-
-#define S_PCMD_FREE_CNT3 0
-#define M_PCMD_FREE_CNT3 0x3ffU
-#define V_PCMD_FREE_CNT3(x) ((x) << S_PCMD_FREE_CNT3)
-#define G_PCMD_FREE_CNT3(x) (((x) >> S_PCMD_FREE_CNT3) & M_PCMD_FREE_CNT3)
-
-#define A_PM_TX_DBG_STAT10 0x10036
-
-#define S_IN_EOP_CNT3 28
-#define M_IN_EOP_CNT3 0xfU
-#define V_IN_EOP_CNT3(x) ((x) << S_IN_EOP_CNT3)
-#define G_IN_EOP_CNT3(x) (((x) >> S_IN_EOP_CNT3) & M_IN_EOP_CNT3)
-
-#define S_IN_EOP_CNT2 24
-#define M_IN_EOP_CNT2 0xfU
-#define V_IN_EOP_CNT2(x) ((x) << S_IN_EOP_CNT2)
-#define G_IN_EOP_CNT2(x) (((x) >> S_IN_EOP_CNT2) & M_IN_EOP_CNT2)
-
-#define S_IN_EOP_CNT1 20
-#define M_IN_EOP_CNT1 0xfU
-#define V_IN_EOP_CNT1(x) ((x) << S_IN_EOP_CNT1)
-#define G_IN_EOP_CNT1(x) (((x) >> S_IN_EOP_CNT1) & M_IN_EOP_CNT1)
-
-#define S_IN_EOP_CNT0 16
-#define M_IN_EOP_CNT0 0xfU
-#define V_IN_EOP_CNT0(x) ((x) << S_IN_EOP_CNT0)
-#define G_IN_EOP_CNT0(x) (((x) >> S_IN_EOP_CNT0) & M_IN_EOP_CNT0)
-
-#define S_IN_SOP_CNT3 12
-#define M_IN_SOP_CNT3 0xfU
-#define V_IN_SOP_CNT3(x) ((x) << S_IN_SOP_CNT3)
-#define G_IN_SOP_CNT3(x) (((x) >> S_IN_SOP_CNT3) & M_IN_SOP_CNT3)
-
-#define S_IN_SOP_CNT2 8
-#define M_IN_SOP_CNT2 0xfU
-#define V_IN_SOP_CNT2(x) ((x) << S_IN_SOP_CNT2)
-#define G_IN_SOP_CNT2(x) (((x) >> S_IN_SOP_CNT2) & M_IN_SOP_CNT2)
-
-#define S_IN_SOP_CNT1 4
-#define M_IN_SOP_CNT1 0xfU
-#define V_IN_SOP_CNT1(x) ((x) << S_IN_SOP_CNT1)
-#define G_IN_SOP_CNT1(x) (((x) >> S_IN_SOP_CNT1) & M_IN_SOP_CNT1)
-
-#define S_IN_SOP_CNT0 0
-#define M_IN_SOP_CNT0 0xfU
-#define V_IN_SOP_CNT0(x) ((x) << S_IN_SOP_CNT0)
-#define G_IN_SOP_CNT0(x) (((x) >> S_IN_SOP_CNT0) & M_IN_SOP_CNT0)
-
-#define A_PM_TX_DBG_STAT11 0x10037
-
-#define S_OUT_EOP_CNT3 28
-#define M_OUT_EOP_CNT3 0xfU
-#define V_OUT_EOP_CNT3(x) ((x) << S_OUT_EOP_CNT3)
-#define G_OUT_EOP_CNT3(x) (((x) >> S_OUT_EOP_CNT3) & M_OUT_EOP_CNT3)
-
-#define S_OUT_EOP_CNT2 24
-#define M_OUT_EOP_CNT2 0xfU
-#define V_OUT_EOP_CNT2(x) ((x) << S_OUT_EOP_CNT2)
-#define G_OUT_EOP_CNT2(x) (((x) >> S_OUT_EOP_CNT2) & M_OUT_EOP_CNT2)
-
-#define S_OUT_EOP_CNT1 20
-#define M_OUT_EOP_CNT1 0xfU
-#define V_OUT_EOP_CNT1(x) ((x) << S_OUT_EOP_CNT1)
-#define G_OUT_EOP_CNT1(x) (((x) >> S_OUT_EOP_CNT1) & M_OUT_EOP_CNT1)
-
-#define S_OUT_EOP_CNT0 16
-#define M_OUT_EOP_CNT0 0xfU
-#define V_OUT_EOP_CNT0(x) ((x) << S_OUT_EOP_CNT0)
-#define G_OUT_EOP_CNT0(x) (((x) >> S_OUT_EOP_CNT0) & M_OUT_EOP_CNT0)
-
-#define S_OUT_SOP_CNT3 12
-#define M_OUT_SOP_CNT3 0xfU
-#define V_OUT_SOP_CNT3(x) ((x) << S_OUT_SOP_CNT3)
-#define G_OUT_SOP_CNT3(x) (((x) >> S_OUT_SOP_CNT3) & M_OUT_SOP_CNT3)
-
-#define S_OUT_SOP_CNT2 8
-#define M_OUT_SOP_CNT2 0xfU
-#define V_OUT_SOP_CNT2(x) ((x) << S_OUT_SOP_CNT2)
-#define G_OUT_SOP_CNT2(x) (((x) >> S_OUT_SOP_CNT2) & M_OUT_SOP_CNT2)
-
-#define S_OUT_SOP_CNT1 4
-#define M_OUT_SOP_CNT1 0xfU
-#define V_OUT_SOP_CNT1(x) ((x) << S_OUT_SOP_CNT1)
-#define G_OUT_SOP_CNT1(x) (((x) >> S_OUT_SOP_CNT1) & M_OUT_SOP_CNT1)
-
-#define S_OUT_SOP_CNT0 0
-#define M_OUT_SOP_CNT0 0xfU
-#define V_OUT_SOP_CNT0(x) ((x) << S_OUT_SOP_CNT0)
-#define G_OUT_SOP_CNT0(x) (((x) >> S_OUT_SOP_CNT0) & M_OUT_SOP_CNT0)
-
-#define A_PM_TX_DBG_STAT12 0x10038
-#define A_PM_TX_DBG_STAT13 0x10039
-
-#define S_CH_DEFICIT_BLOWED 31
-#define V_CH_DEFICIT_BLOWED(x) ((x) << S_CH_DEFICIT_BLOWED)
-#define F_CH_DEFICIT_BLOWED V_CH_DEFICIT_BLOWED(1U)
-
-#define S_CH1_DEFICIT 16
-#define M_CH1_DEFICIT 0xfffU
-#define V_CH1_DEFICIT(x) ((x) << S_CH1_DEFICIT)
-#define G_CH1_DEFICIT(x) (((x) >> S_CH1_DEFICIT) & M_CH1_DEFICIT)
-
-#define S_CH0_DEFICIT 0
-#define M_CH0_DEFICIT 0xfffU
-#define V_CH0_DEFICIT(x) ((x) << S_CH0_DEFICIT)
-#define G_CH0_DEFICIT(x) (((x) >> S_CH0_DEFICIT) & M_CH0_DEFICIT)
-
-#define A_PM_TX_DBG_STAT14 0x1003a
-
-#define S_CH3_DEFICIT 16
-#define M_CH3_DEFICIT 0xfffU
-#define V_CH3_DEFICIT(x) ((x) << S_CH3_DEFICIT)
-#define G_CH3_DEFICIT(x) (((x) >> S_CH3_DEFICIT) & M_CH3_DEFICIT)
-
-#define S_CH2_DEFICIT 0
-#define M_CH2_DEFICIT 0xfffU
-#define V_CH2_DEFICIT(x) ((x) << S_CH2_DEFICIT)
-#define G_CH2_DEFICIT(x) (((x) >> S_CH2_DEFICIT) & M_CH2_DEFICIT)
-
-#define A_PM_TX_DBG_STAT15 0x1003b
-
-#define S_BUNDLE_LEN_SRDY 28
-#define M_BUNDLE_LEN_SRDY 0xfU
-#define V_BUNDLE_LEN_SRDY(x) ((x) << S_BUNDLE_LEN_SRDY)
-#define G_BUNDLE_LEN_SRDY(x) (((x) >> S_BUNDLE_LEN_SRDY) & M_BUNDLE_LEN_SRDY)
-
-#define S_BUNDLE_LEN1 16
-#define M_BUNDLE_LEN1 0xfffU
-#define V_BUNDLE_LEN1(x) ((x) << S_BUNDLE_LEN1)
-#define G_BUNDLE_LEN1(x) (((x) >> S_BUNDLE_LEN1) & M_BUNDLE_LEN1)
-
-#define S_BUNDLE_LEN0 0
-#define M_BUNDLE_LEN0 0xfffU
-#define V_BUNDLE_LEN0(x) ((x) << S_BUNDLE_LEN0)
-#define G_BUNDLE_LEN0(x) (((x) >> S_BUNDLE_LEN0) & M_BUNDLE_LEN0)
-
-#define A_PM_TX_DBG_STAT16 0x1003c
-
-#define S_BUNDLE_LEN3 16
-#define M_BUNDLE_LEN3 0xfffU
-#define V_BUNDLE_LEN3(x) ((x) << S_BUNDLE_LEN3)
-#define G_BUNDLE_LEN3(x) (((x) >> S_BUNDLE_LEN3) & M_BUNDLE_LEN3)
-
-#define S_BUNDLE_LEN2 0
-#define M_BUNDLE_LEN2 0xfffU
-#define V_BUNDLE_LEN2(x) ((x) << S_BUNDLE_LEN2)
-#define G_BUNDLE_LEN2(x) (((x) >> S_BUNDLE_LEN2) & M_BUNDLE_LEN2)
-
/* registers for module MPS */
#define MPS_BASE_ADDR 0x9000
@@ -22296,48 +14456,6 @@
#define V_PRTY0(x) ((x) << S_PRTY0)
#define G_PRTY0(x) (((x) >> S_PRTY0) & M_PRTY0)
-#define A_MPS_PORT_PRTY_BUFFER_GROUP_TH_MAP 0x30
-
-#define S_TXPRTY7 28
-#define M_TXPRTY7 0xfU
-#define V_TXPRTY7(x) ((x) << S_TXPRTY7)
-#define G_TXPRTY7(x) (((x) >> S_TXPRTY7) & M_TXPRTY7)
-
-#define S_TXPRTY6 24
-#define M_TXPRTY6 0xfU
-#define V_TXPRTY6(x) ((x) << S_TXPRTY6)
-#define G_TXPRTY6(x) (((x) >> S_TXPRTY6) & M_TXPRTY6)
-
-#define S_TXPRTY5 20
-#define M_TXPRTY5 0xfU
-#define V_TXPRTY5(x) ((x) << S_TXPRTY5)
-#define G_TXPRTY5(x) (((x) >> S_TXPRTY5) & M_TXPRTY5)
-
-#define S_TXPRTY4 16
-#define M_TXPRTY4 0xfU
-#define V_TXPRTY4(x) ((x) << S_TXPRTY4)
-#define G_TXPRTY4(x) (((x) >> S_TXPRTY4) & M_TXPRTY4)
-
-#define S_TXPRTY3 12
-#define M_TXPRTY3 0xfU
-#define V_TXPRTY3(x) ((x) << S_TXPRTY3)
-#define G_TXPRTY3(x) (((x) >> S_TXPRTY3) & M_TXPRTY3)
-
-#define S_TXPRTY2 8
-#define M_TXPRTY2 0xfU
-#define V_TXPRTY2(x) ((x) << S_TXPRTY2)
-#define G_TXPRTY2(x) (((x) >> S_TXPRTY2) & M_TXPRTY2)
-
-#define S_TXPRTY1 4
-#define M_TXPRTY1 0xfU
-#define V_TXPRTY1(x) ((x) << S_TXPRTY1)
-#define G_TXPRTY1(x) (((x) >> S_TXPRTY1) & M_TXPRTY1)
-
-#define S_TXPRTY0 0
-#define M_TXPRTY0 0xfU
-#define V_TXPRTY0(x) ((x) << S_TXPRTY0)
-#define G_TXPRTY0(x) (((x) >> S_TXPRTY0) & M_TXPRTY0)
-
#define A_MPS_VF_STAT_TX_VF_BCAST_BYTES_L 0x80
#define A_MPS_VF_STAT_TX_VF_BCAST_BYTES_H 0x84
#define A_MPS_VF_STAT_TX_VF_BCAST_FRAMES_L 0x88
@@ -22453,10 +14571,6 @@
#define V_OVLAN_EN0(x) ((x) << S_OVLAN_EN0)
#define F_OVLAN_EN0 V_OVLAN_EN0(1U)
-#define S_PTP_FWD_UP 21
-#define V_PTP_FWD_UP(x) ((x) << S_PTP_FWD_UP)
-#define F_PTP_FWD_UP V_PTP_FWD_UP(1U)
-
#define A_MPS_PORT_RX_MTU 0x104
#define A_MPS_PORT_RX_PF_MAP 0x108
#define A_MPS_PORT_RX_VF_MAP0 0x10c
@@ -22527,8 +14641,6 @@
#define G_FIXED_VF(x) (((x) >> S_FIXED_VF) & M_FIXED_VF)
#define A_MPS_PORT_RX_SPARE 0x13c
-#define A_MPS_PORT_RX_PTP_RSS_HASH 0x140
-#define A_MPS_PORT_RX_PTP_RSS_CONTROL 0x144
#define A_MPS_PORT_TX_MAC_RELOAD_CH0 0x190
#define S_CREDIT 0
@@ -22562,23 +14674,6 @@
#define G_MAXPKTCNT(x) (((x) >> S_MAXPKTCNT) & M_MAXPKTCNT)
#define A_MPS_PORT_FPGA_PAUSE_CTL 0x1c8
-
-#define S_FPGAPAUSEEN 0
-#define V_FPGAPAUSEEN(x) ((x) << S_FPGAPAUSEEN)
-#define F_FPGAPAUSEEN V_FPGAPAUSEEN(1U)
-
-#define A_MPS_PORT_TX_PAUSE_PENDING_STATUS 0x1d0
-
-#define S_OFF_PENDING 8
-#define M_OFF_PENDING 0xffU
-#define V_OFF_PENDING(x) ((x) << S_OFF_PENDING)
-#define G_OFF_PENDING(x) (((x) >> S_OFF_PENDING) & M_OFF_PENDING)
-
-#define S_ON_PENDING 0
-#define M_ON_PENDING 0xffU
-#define V_ON_PENDING(x) ((x) << S_ON_PENDING)
-#define G_ON_PENDING(x) (((x) >> S_ON_PENDING) & M_ON_PENDING)
-
#define A_MPS_PORT_CLS_HASH_SRAM 0x200
#define S_VALID 20
@@ -22694,50 +14789,6 @@
#define V_PF_VLAN_SEL(x) ((x) << S_PF_VLAN_SEL)
#define F_PF_VLAN_SEL V_PF_VLAN_SEL(1U)
-#define S_LPBK_TCAM1_HIT_PRIORITY 14
-#define V_LPBK_TCAM1_HIT_PRIORITY(x) ((x) << S_LPBK_TCAM1_HIT_PRIORITY)
-#define F_LPBK_TCAM1_HIT_PRIORITY V_LPBK_TCAM1_HIT_PRIORITY(1U)
-
-#define S_LPBK_TCAM0_HIT_PRIORITY 13
-#define V_LPBK_TCAM0_HIT_PRIORITY(x) ((x) << S_LPBK_TCAM0_HIT_PRIORITY)
-#define F_LPBK_TCAM0_HIT_PRIORITY V_LPBK_TCAM0_HIT_PRIORITY(1U)
-
-#define S_LPBK_TCAM_PRIORITY 12
-#define V_LPBK_TCAM_PRIORITY(x) ((x) << S_LPBK_TCAM_PRIORITY)
-#define F_LPBK_TCAM_PRIORITY V_LPBK_TCAM_PRIORITY(1U)
-
-#define S_LPBK_SMAC_TCAM_SEL 10
-#define M_LPBK_SMAC_TCAM_SEL 0x3U
-#define V_LPBK_SMAC_TCAM_SEL(x) ((x) << S_LPBK_SMAC_TCAM_SEL)
-#define G_LPBK_SMAC_TCAM_SEL(x) (((x) >> S_LPBK_SMAC_TCAM_SEL) & M_LPBK_SMAC_TCAM_SEL)
-
-#define S_LPBK_DMAC_TCAM_SEL 8
-#define M_LPBK_DMAC_TCAM_SEL 0x3U
-#define V_LPBK_DMAC_TCAM_SEL(x) ((x) << S_LPBK_DMAC_TCAM_SEL)
-#define G_LPBK_DMAC_TCAM_SEL(x) (((x) >> S_LPBK_DMAC_TCAM_SEL) & M_LPBK_DMAC_TCAM_SEL)
-
-#define S_TCAM1_HIT_PRIORITY 7
-#define V_TCAM1_HIT_PRIORITY(x) ((x) << S_TCAM1_HIT_PRIORITY)
-#define F_TCAM1_HIT_PRIORITY V_TCAM1_HIT_PRIORITY(1U)
-
-#define S_TCAM0_HIT_PRIORITY 6
-#define V_TCAM0_HIT_PRIORITY(x) ((x) << S_TCAM0_HIT_PRIORITY)
-#define F_TCAM0_HIT_PRIORITY V_TCAM0_HIT_PRIORITY(1U)
-
-#define S_TCAM_PRIORITY 5
-#define V_TCAM_PRIORITY(x) ((x) << S_TCAM_PRIORITY)
-#define F_TCAM_PRIORITY V_TCAM_PRIORITY(1U)
-
-#define S_SMAC_TCAM_SEL 3
-#define M_SMAC_TCAM_SEL 0x3U
-#define V_SMAC_TCAM_SEL(x) ((x) << S_SMAC_TCAM_SEL)
-#define G_SMAC_TCAM_SEL(x) (((x) >> S_SMAC_TCAM_SEL) & M_SMAC_TCAM_SEL)
-
-#define S_DMAC_TCAM_SEL 1
-#define M_DMAC_TCAM_SEL 0x3U
-#define V_DMAC_TCAM_SEL(x) ((x) << S_DMAC_TCAM_SEL)
-#define G_DMAC_TCAM_SEL(x) (((x) >> S_DMAC_TCAM_SEL) & M_DMAC_TCAM_SEL)
-
#define A_MPS_PF_STAT_TX_PF_MCAST_FRAMES_H 0x31c
#define A_MPS_PF_STAT_TX_PF_UCAST_BYTES_L 0x320
#define A_MPS_PF_STAT_TX_PF_UCAST_BYTES_H 0x324
@@ -22838,8 +14889,6 @@
#define A_MPS_PORT_STAT_LB_PORT_1519B_MAX_L 0x520
#define A_MPS_PORT_STAT_LB_PORT_1519B_MAX_H 0x524
#define A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES 0x528
-#define A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES_L 0x528
-#define A_MPS_PORT_STAT_LB_PORT_DROP_FRAMES_H 0x52c
#define A_MPS_PORT_STAT_RX_PORT_BYTES_L 0x540
#define A_MPS_PORT_STAT_RX_PORT_BYTES_H 0x544
#define A_MPS_PORT_STAT_RX_PORT_FRAMES_L 0x548
@@ -22894,8 +14943,6 @@
#define A_MPS_PORT_STAT_RX_PORT_PPP7_H 0x60c
#define A_MPS_PORT_STAT_RX_PORT_LESS_64B_L 0x610
#define A_MPS_PORT_STAT_RX_PORT_LESS_64B_H 0x614
-#define A_MPS_PORT_STAT_RX_PORT_MAC_ERROR_L 0x618
-#define A_MPS_PORT_STAT_RX_PORT_MAC_ERROR_H 0x61c
#define A_MPS_CMN_CTL 0x9000
#define S_DETECT8023 3
@@ -22911,10 +14958,6 @@
#define V_NUMPORTS(x) ((x) << S_NUMPORTS)
#define G_NUMPORTS(x) (((x) >> S_NUMPORTS) & M_NUMPORTS)
-#define S_LPBKCRDTCTRL 4
-#define V_LPBKCRDTCTRL(x) ((x) << S_LPBKCRDTCTRL)
-#define F_LPBKCRDTCTRL V_LPBKCRDTCTRL(1U)
-
#define A_MPS_INT_ENABLE 0x9004
#define S_STATINTENB 5
@@ -22967,12 +15010,6 @@
#define V_PLINT(x) ((x) << S_PLINT)
#define F_PLINT V_PLINT(1U)
-#define A_MPS_CGEN_GLOBAL 0x900c
-
-#define S_MPS_GLOBAL_CGEN 0
-#define V_MPS_GLOBAL_CGEN(x) ((x) << S_MPS_GLOBAL_CGEN)
-#define F_MPS_GLOBAL_CGEN V_MPS_GLOBAL_CGEN(1U)
-
#define A_MPS_VF_TX_CTL_31_0 0x9010
#define A_MPS_VF_TX_CTL_63_32 0x9014
#define A_MPS_VF_TX_CTL_95_64 0x9018
@@ -23035,11 +15072,6 @@
#define V_CH_MAP0(x) ((x) << S_CH_MAP0)
#define G_CH_MAP0(x) (((x) >> S_CH_MAP0) & M_CH_MAP0)
-#define S_FPGA_PTP_PORT 9
-#define M_FPGA_PTP_PORT 0x3U
-#define V_FPGA_PTP_PORT(x) ((x) << S_FPGA_PTP_PORT)
-#define G_FPGA_PTP_PORT(x) (((x) >> S_FPGA_PTP_PORT) & M_FPGA_PTP_PORT)
-
#define A_MPS_DEBUG_CTL 0x9068
#define S_DBGMODECTL_H 11
@@ -23064,11 +15096,16 @@
#define A_MPS_DEBUG_DATA_REG_H 0x9070
#define A_MPS_TOP_SPARE 0x9074
-#define S_TOPSPARE 8
-#define M_TOPSPARE 0xffffffU
+#define S_TOPSPARE 12
+#define M_TOPSPARE 0xfffffU
#define V_TOPSPARE(x) ((x) << S_TOPSPARE)
#define G_TOPSPARE(x) (((x) >> S_TOPSPARE) & M_TOPSPARE)
+#define S_CHIKN_14463 8
+#define M_CHIKN_14463 0xfU
+#define V_CHIKN_14463(x) ((x) << S_CHIKN_14463)
+#define G_CHIKN_14463(x) (((x) >> S_CHIKN_14463) & M_CHIKN_14463)
+
#define S_OVLANSELLPBK3 7
#define V_OVLANSELLPBK3(x) ((x) << S_OVLANSELLPBK3)
#define F_OVLANSELLPBK3 V_OVLANSELLPBK3(1U)
@@ -23101,44 +15138,6 @@
#define V_OVLANSELMAC0(x) ((x) << S_OVLANSELMAC0)
#define F_OVLANSELMAC0 V_OVLANSELMAC0(1U)
-#define S_T5_TOPSPARE 8
-#define M_T5_TOPSPARE 0xffffffU
-#define V_T5_TOPSPARE(x) ((x) << S_T5_TOPSPARE)
-#define G_T5_TOPSPARE(x) (((x) >> S_T5_TOPSPARE) & M_T5_TOPSPARE)
-
-#define A_MPS_T5_BUILD_REVISION 0x9078
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH0 0x907c
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH1 0x9080
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH2 0x9084
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH3 0x9088
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH4 0x908c
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH5 0x9090
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH6 0x9094
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH7 0x9098
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH8 0x909c
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH9 0x90a0
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH10 0x90a4
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH11 0x90a8
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH12 0x90ac
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH13 0x90b0
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH14 0x90b4
-#define A_MPS_TX_PAUSE_DURATION_BUF_GRP_TH15 0x90b8
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH0 0x90bc
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH1 0x90c0
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH2 0x90c4
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH3 0x90c8
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH4 0x90cc
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH5 0x90d0
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH6 0x90d4
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH7 0x90d8
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH8 0x90dc
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH9 0x90e0
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH10 0x90e4
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH11 0x90e8
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH12 0x90ec
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH13 0x90f0
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH14 0x90f4
-#define A_MPS_TX_PAUSE_RETRANS_BUF_GRP_TH15 0x90f8
#define A_MPS_BUILD_REVISION 0x90fc
#define A_MPS_TX_PRTY_SEL 0x9400
@@ -23251,15 +15250,6 @@
#define V_BUBBLECLR(x) ((x) << S_BUBBLECLR)
#define G_BUBBLECLR(x) (((x) >> S_BUBBLECLR) & M_BUBBLECLR)
-#define S_NCSISECNT 20
-#define V_NCSISECNT(x) ((x) << S_NCSISECNT)
-#define F_NCSISECNT V_NCSISECNT(1U)
-
-#define S_LPBKSECNT 16
-#define M_LPBKSECNT 0xfU
-#define V_LPBKSECNT(x) ((x) << S_LPBKSECNT)
-#define G_LPBKSECNT(x) (((x) >> S_LPBKSECNT) & M_LPBKSECNT)
-
#define A_MPS_TX_PORT_ERR 0x9430
#define S_LPBKPT3 7
@@ -23562,13 +15552,6 @@
#define V_SGEPAUSEIGNR(x) ((x) << S_SGEPAUSEIGNR)
#define G_SGEPAUSEIGNR(x) (((x) >> S_SGEPAUSEIGNR) & M_SGEPAUSEIGNR)
-#define A_MPS_T5_TX_SGE_CH_PAUSE_IGNR 0x9454
-
-#define S_T5SGEPAUSEIGNR 0
-#define M_T5SGEPAUSEIGNR 0xffffU
-#define V_T5SGEPAUSEIGNR(x) ((x) << S_T5SGEPAUSEIGNR)
-#define G_T5SGEPAUSEIGNR(x) (((x) >> S_T5SGEPAUSEIGNR) & M_T5SGEPAUSEIGNR)
-
#define A_MPS_TX_DEBUG_SUBPART_SEL 0x9458
#define S_SUBPRTH 11
@@ -23591,182 +15574,6 @@
#define V_PORTL(x) ((x) << S_PORTL)
#define G_PORTL(x) (((x) >> S_PORTL) & M_PORTL)
-#define A_MPS_TX_PAD_CTL 0x945c
-
-#define S_LPBKPADENPT3 7
-#define V_LPBKPADENPT3(x) ((x) << S_LPBKPADENPT3)
-#define F_LPBKPADENPT3 V_LPBKPADENPT3(1U)
-
-#define S_LPBKPADENPT2 6
-#define V_LPBKPADENPT2(x) ((x) << S_LPBKPADENPT2)
-#define F_LPBKPADENPT2 V_LPBKPADENPT2(1U)
-
-#define S_LPBKPADENPT1 5
-#define V_LPBKPADENPT1(x) ((x) << S_LPBKPADENPT1)
-#define F_LPBKPADENPT1 V_LPBKPADENPT1(1U)
-
-#define S_LPBKPADENPT0 4
-#define V_LPBKPADENPT0(x) ((x) << S_LPBKPADENPT0)
-#define F_LPBKPADENPT0 V_LPBKPADENPT0(1U)
-
-#define S_MACPADENPT3 3
-#define V_MACPADENPT3(x) ((x) << S_MACPADENPT3)
-#define F_MACPADENPT3 V_MACPADENPT3(1U)
-
-#define S_MACPADENPT2 2
-#define V_MACPADENPT2(x) ((x) << S_MACPADENPT2)
-#define F_MACPADENPT2 V_MACPADENPT2(1U)
-
-#define S_MACPADENPT1 1
-#define V_MACPADENPT1(x) ((x) << S_MACPADENPT1)
-#define F_MACPADENPT1 V_MACPADENPT1(1U)
-
-#define S_MACPADENPT0 0
-#define V_MACPADENPT0(x) ((x) << S_MACPADENPT0)
-#define F_MACPADENPT0 V_MACPADENPT0(1U)
-
-#define A_MPS_TX_PFVF_PORT_DROP_TP 0x9460
-
-#define S_TP2MPS_CH3 24
-#define M_TP2MPS_CH3 0xffU
-#define V_TP2MPS_CH3(x) ((x) << S_TP2MPS_CH3)
-#define G_TP2MPS_CH3(x) (((x) >> S_TP2MPS_CH3) & M_TP2MPS_CH3)
-
-#define S_TP2MPS_CH2 16
-#define M_TP2MPS_CH2 0xffU
-#define V_TP2MPS_CH2(x) ((x) << S_TP2MPS_CH2)
-#define G_TP2MPS_CH2(x) (((x) >> S_TP2MPS_CH2) & M_TP2MPS_CH2)
-
-#define S_TP2MPS_CH1 8
-#define M_TP2MPS_CH1 0xffU
-#define V_TP2MPS_CH1(x) ((x) << S_TP2MPS_CH1)
-#define G_TP2MPS_CH1(x) (((x) >> S_TP2MPS_CH1) & M_TP2MPS_CH1)
-
-#define S_TP2MPS_CH0 0
-#define M_TP2MPS_CH0 0xffU
-#define V_TP2MPS_CH0(x) ((x) << S_TP2MPS_CH0)
-#define G_TP2MPS_CH0(x) (((x) >> S_TP2MPS_CH0) & M_TP2MPS_CH0)
-
-#define A_MPS_TX_PFVF_PORT_DROP_NCSI 0x9464
-
-#define S_NCSI_CH4 0
-#define M_NCSI_CH4 0xffU
-#define V_NCSI_CH4(x) ((x) << S_NCSI_CH4)
-#define G_NCSI_CH4(x) (((x) >> S_NCSI_CH4) & M_NCSI_CH4)
-
-#define A_MPS_TX_PFVF_PORT_DROP_CTL 0x9468
-
-#define S_PFNOVFDROP 5
-#define V_PFNOVFDROP(x) ((x) << S_PFNOVFDROP)
-#define F_PFNOVFDROP V_PFNOVFDROP(1U)
-
-#define S_NCSI_CH4_CLR 4
-#define V_NCSI_CH4_CLR(x) ((x) << S_NCSI_CH4_CLR)
-#define F_NCSI_CH4_CLR V_NCSI_CH4_CLR(1U)
-
-#define S_TP2MPS_CH3_CLR 3
-#define V_TP2MPS_CH3_CLR(x) ((x) << S_TP2MPS_CH3_CLR)
-#define F_TP2MPS_CH3_CLR V_TP2MPS_CH3_CLR(1U)
-
-#define S_TP2MPS_CH2_CLR 2
-#define V_TP2MPS_CH2_CLR(x) ((x) << S_TP2MPS_CH2_CLR)
-#define F_TP2MPS_CH2_CLR V_TP2MPS_CH2_CLR(1U)
-
-#define S_TP2MPS_CH1_CLR 1
-#define V_TP2MPS_CH1_CLR(x) ((x) << S_TP2MPS_CH1_CLR)
-#define F_TP2MPS_CH1_CLR V_TP2MPS_CH1_CLR(1U)
-
-#define S_TP2MPS_CH0_CLR 0
-#define V_TP2MPS_CH0_CLR(x) ((x) << S_TP2MPS_CH0_CLR)
-#define F_TP2MPS_CH0_CLR V_TP2MPS_CH0_CLR(1U)
-
-#define A_MPS_TX_CGEN 0x946c
-
-#define S_TXOUTLPBK3_CGEN 31
-#define V_TXOUTLPBK3_CGEN(x) ((x) << S_TXOUTLPBK3_CGEN)
-#define F_TXOUTLPBK3_CGEN V_TXOUTLPBK3_CGEN(1U)
-
-#define S_TXOUTLPBK2_CGEN 30
-#define V_TXOUTLPBK2_CGEN(x) ((x) << S_TXOUTLPBK2_CGEN)
-#define F_TXOUTLPBK2_CGEN V_TXOUTLPBK2_CGEN(1U)
-
-#define S_TXOUTLPBK1_CGEN 29
-#define V_TXOUTLPBK1_CGEN(x) ((x) << S_TXOUTLPBK1_CGEN)
-#define F_TXOUTLPBK1_CGEN V_TXOUTLPBK1_CGEN(1U)
-
-#define S_TXOUTLPBK0_CGEN 28
-#define V_TXOUTLPBK0_CGEN(x) ((x) << S_TXOUTLPBK0_CGEN)
-#define F_TXOUTLPBK0_CGEN V_TXOUTLPBK0_CGEN(1U)
-
-#define S_TXOUTMAC3_CGEN 27
-#define V_TXOUTMAC3_CGEN(x) ((x) << S_TXOUTMAC3_CGEN)
-#define F_TXOUTMAC3_CGEN V_TXOUTMAC3_CGEN(1U)
-
-#define S_TXOUTMAC2_CGEN 26
-#define V_TXOUTMAC2_CGEN(x) ((x) << S_TXOUTMAC2_CGEN)
-#define F_TXOUTMAC2_CGEN V_TXOUTMAC2_CGEN(1U)
-
-#define S_TXOUTMAC1_CGEN 25
-#define V_TXOUTMAC1_CGEN(x) ((x) << S_TXOUTMAC1_CGEN)
-#define F_TXOUTMAC1_CGEN V_TXOUTMAC1_CGEN(1U)
-
-#define S_TXOUTMAC0_CGEN 24
-#define V_TXOUTMAC0_CGEN(x) ((x) << S_TXOUTMAC0_CGEN)
-#define F_TXOUTMAC0_CGEN V_TXOUTMAC0_CGEN(1U)
-
-#define S_TXSCHLPBK3_CGEN 23
-#define V_TXSCHLPBK3_CGEN(x) ((x) << S_TXSCHLPBK3_CGEN)
-#define F_TXSCHLPBK3_CGEN V_TXSCHLPBK3_CGEN(1U)
-
-#define S_TXSCHLPBK2_CGEN 22
-#define V_TXSCHLPBK2_CGEN(x) ((x) << S_TXSCHLPBK2_CGEN)
-#define F_TXSCHLPBK2_CGEN V_TXSCHLPBK2_CGEN(1U)
-
-#define S_TXSCHLPBK1_CGEN 21
-#define V_TXSCHLPBK1_CGEN(x) ((x) << S_TXSCHLPBK1_CGEN)
-#define F_TXSCHLPBK1_CGEN V_TXSCHLPBK1_CGEN(1U)
-
-#define S_TXSCHLPBK0_CGEN 20
-#define V_TXSCHLPBK0_CGEN(x) ((x) << S_TXSCHLPBK0_CGEN)
-#define F_TXSCHLPBK0_CGEN V_TXSCHLPBK0_CGEN(1U)
-
-#define S_TXSCHMAC3_CGEN 19
-#define V_TXSCHMAC3_CGEN(x) ((x) << S_TXSCHMAC3_CGEN)
-#define F_TXSCHMAC3_CGEN V_TXSCHMAC3_CGEN(1U)
-
-#define S_TXSCHMAC2_CGEN 18
-#define V_TXSCHMAC2_CGEN(x) ((x) << S_TXSCHMAC2_CGEN)
-#define F_TXSCHMAC2_CGEN V_TXSCHMAC2_CGEN(1U)
-
-#define S_TXSCHMAC1_CGEN 17
-#define V_TXSCHMAC1_CGEN(x) ((x) << S_TXSCHMAC1_CGEN)
-#define F_TXSCHMAC1_CGEN V_TXSCHMAC1_CGEN(1U)
-
-#define S_TXSCHMAC0_CGEN 16
-#define V_TXSCHMAC0_CGEN(x) ((x) << S_TXSCHMAC0_CGEN)
-#define F_TXSCHMAC0_CGEN V_TXSCHMAC0_CGEN(1U)
-
-#define S_TXINCH4_CGEN 15
-#define V_TXINCH4_CGEN(x) ((x) << S_TXINCH4_CGEN)
-#define F_TXINCH4_CGEN V_TXINCH4_CGEN(1U)
-
-#define S_TXINCH3_CGEN 14
-#define V_TXINCH3_CGEN(x) ((x) << S_TXINCH3_CGEN)
-#define F_TXINCH3_CGEN V_TXINCH3_CGEN(1U)
-
-#define S_TXINCH2_CGEN 13
-#define V_TXINCH2_CGEN(x) ((x) << S_TXINCH2_CGEN)
-#define F_TXINCH2_CGEN V_TXINCH2_CGEN(1U)
-
-#define S_TXINCH1_CGEN 12
-#define V_TXINCH1_CGEN(x) ((x) << S_TXINCH1_CGEN)
-#define F_TXINCH1_CGEN V_TXINCH1_CGEN(1U)
-
-#define S_TXINCH0_CGEN 11
-#define V_TXINCH0_CGEN(x) ((x) << S_TXINCH0_CGEN)
-#define F_TXINCH0_CGEN V_TXINCH0_CGEN(1U)
-
-#define A_MPS_TX_CGEN_DYNAMIC 0x9470
#define A_MPS_STAT_CTL 0x9600
#define S_COUNTVFINPF 1
@@ -23777,42 +15584,6 @@
#define V_LPBKERRSTAT(x) ((x) << S_LPBKERRSTAT)
#define F_LPBKERRSTAT V_LPBKERRSTAT(1U)
-#define S_STATSTOPCTRL 10
-#define V_STATSTOPCTRL(x) ((x) << S_STATSTOPCTRL)
-#define F_STATSTOPCTRL V_STATSTOPCTRL(1U)
-
-#define S_STOPSTAT 9
-#define V_STOPSTAT(x) ((x) << S_STOPSTAT)
-#define F_STOPSTAT V_STOPSTAT(1U)
-
-#define S_STATWRITECTRL 8
-#define V_STATWRITECTRL(x) ((x) << S_STATWRITECTRL)
-#define F_STATWRITECTRL V_STATWRITECTRL(1U)
-
-#define S_COUNTLBPF 7
-#define V_COUNTLBPF(x) ((x) << S_COUNTLBPF)
-#define F_COUNTLBPF V_COUNTLBPF(1U)
-
-#define S_COUNTLBVF 6
-#define V_COUNTLBVF(x) ((x) << S_COUNTLBVF)
-#define F_COUNTLBVF V_COUNTLBVF(1U)
-
-#define S_COUNTPAUSEMCRX 5
-#define V_COUNTPAUSEMCRX(x) ((x) << S_COUNTPAUSEMCRX)
-#define F_COUNTPAUSEMCRX V_COUNTPAUSEMCRX(1U)
-
-#define S_COUNTPAUSESTATRX 4
-#define V_COUNTPAUSESTATRX(x) ((x) << S_COUNTPAUSESTATRX)
-#define F_COUNTPAUSESTATRX V_COUNTPAUSESTATRX(1U)
-
-#define S_COUNTPAUSEMCTX 3
-#define V_COUNTPAUSEMCTX(x) ((x) << S_COUNTPAUSEMCTX)
-#define F_COUNTPAUSEMCTX V_COUNTPAUSEMCTX(1U)
-
-#define S_COUNTPAUSESTATTX 2
-#define V_COUNTPAUSESTATTX(x) ((x) << S_COUNTPAUSESTATTX)
-#define F_COUNTPAUSESTATTX V_COUNTPAUSESTATTX(1U)
-
#define A_MPS_STAT_INT_ENABLE 0x9608
#define S_PLREADSYNCERR 0
@@ -23861,36 +15632,6 @@
#define V_TXPORT(x) ((x) << S_TXPORT)
#define G_TXPORT(x) (((x) >> S_TXPORT) & M_TXPORT)
-#define S_T5_RXBG 27
-#define M_T5_RXBG 0x3U
-#define V_T5_RXBG(x) ((x) << S_T5_RXBG)
-#define G_T5_RXBG(x) (((x) >> S_T5_RXBG) & M_T5_RXBG)
-
-#define S_T5_RXPF 22
-#define M_T5_RXPF 0x1fU
-#define V_T5_RXPF(x) ((x) << S_T5_RXPF)
-#define G_T5_RXPF(x) (((x) >> S_T5_RXPF) & M_T5_RXPF)
-
-#define S_T5_TXPF 18
-#define M_T5_TXPF 0xfU
-#define V_T5_TXPF(x) ((x) << S_T5_TXPF)
-#define G_T5_TXPF(x) (((x) >> S_T5_TXPF) & M_T5_TXPF)
-
-#define S_T5_RXPORT 11
-#define M_T5_RXPORT 0x7fU
-#define V_T5_RXPORT(x) ((x) << S_T5_RXPORT)
-#define G_T5_RXPORT(x) (((x) >> S_T5_RXPORT) & M_T5_RXPORT)
-
-#define S_T5_LBPORT 6
-#define M_T5_LBPORT 0x1fU
-#define V_T5_LBPORT(x) ((x) << S_T5_LBPORT)
-#define G_T5_LBPORT(x) (((x) >> S_T5_LBPORT) & M_T5_LBPORT)
-
-#define S_T5_TXPORT 0
-#define M_T5_TXPORT 0x3fU
-#define V_T5_TXPORT(x) ((x) << S_T5_TXPORT)
-#define G_T5_TXPORT(x) (((x) >> S_T5_TXPORT) & M_T5_TXPORT)
-
#define A_MPS_STAT_PERR_INT_CAUSE_SRAM 0x9614
#define A_MPS_STAT_PERR_ENABLE_SRAM 0x9618
#define A_MPS_STAT_PERR_INT_ENABLE_TX_FIFO 0x961c
@@ -23910,11 +15651,6 @@
#define V_DROP(x) ((x) << S_DROP)
#define G_DROP(x) (((x) >> S_DROP) & M_DROP)
-#define S_TXCH 20
-#define M_TXCH 0xfU
-#define V_TXCH(x) ((x) << S_TXCH)
-#define G_TXCH(x) (((x) >> S_TXCH) & M_TXCH)
-
#define A_MPS_STAT_PERR_INT_CAUSE_TX_FIFO 0x9620
#define A_MPS_STAT_PERR_ENABLE_TX_FIFO 0x9624
#define A_MPS_STAT_PERR_INT_ENABLE_RX_FIFO 0x9628
@@ -23954,22 +15690,6 @@
#define G_STATMEMSEL(x) (((x) >> S_STATMEMSEL) & M_STATMEMSEL)
#define A_MPS_STAT_DEBUG_SUB_SEL 0x9638
-
-#define S_STATSSUBPRTH 5
-#define M_STATSSUBPRTH 0x1fU
-#define V_STATSSUBPRTH(x) ((x) << S_STATSSUBPRTH)
-#define G_STATSSUBPRTH(x) (((x) >> S_STATSSUBPRTH) & M_STATSSUBPRTH)
-
-#define S_STATSSUBPRTL 0
-#define M_STATSSUBPRTL 0x1fU
-#define V_STATSSUBPRTL(x) ((x) << S_STATSSUBPRTL)
-#define G_STATSSUBPRTL(x) (((x) >> S_STATSSUBPRTL) & M_STATSSUBPRTL)
-
-#define S_STATSUBPRTH 5
-#define M_STATSUBPRTH 0x1fU
-#define V_STATSUBPRTH(x) ((x) << S_STATSUBPRTH)
-#define G_STATSUBPRTH(x) (((x) >> S_STATSUBPRTH) & M_STATSUBPRTH)
-
#define A_MPS_STAT_RX_BG_0_MAC_DROP_FRAME_L 0x9640
#define A_MPS_STAT_RX_BG_0_MAC_DROP_FRAME_H 0x9644
#define A_MPS_STAT_RX_BG_1_MAC_DROP_FRAME_L 0x9648
@@ -24002,64 +15722,6 @@
#define A_MPS_STAT_RX_BG_2_LB_TRUNC_FRAME_H 0x96b4
#define A_MPS_STAT_RX_BG_3_LB_TRUNC_FRAME_L 0x96b8
#define A_MPS_STAT_RX_BG_3_LB_TRUNC_FRAME_H 0x96bc
-#define A_MPS_STAT_PERR_INT_ENABLE_SRAM1 0x96c0
-
-#define S_T5_RXVF 5
-#define M_T5_RXVF 0x7U
-#define V_T5_RXVF(x) ((x) << S_T5_RXVF)
-#define G_T5_RXVF(x) (((x) >> S_T5_RXVF) & M_T5_RXVF)
-
-#define S_T5_TXVF 0
-#define M_T5_TXVF 0x1fU
-#define V_T5_TXVF(x) ((x) << S_T5_TXVF)
-#define G_T5_TXVF(x) (((x) >> S_T5_TXVF) & M_T5_TXVF)
-
-#define A_MPS_STAT_PERR_INT_CAUSE_SRAM1 0x96c4
-#define A_MPS_STAT_PERR_ENABLE_SRAM1 0x96c8
-#define A_MPS_STAT_STOP_UPD_BG 0x96cc
-
-#define S_BGRX 0
-#define M_BGRX 0xfU
-#define V_BGRX(x) ((x) << S_BGRX)
-#define G_BGRX(x) (((x) >> S_BGRX) & M_BGRX)
-
-#define A_MPS_STAT_STOP_UPD_PORT 0x96d0
-
-#define S_PTLPBK 8
-#define M_PTLPBK 0xfU
-#define V_PTLPBK(x) ((x) << S_PTLPBK)
-#define G_PTLPBK(x) (((x) >> S_PTLPBK) & M_PTLPBK)
-
-#define S_PTTX 4
-#define M_PTTX 0xfU
-#define V_PTTX(x) ((x) << S_PTTX)
-#define G_PTTX(x) (((x) >> S_PTTX) & M_PTTX)
-
-#define S_PTRX 0
-#define M_PTRX 0xfU
-#define V_PTRX(x) ((x) << S_PTRX)
-#define G_PTRX(x) (((x) >> S_PTRX) & M_PTRX)
-
-#define A_MPS_STAT_STOP_UPD_PF 0x96d4
-
-#define S_PFTX 8
-#define M_PFTX 0xffU
-#define V_PFTX(x) ((x) << S_PFTX)
-#define G_PFTX(x) (((x) >> S_PFTX) & M_PFTX)
-
-#define S_PFRX 0
-#define M_PFRX 0xffU
-#define V_PFRX(x) ((x) << S_PFRX)
-#define G_PFRX(x) (((x) >> S_PFRX) & M_PFRX)
-
-#define A_MPS_STAT_STOP_UPD_TX_VF_0_31 0x96d8
-#define A_MPS_STAT_STOP_UPD_TX_VF_32_63 0x96dc
-#define A_MPS_STAT_STOP_UPD_TX_VF_64_95 0x96e0
-#define A_MPS_STAT_STOP_UPD_TX_VF_96_127 0x96e4
-#define A_MPS_STAT_STOP_UPD_RX_VF_0_31 0x96e8
-#define A_MPS_STAT_STOP_UPD_RX_VF_32_63 0x96ec
-#define A_MPS_STAT_STOP_UPD_RX_VF_64_95 0x96f0
-#define A_MPS_STAT_STOP_UPD_RX_VF_96_127 0x96f4
#define A_MPS_TRC_CFG 0x9800
#define S_TRCFIFOEMPTY 4
@@ -24082,12 +15744,7 @@
#define V_TRCMULTIFILTER(x) ((x) << S_TRCMULTIFILTER)
#define F_TRCMULTIFILTER V_TRCMULTIFILTER(1U)
-#define S_TRCMULTIRSSFILTER 5
-#define V_TRCMULTIRSSFILTER(x) ((x) << S_TRCMULTIRSSFILTER)
-#define F_TRCMULTIRSSFILTER V_TRCMULTIRSSFILTER(1U)
-
#define A_MPS_TRC_RSS_HASH 0x9804
-#define A_MPS_TRC_FILTER0_RSS_HASH 0x9804
#define A_MPS_TRC_RSS_CONTROL 0x9808
#define S_RSSCONTROL 16
@@ -24100,7 +15757,6 @@
#define V_QUEUENUMBER(x) ((x) << S_QUEUENUMBER)
#define G_QUEUENUMBER(x) (((x) >> S_QUEUENUMBER) & M_QUEUENUMBER)
-#define A_MPS_TRC_FILTER0_RSS_CONTROL 0x9808
#define A_MPS_TRC_FILTER_MATCH_CTL_A 0x9810
#define S_TFINVERTMATCH 24
@@ -24138,31 +15794,6 @@
#define V_TFOFFSET(x) ((x) << S_TFOFFSET)
#define G_TFOFFSET(x) (((x) >> S_TFOFFSET) & M_TFOFFSET)
-#define S_TFINSERTACTLEN 27
-#define V_TFINSERTACTLEN(x) ((x) << S_TFINSERTACTLEN)
-#define F_TFINSERTACTLEN V_TFINSERTACTLEN(1U)
-
-#define S_TFINSERTTIMER 26
-#define V_TFINSERTTIMER(x) ((x) << S_TFINSERTTIMER)
-#define F_TFINSERTTIMER V_TFINSERTTIMER(1U)
-
-#define S_T5_TFINVERTMATCH 25
-#define V_T5_TFINVERTMATCH(x) ((x) << S_T5_TFINVERTMATCH)
-#define F_T5_TFINVERTMATCH V_T5_TFINVERTMATCH(1U)
-
-#define S_T5_TFPKTTOOLARGE 24
-#define V_T5_TFPKTTOOLARGE(x) ((x) << S_T5_TFPKTTOOLARGE)
-#define F_T5_TFPKTTOOLARGE V_T5_TFPKTTOOLARGE(1U)
-
-#define S_T5_TFEN 23
-#define V_T5_TFEN(x) ((x) << S_T5_TFEN)
-#define F_T5_TFEN V_T5_TFEN(1U)
-
-#define S_T5_TFPORT 18
-#define M_T5_TFPORT 0x1fU
-#define V_T5_TFPORT(x) ((x) << S_T5_TFPORT)
-#define G_T5_TFPORT(x) (((x) >> S_T5_TFPORT) & M_T5_TFPORT)
-
#define A_MPS_TRC_FILTER_MATCH_CTL_B 0x9820
#define S_TFMINPKTSIZE 16
@@ -24234,64 +15865,6 @@
#define A_MPS_TRC_FILTER2_DONT_CARE 0x9e80
#define A_MPS_TRC_FILTER3_MATCH 0x9f00
#define A_MPS_TRC_FILTER3_DONT_CARE 0x9f80
-#define A_MPS_TRC_FILTER1_RSS_HASH 0x9ff0
-#define A_MPS_TRC_FILTER1_RSS_CONTROL 0x9ff4
-#define A_MPS_TRC_FILTER2_RSS_HASH 0x9ff8
-#define A_MPS_TRC_FILTER2_RSS_CONTROL 0x9ffc
-#define A_MPS_TRC_FILTER3_RSS_HASH 0xa000
-#define A_MPS_TRC_FILTER3_RSS_CONTROL 0xa004
-#define A_MPS_T5_TRC_RSS_HASH 0xa008
-#define A_MPS_T5_TRC_RSS_CONTROL 0xa00c
-#define A_MPS_TRC_VF_OFF_FILTER_0 0xa010
-
-#define S_TRCMPS2TP_MACONLY 20
-#define V_TRCMPS2TP_MACONLY(x) ((x) << S_TRCMPS2TP_MACONLY)
-#define F_TRCMPS2TP_MACONLY V_TRCMPS2TP_MACONLY(1U)
-
-#define S_TRCALLMPS2TP 19
-#define V_TRCALLMPS2TP(x) ((x) << S_TRCALLMPS2TP)
-#define F_TRCALLMPS2TP V_TRCALLMPS2TP(1U)
-
-#define S_TRCALLTP2MPS 18
-#define V_TRCALLTP2MPS(x) ((x) << S_TRCALLTP2MPS)
-#define F_TRCALLTP2MPS V_TRCALLTP2MPS(1U)
-
-#define S_TRCALLVF 17
-#define V_TRCALLVF(x) ((x) << S_TRCALLVF)
-#define F_TRCALLVF V_TRCALLVF(1U)
-
-#define S_TRC_OFLD_EN 16
-#define V_TRC_OFLD_EN(x) ((x) << S_TRC_OFLD_EN)
-#define F_TRC_OFLD_EN V_TRC_OFLD_EN(1U)
-
-#define S_VFFILTEN 15
-#define V_VFFILTEN(x) ((x) << S_VFFILTEN)
-#define F_VFFILTEN V_VFFILTEN(1U)
-
-#define S_VFFILTMASK 8
-#define M_VFFILTMASK 0x7fU
-#define V_VFFILTMASK(x) ((x) << S_VFFILTMASK)
-#define G_VFFILTMASK(x) (((x) >> S_VFFILTMASK) & M_VFFILTMASK)
-
-#define S_VFFILTVALID 7
-#define V_VFFILTVALID(x) ((x) << S_VFFILTVALID)
-#define F_VFFILTVALID V_VFFILTVALID(1U)
-
-#define S_VFFILTDATA 0
-#define M_VFFILTDATA 0x7fU
-#define V_VFFILTDATA(x) ((x) << S_VFFILTDATA)
-#define G_VFFILTDATA(x) (((x) >> S_VFFILTDATA) & M_VFFILTDATA)
-
-#define A_MPS_TRC_VF_OFF_FILTER_1 0xa014
-#define A_MPS_TRC_VF_OFF_FILTER_2 0xa018
-#define A_MPS_TRC_VF_OFF_FILTER_3 0xa01c
-#define A_MPS_TRC_CGEN 0xa020
-
-#define S_MPSTRCCGEN 0
-#define M_MPSTRCCGEN 0xfU
-#define V_MPSTRCCGEN(x) ((x) << S_MPSTRCCGEN)
-#define G_MPSTRCCGEN(x) (((x) >> S_MPSTRCCGEN) & M_MPSTRCCGEN)
-
#define A_MPS_CLS_CTL 0xd000
#define S_MEMWRITEFAULT 4
@@ -24469,7 +16042,6 @@
#define V_SRAM_VLD(x) ((x) << S_SRAM_VLD)
#define F_SRAM_VLD V_SRAM_VLD(1U)
-#define A_MPS_T5_CLS_SRAM_L 0xe000
#define A_MPS_CLS_SRAM_H 0xe004
#define S_MACPARITY1 9
@@ -24490,7 +16062,6 @@
#define V_PORTMAP(x) ((x) << S_PORTMAP)
#define G_PORTMAP(x) (((x) >> S_PORTMAP) & M_PORTMAP)
-#define A_MPS_T5_CLS_SRAM_H 0xe004
#define A_MPS_CLS_TCAM_Y_L 0xf000
#define A_MPS_CLS_TCAM_Y_H 0xf004
@@ -24586,16 +16157,6 @@
#define V_ALLOC(x) ((x) << S_ALLOC)
#define G_ALLOC(x) (((x) >> S_ALLOC) & M_ALLOC)
-#define S_T5_USED 16
-#define M_T5_USED 0xfffU
-#define V_T5_USED(x) ((x) << S_T5_USED)
-#define G_T5_USED(x) (((x) >> S_T5_USED) & M_T5_USED)
-
-#define S_T5_ALLOC 0
-#define M_T5_ALLOC 0xfffU
-#define V_T5_ALLOC(x) ((x) << S_T5_ALLOC)
-#define G_T5_ALLOC(x) (((x) >> S_T5_ALLOC) & M_T5_ALLOC)
-
#define A_MPS_RX_PG_RSV1 0x11014
#define A_MPS_RX_PG_RSV2 0x11018
#define A_MPS_RX_PG_RSV3 0x1101c
@@ -24623,16 +16184,6 @@
#define V_BORW(x) ((x) << S_BORW)
#define G_BORW(x) (((x) >> S_BORW) & M_BORW)
-#define S_T5_MAX 16
-#define M_T5_MAX 0xfffU
-#define V_T5_MAX(x) ((x) << S_T5_MAX)
-#define G_T5_MAX(x) (((x) >> S_T5_MAX) & M_T5_MAX)
-
-#define S_T5_BORW 0
-#define M_T5_BORW 0xfffU
-#define V_T5_BORW(x) ((x) << S_T5_BORW)
-#define G_T5_BORW(x) (((x) >> S_T5_BORW) & M_T5_BORW)
-
#define A_MPS_RX_PG_SHR_BG1 0x11034
#define A_MPS_RX_PG_SHR_BG2 0x11038
#define A_MPS_RX_PG_SHR_BG3 0x1103c
@@ -24648,16 +16199,6 @@
#define V_SHR_USED(x) ((x) << S_SHR_USED)
#define G_SHR_USED(x) (((x) >> S_SHR_USED) & M_SHR_USED)
-#define S_T5_QUOTA 16
-#define M_T5_QUOTA 0xfffU
-#define V_T5_QUOTA(x) ((x) << S_T5_QUOTA)
-#define G_T5_QUOTA(x) (((x) >> S_T5_QUOTA) & M_T5_QUOTA)
-
-#define S_T5_SHR_USED 0
-#define M_T5_SHR_USED 0xfffU
-#define V_T5_SHR_USED(x) ((x) << S_T5_SHR_USED)
-#define G_T5_SHR_USED(x) (((x) >> S_T5_SHR_USED) & M_T5_SHR_USED)
-
#define A_MPS_RX_PG_SHR1 0x11044
#define A_MPS_RX_PG_HYST_BG0 0x11048
@@ -24666,11 +16207,6 @@
#define V_TH(x) ((x) << S_TH)
#define G_TH(x) (((x) >> S_TH) & M_TH)
-#define S_T5_TH 0
-#define M_T5_TH 0xfffU
-#define V_T5_TH(x) ((x) << S_T5_TH)
-#define G_T5_TH(x) (((x) >> S_T5_TH) & M_T5_TH)
-
#define A_MPS_RX_PG_HYST_BG1 0x1104c
#define A_MPS_RX_PG_HYST_BG2 0x11050
#define A_MPS_RX_PG_HYST_BG3 0x11054
@@ -24859,34 +16395,6 @@
#define V_PG_TH_INT0(x) ((x) << S_PG_TH_INT0)
#define F_PG_TH_INT0 V_PG_TH_INT0(1U)
-#define S_MTU_ERR_INT3 19
-#define V_MTU_ERR_INT3(x) ((x) << S_MTU_ERR_INT3)
-#define F_MTU_ERR_INT3 V_MTU_ERR_INT3(1U)
-
-#define S_MTU_ERR_INT2 18
-#define V_MTU_ERR_INT2(x) ((x) << S_MTU_ERR_INT2)
-#define F_MTU_ERR_INT2 V_MTU_ERR_INT2(1U)
-
-#define S_MTU_ERR_INT1 17
-#define V_MTU_ERR_INT1(x) ((x) << S_MTU_ERR_INT1)
-#define F_MTU_ERR_INT1 V_MTU_ERR_INT1(1U)
-
-#define S_MTU_ERR_INT0 16
-#define V_MTU_ERR_INT0(x) ((x) << S_MTU_ERR_INT0)
-#define F_MTU_ERR_INT0 V_MTU_ERR_INT0(1U)
-
-#define S_SE_CNT_ERR_INT 15
-#define V_SE_CNT_ERR_INT(x) ((x) << S_SE_CNT_ERR_INT)
-#define F_SE_CNT_ERR_INT V_SE_CNT_ERR_INT(1U)
-
-#define S_FRM_ERR_INT 14
-#define V_FRM_ERR_INT(x) ((x) << S_FRM_ERR_INT)
-#define F_FRM_ERR_INT V_FRM_ERR_INT(1U)
-
-#define S_LEN_ERR_INT 13
-#define V_LEN_ERR_INT(x) ((x) << S_LEN_ERR_INT)
-#define F_LEN_ERR_INT V_LEN_ERR_INT(1U)
-
#define A_MPS_RX_FUNC_INT_ENABLE 0x11088
#define A_MPS_RX_PAUSE_GEN_TH_0 0x1108c
@@ -25244,124 +16752,7 @@
#define G_MAC_CNT3(x) (((x) >> S_MAC_CNT3) & M_MAC_CNT3)
#define A_MPS_RX_SPARE 0x11190
-#define A_MPS_RX_PTP_ETYPE 0x11194
-#define S_PETYPE2 16
-#define M_PETYPE2 0xffffU
-#define V_PETYPE2(x) ((x) << S_PETYPE2)
-#define G_PETYPE2(x) (((x) >> S_PETYPE2) & M_PETYPE2)
-
-#define S_PETYPE1 0
-#define M_PETYPE1 0xffffU
-#define V_PETYPE1(x) ((x) << S_PETYPE1)
-#define G_PETYPE1(x) (((x) >> S_PETYPE1) & M_PETYPE1)
-
-#define A_MPS_RX_PTP_TCP 0x11198
-
-#define S_PTCPORT2 16
-#define M_PTCPORT2 0xffffU
-#define V_PTCPORT2(x) ((x) << S_PTCPORT2)
-#define G_PTCPORT2(x) (((x) >> S_PTCPORT2) & M_PTCPORT2)
-
-#define S_PTCPORT1 0
-#define M_PTCPORT1 0xffffU
-#define V_PTCPORT1(x) ((x) << S_PTCPORT1)
-#define G_PTCPORT1(x) (((x) >> S_PTCPORT1) & M_PTCPORT1)
-
-#define A_MPS_RX_PTP_UDP 0x1119c
-
-#define S_PUDPORT2 16
-#define M_PUDPORT2 0xffffU
-#define V_PUDPORT2(x) ((x) << S_PUDPORT2)
-#define G_PUDPORT2(x) (((x) >> S_PUDPORT2) & M_PUDPORT2)
-
-#define S_PUDPORT1 0
-#define M_PUDPORT1 0xffffU
-#define V_PUDPORT1(x) ((x) << S_PUDPORT1)
-#define G_PUDPORT1(x) (((x) >> S_PUDPORT1) & M_PUDPORT1)
-
-#define A_MPS_RX_PTP_CTL 0x111a0
-
-#define S_MIN_PTP_SPACE 24
-#define M_MIN_PTP_SPACE 0x7fU
-#define V_MIN_PTP_SPACE(x) ((x) << S_MIN_PTP_SPACE)
-#define G_MIN_PTP_SPACE(x) (((x) >> S_MIN_PTP_SPACE) & M_MIN_PTP_SPACE)
-
-#define S_PUDP2EN 20
-#define M_PUDP2EN 0xfU
-#define V_PUDP2EN(x) ((x) << S_PUDP2EN)
-#define G_PUDP2EN(x) (((x) >> S_PUDP2EN) & M_PUDP2EN)
-
-#define S_PUDP1EN 16
-#define M_PUDP1EN 0xfU
-#define V_PUDP1EN(x) ((x) << S_PUDP1EN)
-#define G_PUDP1EN(x) (((x) >> S_PUDP1EN) & M_PUDP1EN)
-
-#define S_PTCP2EN 12
-#define M_PTCP2EN 0xfU
-#define V_PTCP2EN(x) ((x) << S_PTCP2EN)
-#define G_PTCP2EN(x) (((x) >> S_PTCP2EN) & M_PTCP2EN)
-
-#define S_PTCP1EN 8
-#define M_PTCP1EN 0xfU
-#define V_PTCP1EN(x) ((x) << S_PTCP1EN)
-#define G_PTCP1EN(x) (((x) >> S_PTCP1EN) & M_PTCP1EN)
-
-#define S_PETYPE2EN 4
-#define M_PETYPE2EN 0xfU
-#define V_PETYPE2EN(x) ((x) << S_PETYPE2EN)
-#define G_PETYPE2EN(x) (((x) >> S_PETYPE2EN) & M_PETYPE2EN)
-
-#define S_PETYPE1EN 0
-#define M_PETYPE1EN 0xfU
-#define V_PETYPE1EN(x) ((x) << S_PETYPE1EN)
-#define G_PETYPE1EN(x) (((x) >> S_PETYPE1EN) & M_PETYPE1EN)
-
-#define A_MPS_RX_PAUSE_GEN_TH_0_0 0x111a4
-#define A_MPS_RX_PAUSE_GEN_TH_0_1 0x111a8
-#define A_MPS_RX_PAUSE_GEN_TH_0_2 0x111ac
-#define A_MPS_RX_PAUSE_GEN_TH_0_3 0x111b0
-#define A_MPS_RX_PAUSE_GEN_TH_1_0 0x111b4
-#define A_MPS_RX_PAUSE_GEN_TH_1_1 0x111b8
-#define A_MPS_RX_PAUSE_GEN_TH_1_2 0x111bc
-#define A_MPS_RX_PAUSE_GEN_TH_1_3 0x111c0
-#define A_MPS_RX_PAUSE_GEN_TH_2_0 0x111c4
-#define A_MPS_RX_PAUSE_GEN_TH_2_1 0x111c8
-#define A_MPS_RX_PAUSE_GEN_TH_2_2 0x111cc
-#define A_MPS_RX_PAUSE_GEN_TH_2_3 0x111d0
-#define A_MPS_RX_PAUSE_GEN_TH_3_0 0x111d4
-#define A_MPS_RX_PAUSE_GEN_TH_3_1 0x111d8
-#define A_MPS_RX_PAUSE_GEN_TH_3_2 0x111dc
-#define A_MPS_RX_PAUSE_GEN_TH_3_3 0x111e0
-#define A_MPS_RX_MAC_CLS_DROP_CNT0 0x111e4
-#define A_MPS_RX_MAC_CLS_DROP_CNT1 0x111e8
-#define A_MPS_RX_MAC_CLS_DROP_CNT2 0x111ec
-#define A_MPS_RX_MAC_CLS_DROP_CNT3 0x111f0
-#define A_MPS_RX_LPBK_CLS_DROP_CNT0 0x111f4
-#define A_MPS_RX_LPBK_CLS_DROP_CNT1 0x111f8
-#define A_MPS_RX_LPBK_CLS_DROP_CNT2 0x111fc
-#define A_MPS_RX_LPBK_CLS_DROP_CNT3 0x11200
-#define A_MPS_RX_CGEN 0x11204
-
-#define S_MPS_RX_CGEN_NCSI 12
-#define V_MPS_RX_CGEN_NCSI(x) ((x) << S_MPS_RX_CGEN_NCSI)
-#define F_MPS_RX_CGEN_NCSI V_MPS_RX_CGEN_NCSI(1U)
-
-#define S_MPS_RX_CGEN_OUT 8
-#define M_MPS_RX_CGEN_OUT 0xfU
-#define V_MPS_RX_CGEN_OUT(x) ((x) << S_MPS_RX_CGEN_OUT)
-#define G_MPS_RX_CGEN_OUT(x) (((x) >> S_MPS_RX_CGEN_OUT) & M_MPS_RX_CGEN_OUT)
-
-#define S_MPS_RX_CGEN_LPBK_IN 4
-#define M_MPS_RX_CGEN_LPBK_IN 0xfU
-#define V_MPS_RX_CGEN_LPBK_IN(x) ((x) << S_MPS_RX_CGEN_LPBK_IN)
-#define G_MPS_RX_CGEN_LPBK_IN(x) (((x) >> S_MPS_RX_CGEN_LPBK_IN) & M_MPS_RX_CGEN_LPBK_IN)
-
-#define S_MPS_RX_CGEN_MAC_IN 0
-#define M_MPS_RX_CGEN_MAC_IN 0xfU
-#define V_MPS_RX_CGEN_MAC_IN(x) ((x) << S_MPS_RX_CGEN_MAC_IN)
-#define G_MPS_RX_CGEN_MAC_IN(x) (((x) >> S_MPS_RX_CGEN_MAC_IN) & M_MPS_RX_CGEN_MAC_IN)
-
/* registers for module CPL_SWITCH */
#define CPL_SWITCH_BASE_ADDR 0x19040
@@ -25396,10 +16787,6 @@
#define V_CIM_ENABLE(x) ((x) << S_CIM_ENABLE)
#define F_CIM_ENABLE V_CIM_ENABLE(1U)
-#define S_CIM_SPLIT_ENABLE 6
-#define V_CIM_SPLIT_ENABLE(x) ((x) << S_CIM_SPLIT_ENABLE)
-#define F_CIM_SPLIT_ENABLE V_CIM_SPLIT_ENABLE(1U)
-
#define A_CPL_SWITCH_TBL_IDX 0x19044
#define S_SWITCH_TBL_IDX 0
@@ -25446,14 +16833,6 @@
#define V_ZERO_SWITCH_ERROR(x) ((x) << S_ZERO_SWITCH_ERROR)
#define F_ZERO_SWITCH_ERROR V_ZERO_SWITCH_ERROR(1U)
-#define S_PERR_CPL_128TO128_1 7
-#define V_PERR_CPL_128TO128_1(x) ((x) << S_PERR_CPL_128TO128_1)
-#define F_PERR_CPL_128TO128_1 V_PERR_CPL_128TO128_1(1U)
-
-#define S_PERR_CPL_128TO128_0 6
-#define V_PERR_CPL_128TO128_0(x) ((x) << S_PERR_CPL_128TO128_0)
-#define F_PERR_CPL_128TO128_0 V_PERR_CPL_128TO128_0(1U)
-
#define A_CPL_INTR_CAUSE 0x19054
#define A_CPL_MAP_TBL_IDX 0x19058
@@ -25462,10 +16841,6 @@
#define V_MAP_TBL_IDX(x) ((x) << S_MAP_TBL_IDX)
#define G_MAP_TBL_IDX(x) (((x) >> S_MAP_TBL_IDX) & M_MAP_TBL_IDX)
-#define S_CIM_SPLIT_OPCODE_PROGRAM 8
-#define V_CIM_SPLIT_OPCODE_PROGRAM(x) ((x) << S_CIM_SPLIT_OPCODE_PROGRAM)
-#define F_CIM_SPLIT_OPCODE_PROGRAM V_CIM_SPLIT_OPCODE_PROGRAM(1U)
-
#define A_CPL_MAP_TBL_DATA 0x1905c
#define S_MAP_TBL_DATA 0
@@ -25819,18 +17194,6 @@
#define V_SLVFIFOPERREN(x) ((x) << S_SLVFIFOPERREN)
#define F_SLVFIFOPERREN V_SLVFIFOPERREN(1U)
-#define S_MSTTXFIFO 21
-#define V_MSTTXFIFO(x) ((x) << S_MSTTXFIFO)
-#define F_MSTTXFIFO V_MSTTXFIFO(1U)
-
-#define S_MSTRXFIFO 19
-#define V_MSTRXFIFO(x) ((x) << S_MSTRXFIFO)
-#define F_MSTRXFIFO V_MSTRXFIFO(1U)
-
-#define S_SLVFIFO 18
-#define V_SLVFIFO(x) ((x) << S_SLVFIFO)
-#define F_SLVFIFO V_SLVFIFO(1U)
-
#define A_SMB_PERR_INJ 0x1909c
#define S_MSTTXINJDATAERR 3
@@ -26018,20 +17381,6 @@
#define V_MICROCNTCLKCFG(x) ((x) << S_MICROCNTCLKCFG)
#define G_MICROCNTCLKCFG(x) (((x) >> S_MICROCNTCLKCFG) & M_MICROCNTCLKCFG)
-#define A_SMB_CTL_STATUS 0x190e8
-
-#define S_MSTBUSBUSY 2
-#define V_MSTBUSBUSY(x) ((x) << S_MSTBUSBUSY)
-#define F_MSTBUSBUSY V_MSTBUSBUSY(1U)
-
-#define S_SLVBUSBUSY 1
-#define V_SLVBUSBUSY(x) ((x) << S_SLVBUSBUSY)
-#define F_SLVBUSBUSY V_SLVBUSBUSY(1U)
-
-#define S_BUSBUSY 0
-#define V_BUSBUSY(x) ((x) << S_BUSBUSY)
-#define F_BUSBUSY V_BUSBUSY(1U)
-
/* registers for module I2CM */
#define I2CM_BASE_ADDR 0x190f0
@@ -26042,11 +17391,6 @@
#define V_I2C_CLKDIV(x) ((x) << S_I2C_CLKDIV)
#define G_I2C_CLKDIV(x) (((x) >> S_I2C_CLKDIV) & M_I2C_CLKDIV)
-#define S_I2C_CLKDIV16B 0
-#define M_I2C_CLKDIV16B 0xffffU
-#define V_I2C_CLKDIV16B(x) ((x) << S_I2C_CLKDIV16B)
-#define G_I2C_CLKDIV16B(x) (((x) >> S_I2C_CLKDIV16B) & M_I2C_CLKDIV16B)
-
#define A_I2CM_DATA 0x190f4
#define S_I2C_DATA 0
@@ -26192,46 +17536,6 @@
#define V_INITPOWERMODE(x) ((x) << S_INITPOWERMODE)
#define G_INITPOWERMODE(x) (((x) >> S_INITPOWERMODE) & M_INITPOWERMODE)
-#define S_SGE_PART_CGEN 19
-#define V_SGE_PART_CGEN(x) ((x) << S_SGE_PART_CGEN)
-#define F_SGE_PART_CGEN V_SGE_PART_CGEN(1U)
-
-#define S_PDP_PART_CGEN 18
-#define V_PDP_PART_CGEN(x) ((x) << S_PDP_PART_CGEN)
-#define F_PDP_PART_CGEN V_PDP_PART_CGEN(1U)
-
-#define S_TP_PART_CGEN 17
-#define V_TP_PART_CGEN(x) ((x) << S_TP_PART_CGEN)
-#define F_TP_PART_CGEN V_TP_PART_CGEN(1U)
-
-#define S_EDC0_PART_CGEN 16
-#define V_EDC0_PART_CGEN(x) ((x) << S_EDC0_PART_CGEN)
-#define F_EDC0_PART_CGEN V_EDC0_PART_CGEN(1U)
-
-#define S_EDC1_PART_CGEN 15
-#define V_EDC1_PART_CGEN(x) ((x) << S_EDC1_PART_CGEN)
-#define F_EDC1_PART_CGEN V_EDC1_PART_CGEN(1U)
-
-#define S_LE_PART_CGEN 14
-#define V_LE_PART_CGEN(x) ((x) << S_LE_PART_CGEN)
-#define F_LE_PART_CGEN V_LE_PART_CGEN(1U)
-
-#define S_MA_PART_CGEN 13
-#define V_MA_PART_CGEN(x) ((x) << S_MA_PART_CGEN)
-#define F_MA_PART_CGEN V_MA_PART_CGEN(1U)
-
-#define S_MC0_PART_CGEN 12
-#define V_MC0_PART_CGEN(x) ((x) << S_MC0_PART_CGEN)
-#define F_MC0_PART_CGEN V_MC0_PART_CGEN(1U)
-
-#define S_MC1_PART_CGEN 11
-#define V_MC1_PART_CGEN(x) ((x) << S_MC1_PART_CGEN)
-#define F_MC1_PART_CGEN V_MC1_PART_CGEN(1U)
-
-#define S_PCIE_PART_CGEN 10
-#define V_PCIE_PART_CGEN(x) ((x) << S_PCIE_PART_CGEN)
-#define F_PCIE_PART_CGEN V_PCIE_PART_CGEN(1U)
-
#define A_PMU_SLEEPMODE_WAKEUP 0x19124
#define S_HWWAKEUPEN 5
@@ -26258,10 +17562,6 @@
#define V_WAKEUP(x) ((x) << S_WAKEUP)
#define F_WAKEUP V_WAKEUP(1U)
-#define S_GLOBALDEEPSLEEPEN 6
-#define V_GLOBALDEEPSLEEPEN(x) ((x) << S_GLOBALDEEPSLEEPEN)
-#define F_GLOBALDEEPSLEEPEN V_GLOBALDEEPSLEEPEN(1U)
-
/* registers for module ULP_RX */
#define ULP_RX_BASE_ADDR 0x19150
@@ -26356,86 +17656,78 @@
#define V_ENABLE_AF_0(x) ((x) << S_ENABLE_AF_0)
#define F_ENABLE_AF_0 V_ENABLE_AF_0(1U)
-#define S_ENABLE_DDPDF_1 17
+#define S_ENABLE_PCMDF_1 17
+#define V_ENABLE_PCMDF_1(x) ((x) << S_ENABLE_PCMDF_1)
+#define F_ENABLE_PCMDF_1 V_ENABLE_PCMDF_1(1U)
+
+#define S_ENABLE_MPARC_1 16
+#define V_ENABLE_MPARC_1(x) ((x) << S_ENABLE_MPARC_1)
+#define F_ENABLE_MPARC_1 V_ENABLE_MPARC_1(1U)
+
+#define S_ENABLE_MPARF_1 15
+#define V_ENABLE_MPARF_1(x) ((x) << S_ENABLE_MPARF_1)
+#define F_ENABLE_MPARF_1 V_ENABLE_MPARF_1(1U)
+
+#define S_ENABLE_DDPCF_1 14
+#define V_ENABLE_DDPCF_1(x) ((x) << S_ENABLE_DDPCF_1)
+#define F_ENABLE_DDPCF_1 V_ENABLE_DDPCF_1(1U)
+
+#define S_ENABLE_TPTCF_1 13
+#define V_ENABLE_TPTCF_1(x) ((x) << S_ENABLE_TPTCF_1)
+#define F_ENABLE_TPTCF_1 V_ENABLE_TPTCF_1(1U)
+
+#define S_ENABLE_PCMDF_0 12
+#define V_ENABLE_PCMDF_0(x) ((x) << S_ENABLE_PCMDF_0)
+#define F_ENABLE_PCMDF_0 V_ENABLE_PCMDF_0(1U)
+
+#define S_ENABLE_MPARC_0 11
+#define V_ENABLE_MPARC_0(x) ((x) << S_ENABLE_MPARC_0)
+#define F_ENABLE_MPARC_0 V_ENABLE_MPARC_0(1U)
+
+#define S_ENABLE_MPARF_0 10
+#define V_ENABLE_MPARF_0(x) ((x) << S_ENABLE_MPARF_0)
+#define F_ENABLE_MPARF_0 V_ENABLE_MPARF_0(1U)
+
+#define S_ENABLE_DDPCF_0 9
+#define V_ENABLE_DDPCF_0(x) ((x) << S_ENABLE_DDPCF_0)
+#define F_ENABLE_DDPCF_0 V_ENABLE_DDPCF_0(1U)
+
+#define S_ENABLE_TPTCF_0 8
+#define V_ENABLE_TPTCF_0(x) ((x) << S_ENABLE_TPTCF_0)
+#define F_ENABLE_TPTCF_0 V_ENABLE_TPTCF_0(1U)
+
+#define S_ENABLE_DDPDF_1 7
#define V_ENABLE_DDPDF_1(x) ((x) << S_ENABLE_DDPDF_1)
#define F_ENABLE_DDPDF_1 V_ENABLE_DDPDF_1(1U)
-#define S_ENABLE_DDPMF_1 16
+#define S_ENABLE_DDPMF_1 6
#define V_ENABLE_DDPMF_1(x) ((x) << S_ENABLE_DDPMF_1)
#define F_ENABLE_DDPMF_1 V_ENABLE_DDPMF_1(1U)
-#define S_ENABLE_MEMRF_1 15
+#define S_ENABLE_MEMRF_1 5
#define V_ENABLE_MEMRF_1(x) ((x) << S_ENABLE_MEMRF_1)
#define F_ENABLE_MEMRF_1 V_ENABLE_MEMRF_1(1U)
-#define S_ENABLE_PRSDF_1 14
+#define S_ENABLE_PRSDF_1 4
#define V_ENABLE_PRSDF_1(x) ((x) << S_ENABLE_PRSDF_1)
#define F_ENABLE_PRSDF_1 V_ENABLE_PRSDF_1(1U)
-#define S_ENABLE_DDPDF_0 13
+#define S_ENABLE_DDPDF_0 3
#define V_ENABLE_DDPDF_0(x) ((x) << S_ENABLE_DDPDF_0)
#define F_ENABLE_DDPDF_0 V_ENABLE_DDPDF_0(1U)
-#define S_ENABLE_DDPMF_0 12
+#define S_ENABLE_DDPMF_0 2
#define V_ENABLE_DDPMF_0(x) ((x) << S_ENABLE_DDPMF_0)
#define F_ENABLE_DDPMF_0 V_ENABLE_DDPMF_0(1U)
-#define S_ENABLE_MEMRF_0 11
+#define S_ENABLE_MEMRF_0 1
#define V_ENABLE_MEMRF_0(x) ((x) << S_ENABLE_MEMRF_0)
#define F_ENABLE_MEMRF_0 V_ENABLE_MEMRF_0(1U)
-#define S_ENABLE_PRSDF_0 10
+#define S_ENABLE_PRSDF_0 0
#define V_ENABLE_PRSDF_0(x) ((x) << S_ENABLE_PRSDF_0)
#define F_ENABLE_PRSDF_0 V_ENABLE_PRSDF_0(1U)
-#define S_ENABLE_PCMDF_1 9
-#define V_ENABLE_PCMDF_1(x) ((x) << S_ENABLE_PCMDF_1)
-#define F_ENABLE_PCMDF_1 V_ENABLE_PCMDF_1(1U)
-
-#define S_ENABLE_TPTCF_1 8
-#define V_ENABLE_TPTCF_1(x) ((x) << S_ENABLE_TPTCF_1)
-#define F_ENABLE_TPTCF_1 V_ENABLE_TPTCF_1(1U)
-
-#define S_ENABLE_DDPCF_1 7
-#define V_ENABLE_DDPCF_1(x) ((x) << S_ENABLE_DDPCF_1)
-#define F_ENABLE_DDPCF_1 V_ENABLE_DDPCF_1(1U)
-
-#define S_ENABLE_MPARF_1 6
-#define V_ENABLE_MPARF_1(x) ((x) << S_ENABLE_MPARF_1)
-#define F_ENABLE_MPARF_1 V_ENABLE_MPARF_1(1U)
-
-#define S_ENABLE_MPARC_1 5
-#define V_ENABLE_MPARC_1(x) ((x) << S_ENABLE_MPARC_1)
-#define F_ENABLE_MPARC_1 V_ENABLE_MPARC_1(1U)
-
-#define S_ENABLE_PCMDF_0 4
-#define V_ENABLE_PCMDF_0(x) ((x) << S_ENABLE_PCMDF_0)
-#define F_ENABLE_PCMDF_0 V_ENABLE_PCMDF_0(1U)
-
-#define S_ENABLE_TPTCF_0 3
-#define V_ENABLE_TPTCF_0(x) ((x) << S_ENABLE_TPTCF_0)
-#define F_ENABLE_TPTCF_0 V_ENABLE_TPTCF_0(1U)
-
-#define S_ENABLE_DDPCF_0 2
-#define V_ENABLE_DDPCF_0(x) ((x) << S_ENABLE_DDPCF_0)
-#define F_ENABLE_DDPCF_0 V_ENABLE_DDPCF_0(1U)
-
-#define S_ENABLE_MPARF_0 1
-#define V_ENABLE_MPARF_0(x) ((x) << S_ENABLE_MPARF_0)
-#define F_ENABLE_MPARF_0 V_ENABLE_MPARF_0(1U)
-
-#define S_ENABLE_MPARC_0 0
-#define V_ENABLE_MPARC_0(x) ((x) << S_ENABLE_MPARC_0)
-#define F_ENABLE_MPARC_0 V_ENABLE_MPARC_0(1U)
-
-#define S_SE_CNT_MISMATCH_1 26
-#define V_SE_CNT_MISMATCH_1(x) ((x) << S_SE_CNT_MISMATCH_1)
-#define F_SE_CNT_MISMATCH_1 V_SE_CNT_MISMATCH_1(1U)
-
-#define S_SE_CNT_MISMATCH_0 25
-#define V_SE_CNT_MISMATCH_0(x) ((x) << S_SE_CNT_MISMATCH_0)
-#define F_SE_CNT_MISMATCH_0 V_SE_CNT_MISMATCH_0(1U)
-
#define A_ULP_RX_INT_CAUSE 0x19158
#define S_CAUSE_CTX_1 24
@@ -26466,78 +17758,78 @@
#define V_CAUSE_AF_0(x) ((x) << S_CAUSE_AF_0)
#define F_CAUSE_AF_0 V_CAUSE_AF_0(1U)
-#define S_CAUSE_DDPDF_1 17
+#define S_CAUSE_PCMDF_1 17
+#define V_CAUSE_PCMDF_1(x) ((x) << S_CAUSE_PCMDF_1)
+#define F_CAUSE_PCMDF_1 V_CAUSE_PCMDF_1(1U)
+
+#define S_CAUSE_MPARC_1 16
+#define V_CAUSE_MPARC_1(x) ((x) << S_CAUSE_MPARC_1)
+#define F_CAUSE_MPARC_1 V_CAUSE_MPARC_1(1U)
+
+#define S_CAUSE_MPARF_1 15
+#define V_CAUSE_MPARF_1(x) ((x) << S_CAUSE_MPARF_1)
+#define F_CAUSE_MPARF_1 V_CAUSE_MPARF_1(1U)
+
+#define S_CAUSE_DDPCF_1 14
+#define V_CAUSE_DDPCF_1(x) ((x) << S_CAUSE_DDPCF_1)
+#define F_CAUSE_DDPCF_1 V_CAUSE_DDPCF_1(1U)
+
+#define S_CAUSE_TPTCF_1 13
+#define V_CAUSE_TPTCF_1(x) ((x) << S_CAUSE_TPTCF_1)
+#define F_CAUSE_TPTCF_1 V_CAUSE_TPTCF_1(1U)
+
+#define S_CAUSE_PCMDF_0 12
+#define V_CAUSE_PCMDF_0(x) ((x) << S_CAUSE_PCMDF_0)
+#define F_CAUSE_PCMDF_0 V_CAUSE_PCMDF_0(1U)
+
+#define S_CAUSE_MPARC_0 11
+#define V_CAUSE_MPARC_0(x) ((x) << S_CAUSE_MPARC_0)
+#define F_CAUSE_MPARC_0 V_CAUSE_MPARC_0(1U)
+
+#define S_CAUSE_MPARF_0 10
+#define V_CAUSE_MPARF_0(x) ((x) << S_CAUSE_MPARF_0)
+#define F_CAUSE_MPARF_0 V_CAUSE_MPARF_0(1U)
+
+#define S_CAUSE_DDPCF_0 9
+#define V_CAUSE_DDPCF_0(x) ((x) << S_CAUSE_DDPCF_0)
+#define F_CAUSE_DDPCF_0 V_CAUSE_DDPCF_0(1U)
+
+#define S_CAUSE_TPTCF_0 8
+#define V_CAUSE_TPTCF_0(x) ((x) << S_CAUSE_TPTCF_0)
+#define F_CAUSE_TPTCF_0 V_CAUSE_TPTCF_0(1U)
+
+#define S_CAUSE_DDPDF_1 7
#define V_CAUSE_DDPDF_1(x) ((x) << S_CAUSE_DDPDF_1)
#define F_CAUSE_DDPDF_1 V_CAUSE_DDPDF_1(1U)
-#define S_CAUSE_DDPMF_1 16
+#define S_CAUSE_DDPMF_1 6
#define V_CAUSE_DDPMF_1(x) ((x) << S_CAUSE_DDPMF_1)
#define F_CAUSE_DDPMF_1 V_CAUSE_DDPMF_1(1U)
-#define S_CAUSE_MEMRF_1 15
+#define S_CAUSE_MEMRF_1 5
#define V_CAUSE_MEMRF_1(x) ((x) << S_CAUSE_MEMRF_1)
#define F_CAUSE_MEMRF_1 V_CAUSE_MEMRF_1(1U)
-#define S_CAUSE_PRSDF_1 14
+#define S_CAUSE_PRSDF_1 4
#define V_CAUSE_PRSDF_1(x) ((x) << S_CAUSE_PRSDF_1)
#define F_CAUSE_PRSDF_1 V_CAUSE_PRSDF_1(1U)
-#define S_CAUSE_DDPDF_0 13
+#define S_CAUSE_DDPDF_0 3
#define V_CAUSE_DDPDF_0(x) ((x) << S_CAUSE_DDPDF_0)
#define F_CAUSE_DDPDF_0 V_CAUSE_DDPDF_0(1U)
-#define S_CAUSE_DDPMF_0 12
+#define S_CAUSE_DDPMF_0 2
#define V_CAUSE_DDPMF_0(x) ((x) << S_CAUSE_DDPMF_0)
#define F_CAUSE_DDPMF_0 V_CAUSE_DDPMF_0(1U)
-#define S_CAUSE_MEMRF_0 11
+#define S_CAUSE_MEMRF_0 1
#define V_CAUSE_MEMRF_0(x) ((x) << S_CAUSE_MEMRF_0)
#define F_CAUSE_MEMRF_0 V_CAUSE_MEMRF_0(1U)
-#define S_CAUSE_PRSDF_0 10
+#define S_CAUSE_PRSDF_0 0
#define V_CAUSE_PRSDF_0(x) ((x) << S_CAUSE_PRSDF_0)
#define F_CAUSE_PRSDF_0 V_CAUSE_PRSDF_0(1U)
-#define S_CAUSE_PCMDF_1 9
-#define V_CAUSE_PCMDF_1(x) ((x) << S_CAUSE_PCMDF_1)
-#define F_CAUSE_PCMDF_1 V_CAUSE_PCMDF_1(1U)
-
-#define S_CAUSE_TPTCF_1 8
-#define V_CAUSE_TPTCF_1(x) ((x) << S_CAUSE_TPTCF_1)
-#define F_CAUSE_TPTCF_1 V_CAUSE_TPTCF_1(1U)
-
-#define S_CAUSE_DDPCF_1 7
-#define V_CAUSE_DDPCF_1(x) ((x) << S_CAUSE_DDPCF_1)
-#define F_CAUSE_DDPCF_1 V_CAUSE_DDPCF_1(1U)
-
-#define S_CAUSE_MPARF_1 6
-#define V_CAUSE_MPARF_1(x) ((x) << S_CAUSE_MPARF_1)
-#define F_CAUSE_MPARF_1 V_CAUSE_MPARF_1(1U)
-
-#define S_CAUSE_MPARC_1 5
-#define V_CAUSE_MPARC_1(x) ((x) << S_CAUSE_MPARC_1)
-#define F_CAUSE_MPARC_1 V_CAUSE_MPARC_1(1U)
-
-#define S_CAUSE_PCMDF_0 4
-#define V_CAUSE_PCMDF_0(x) ((x) << S_CAUSE_PCMDF_0)
-#define F_CAUSE_PCMDF_0 V_CAUSE_PCMDF_0(1U)
-
-#define S_CAUSE_TPTCF_0 3
-#define V_CAUSE_TPTCF_0(x) ((x) << S_CAUSE_TPTCF_0)
-#define F_CAUSE_TPTCF_0 V_CAUSE_TPTCF_0(1U)
-
-#define S_CAUSE_DDPCF_0 2
-#define V_CAUSE_DDPCF_0(x) ((x) << S_CAUSE_DDPCF_0)
-#define F_CAUSE_DDPCF_0 V_CAUSE_DDPCF_0(1U)
-
-#define S_CAUSE_MPARF_0 1
-#define V_CAUSE_MPARF_0(x) ((x) << S_CAUSE_MPARF_0)
-#define F_CAUSE_MPARF_0 V_CAUSE_MPARF_0(1U)
-
-#define S_CAUSE_MPARC_0 0
-#define V_CAUSE_MPARC_0(x) ((x) << S_CAUSE_MPARC_0)
-#define F_CAUSE_MPARC_0 V_CAUSE_MPARC_0(1U)
-
#define A_ULP_RX_ISCSI_LLIMIT 0x1915c
#define S_ISCSILLIMIT 6
@@ -26611,115 +17903,6 @@
#define A_ULP_RX_PBL_ULIMIT 0x19190
#define A_ULP_RX_CTX_BASE 0x19194
#define A_ULP_RX_PERR_ENABLE 0x1919c
-
-#define S_PERR_ENABLE_FF 22
-#define V_PERR_ENABLE_FF(x) ((x) << S_PERR_ENABLE_FF)
-#define F_PERR_ENABLE_FF V_PERR_ENABLE_FF(1U)
-
-#define S_PERR_ENABLE_APF_1 21
-#define V_PERR_ENABLE_APF_1(x) ((x) << S_PERR_ENABLE_APF_1)
-#define F_PERR_ENABLE_APF_1 V_PERR_ENABLE_APF_1(1U)
-
-#define S_PERR_ENABLE_APF_0 20
-#define V_PERR_ENABLE_APF_0(x) ((x) << S_PERR_ENABLE_APF_0)
-#define F_PERR_ENABLE_APF_0 V_PERR_ENABLE_APF_0(1U)
-
-#define S_PERR_ENABLE_AF_1 19
-#define V_PERR_ENABLE_AF_1(x) ((x) << S_PERR_ENABLE_AF_1)
-#define F_PERR_ENABLE_AF_1 V_PERR_ENABLE_AF_1(1U)
-
-#define S_PERR_ENABLE_AF_0 18
-#define V_PERR_ENABLE_AF_0(x) ((x) << S_PERR_ENABLE_AF_0)
-#define F_PERR_ENABLE_AF_0 V_PERR_ENABLE_AF_0(1U)
-
-#define S_PERR_ENABLE_DDPDF_1 17
-#define V_PERR_ENABLE_DDPDF_1(x) ((x) << S_PERR_ENABLE_DDPDF_1)
-#define F_PERR_ENABLE_DDPDF_1 V_PERR_ENABLE_DDPDF_1(1U)
-
-#define S_PERR_ENABLE_DDPMF_1 16
-#define V_PERR_ENABLE_DDPMF_1(x) ((x) << S_PERR_ENABLE_DDPMF_1)
-#define F_PERR_ENABLE_DDPMF_1 V_PERR_ENABLE_DDPMF_1(1U)
-
-#define S_PERR_ENABLE_MEMRF_1 15
-#define V_PERR_ENABLE_MEMRF_1(x) ((x) << S_PERR_ENABLE_MEMRF_1)
-#define F_PERR_ENABLE_MEMRF_1 V_PERR_ENABLE_MEMRF_1(1U)
-
-#define S_PERR_ENABLE_PRSDF_1 14
-#define V_PERR_ENABLE_PRSDF_1(x) ((x) << S_PERR_ENABLE_PRSDF_1)
-#define F_PERR_ENABLE_PRSDF_1 V_PERR_ENABLE_PRSDF_1(1U)
-
-#define S_PERR_ENABLE_DDPDF_0 13
-#define V_PERR_ENABLE_DDPDF_0(x) ((x) << S_PERR_ENABLE_DDPDF_0)
-#define F_PERR_ENABLE_DDPDF_0 V_PERR_ENABLE_DDPDF_0(1U)
-
-#define S_PERR_ENABLE_DDPMF_0 12
-#define V_PERR_ENABLE_DDPMF_0(x) ((x) << S_PERR_ENABLE_DDPMF_0)
-#define F_PERR_ENABLE_DDPMF_0 V_PERR_ENABLE_DDPMF_0(1U)
-
-#define S_PERR_ENABLE_MEMRF_0 11
-#define V_PERR_ENABLE_MEMRF_0(x) ((x) << S_PERR_ENABLE_MEMRF_0)
-#define F_PERR_ENABLE_MEMRF_0 V_PERR_ENABLE_MEMRF_0(1U)
-
-#define S_PERR_ENABLE_PRSDF_0 10
-#define V_PERR_ENABLE_PRSDF_0(x) ((x) << S_PERR_ENABLE_PRSDF_0)
-#define F_PERR_ENABLE_PRSDF_0 V_PERR_ENABLE_PRSDF_0(1U)
-
-#define S_PERR_ENABLE_PCMDF_1 9
-#define V_PERR_ENABLE_PCMDF_1(x) ((x) << S_PERR_ENABLE_PCMDF_1)
-#define F_PERR_ENABLE_PCMDF_1 V_PERR_ENABLE_PCMDF_1(1U)
-
-#define S_PERR_ENABLE_TPTCF_1 8
-#define V_PERR_ENABLE_TPTCF_1(x) ((x) << S_PERR_ENABLE_TPTCF_1)
-#define F_PERR_ENABLE_TPTCF_1 V_PERR_ENABLE_TPTCF_1(1U)
-
-#define S_PERR_ENABLE_DDPCF_1 7
-#define V_PERR_ENABLE_DDPCF_1(x) ((x) << S_PERR_ENABLE_DDPCF_1)
-#define F_PERR_ENABLE_DDPCF_1 V_PERR_ENABLE_DDPCF_1(1U)
-
-#define S_PERR_ENABLE_MPARF_1 6
-#define V_PERR_ENABLE_MPARF_1(x) ((x) << S_PERR_ENABLE_MPARF_1)
-#define F_PERR_ENABLE_MPARF_1 V_PERR_ENABLE_MPARF_1(1U)
-
-#define S_PERR_ENABLE_MPARC_1 5
-#define V_PERR_ENABLE_MPARC_1(x) ((x) << S_PERR_ENABLE_MPARC_1)
-#define F_PERR_ENABLE_MPARC_1 V_PERR_ENABLE_MPARC_1(1U)
-
-#define S_PERR_ENABLE_PCMDF_0 4
-#define V_PERR_ENABLE_PCMDF_0(x) ((x) << S_PERR_ENABLE_PCMDF_0)
-#define F_PERR_ENABLE_PCMDF_0 V_PERR_ENABLE_PCMDF_0(1U)
-
-#define S_PERR_ENABLE_TPTCF_0 3
-#define V_PERR_ENABLE_TPTCF_0(x) ((x) << S_PERR_ENABLE_TPTCF_0)
-#define F_PERR_ENABLE_TPTCF_0 V_PERR_ENABLE_TPTCF_0(1U)
-
-#define S_PERR_ENABLE_DDPCF_0 2
-#define V_PERR_ENABLE_DDPCF_0(x) ((x) << S_PERR_ENABLE_DDPCF_0)
-#define F_PERR_ENABLE_DDPCF_0 V_PERR_ENABLE_DDPCF_0(1U)
-
-#define S_PERR_ENABLE_MPARF_0 1
-#define V_PERR_ENABLE_MPARF_0(x) ((x) << S_PERR_ENABLE_MPARF_0)
-#define F_PERR_ENABLE_MPARF_0 V_PERR_ENABLE_MPARF_0(1U)
-
-#define S_PERR_ENABLE_MPARC_0 0
-#define V_PERR_ENABLE_MPARC_0(x) ((x) << S_PERR_ENABLE_MPARC_0)
-#define F_PERR_ENABLE_MPARC_0 V_PERR_ENABLE_MPARC_0(1U)
-
-#define S_PERR_SE_CNT_MISMATCH_1 26
-#define V_PERR_SE_CNT_MISMATCH_1(x) ((x) << S_PERR_SE_CNT_MISMATCH_1)
-#define F_PERR_SE_CNT_MISMATCH_1 V_PERR_SE_CNT_MISMATCH_1(1U)
-
-#define S_PERR_SE_CNT_MISMATCH_0 25
-#define V_PERR_SE_CNT_MISMATCH_0(x) ((x) << S_PERR_SE_CNT_MISMATCH_0)
-#define F_PERR_SE_CNT_MISMATCH_0 V_PERR_SE_CNT_MISMATCH_0(1U)
-
-#define S_PERR_RSVD0 24
-#define V_PERR_RSVD0(x) ((x) << S_PERR_RSVD0)
-#define F_PERR_RSVD0 V_PERR_RSVD0(1U)
-
-#define S_PERR_RSVD1 23
-#define V_PERR_RSVD1(x) ((x) << S_PERR_RSVD1)
-#define F_PERR_RSVD1 V_PERR_RSVD1(1U)
-
#define A_ULP_RX_PERR_INJECT 0x191a0
#define A_ULP_RX_RQUDP_LLIMIT 0x191a4
#define A_ULP_RX_RQUDP_ULIMIT 0x191a8
@@ -26886,263 +18069,7 @@
#define G_WR_PTR(x) (((x) >> S_WR_PTR) & M_WR_PTR)
#define A_ULP_RX_LA_RESERVED 0x1924c
-#define A_ULP_RX_CQE_GEN_EN 0x19250
-#define S_TERMIMATE_MSG 1
-#define V_TERMIMATE_MSG(x) ((x) << S_TERMIMATE_MSG)
-#define F_TERMIMATE_MSG V_TERMIMATE_MSG(1U)
-
-#define S_TERMINATE_WITH_ERR 0
-#define V_TERMINATE_WITH_ERR(x) ((x) << S_TERMINATE_WITH_ERR)
-#define F_TERMINATE_WITH_ERR V_TERMINATE_WITH_ERR(1U)
-
-#define A_ULP_RX_ATOMIC_OPCODES 0x19254
-
-#define S_ATOMIC_REQ_QNO 22
-#define M_ATOMIC_REQ_QNO 0x3U
-#define V_ATOMIC_REQ_QNO(x) ((x) << S_ATOMIC_REQ_QNO)
-#define G_ATOMIC_REQ_QNO(x) (((x) >> S_ATOMIC_REQ_QNO) & M_ATOMIC_REQ_QNO)
-
-#define S_ATOMIC_RSP_QNO 20
-#define M_ATOMIC_RSP_QNO 0x3U
-#define V_ATOMIC_RSP_QNO(x) ((x) << S_ATOMIC_RSP_QNO)
-#define G_ATOMIC_RSP_QNO(x) (((x) >> S_ATOMIC_RSP_QNO) & M_ATOMIC_RSP_QNO)
-
-#define S_IMMEDIATE_QNO 18
-#define M_IMMEDIATE_QNO 0x3U
-#define V_IMMEDIATE_QNO(x) ((x) << S_IMMEDIATE_QNO)
-#define G_IMMEDIATE_QNO(x) (((x) >> S_IMMEDIATE_QNO) & M_IMMEDIATE_QNO)
-
-#define S_IMMEDIATE_WITH_SE_QNO 16
-#define M_IMMEDIATE_WITH_SE_QNO 0x3U
-#define V_IMMEDIATE_WITH_SE_QNO(x) ((x) << S_IMMEDIATE_WITH_SE_QNO)
-#define G_IMMEDIATE_WITH_SE_QNO(x) (((x) >> S_IMMEDIATE_WITH_SE_QNO) & M_IMMEDIATE_WITH_SE_QNO)
-
-#define S_ATOMIC_WR_OPCODE 12
-#define M_ATOMIC_WR_OPCODE 0xfU
-#define V_ATOMIC_WR_OPCODE(x) ((x) << S_ATOMIC_WR_OPCODE)
-#define G_ATOMIC_WR_OPCODE(x) (((x) >> S_ATOMIC_WR_OPCODE) & M_ATOMIC_WR_OPCODE)
-
-#define S_ATOMIC_RD_OPCODE 8
-#define M_ATOMIC_RD_OPCODE 0xfU
-#define V_ATOMIC_RD_OPCODE(x) ((x) << S_ATOMIC_RD_OPCODE)
-#define G_ATOMIC_RD_OPCODE(x) (((x) >> S_ATOMIC_RD_OPCODE) & M_ATOMIC_RD_OPCODE)
-
-#define S_IMMEDIATE_OPCODE 4
-#define M_IMMEDIATE_OPCODE 0xfU
-#define V_IMMEDIATE_OPCODE(x) ((x) << S_IMMEDIATE_OPCODE)
-#define G_IMMEDIATE_OPCODE(x) (((x) >> S_IMMEDIATE_OPCODE) & M_IMMEDIATE_OPCODE)
-
-#define S_IMMEDIATE_WITH_SE_OPCODE 0
-#define M_IMMEDIATE_WITH_SE_OPCODE 0xfU
-#define V_IMMEDIATE_WITH_SE_OPCODE(x) ((x) << S_IMMEDIATE_WITH_SE_OPCODE)
-#define G_IMMEDIATE_WITH_SE_OPCODE(x) (((x) >> S_IMMEDIATE_WITH_SE_OPCODE) & M_IMMEDIATE_WITH_SE_OPCODE)
-
-#define A_ULP_RX_T10_CRC_ENDIAN_SWITCHING 0x19258
-
-#define S_EN_ORIG_DATA 0
-#define V_EN_ORIG_DATA(x) ((x) << S_EN_ORIG_DATA)
-#define F_EN_ORIG_DATA V_EN_ORIG_DATA(1U)
-
-#define A_ULP_RX_MISC_FEATURE_ENABLE 0x1925c
-
-#define S_TERMINATE_STATUS_EN 4
-#define V_TERMINATE_STATUS_EN(x) ((x) << S_TERMINATE_STATUS_EN)
-#define F_TERMINATE_STATUS_EN V_TERMINATE_STATUS_EN(1U)
-
-#define S_MULTIPLE_PREF_ENABLE 3
-#define V_MULTIPLE_PREF_ENABLE(x) ((x) << S_MULTIPLE_PREF_ENABLE)
-#define F_MULTIPLE_PREF_ENABLE V_MULTIPLE_PREF_ENABLE(1U)
-
-#define S_UMUDP_PBL_PREF_ENABLE 2
-#define V_UMUDP_PBL_PREF_ENABLE(x) ((x) << S_UMUDP_PBL_PREF_ENABLE)
-#define F_UMUDP_PBL_PREF_ENABLE V_UMUDP_PBL_PREF_ENABLE(1U)
-
-#define S_RDMA_PBL_PREF_EN 1
-#define V_RDMA_PBL_PREF_EN(x) ((x) << S_RDMA_PBL_PREF_EN)
-#define F_RDMA_PBL_PREF_EN V_RDMA_PBL_PREF_EN(1U)
-
-#define S_SDC_CRC_PROT_EN 0
-#define V_SDC_CRC_PROT_EN(x) ((x) << S_SDC_CRC_PROT_EN)
-#define F_SDC_CRC_PROT_EN V_SDC_CRC_PROT_EN(1U)
-
-#define A_ULP_RX_CH0_CGEN 0x19260
-
-#define S_BYPASS_CGEN 7
-#define V_BYPASS_CGEN(x) ((x) << S_BYPASS_CGEN)
-#define F_BYPASS_CGEN V_BYPASS_CGEN(1U)
-
-#define S_TDDP_CGEN 6
-#define V_TDDP_CGEN(x) ((x) << S_TDDP_CGEN)
-#define F_TDDP_CGEN V_TDDP_CGEN(1U)
-
-#define S_ISCSI_CGEN 5
-#define V_ISCSI_CGEN(x) ((x) << S_ISCSI_CGEN)
-#define F_ISCSI_CGEN V_ISCSI_CGEN(1U)
-
-#define S_RDMA_CGEN 4
-#define V_RDMA_CGEN(x) ((x) << S_RDMA_CGEN)
-#define F_RDMA_CGEN V_RDMA_CGEN(1U)
-
-#define S_CHANNEL_CGEN 3
-#define V_CHANNEL_CGEN(x) ((x) << S_CHANNEL_CGEN)
-#define F_CHANNEL_CGEN V_CHANNEL_CGEN(1U)
-
-#define S_ALL_DATAPATH_CGEN 2
-#define V_ALL_DATAPATH_CGEN(x) ((x) << S_ALL_DATAPATH_CGEN)
-#define F_ALL_DATAPATH_CGEN V_ALL_DATAPATH_CGEN(1U)
-
-#define S_T10DIFF_DATAPATH_CGEN 1
-#define V_T10DIFF_DATAPATH_CGEN(x) ((x) << S_T10DIFF_DATAPATH_CGEN)
-#define F_T10DIFF_DATAPATH_CGEN V_T10DIFF_DATAPATH_CGEN(1U)
-
-#define S_RDMA_DATAPATH_CGEN 0
-#define V_RDMA_DATAPATH_CGEN(x) ((x) << S_RDMA_DATAPATH_CGEN)
-#define F_RDMA_DATAPATH_CGEN V_RDMA_DATAPATH_CGEN(1U)
-
-#define A_ULP_RX_CH1_CGEN 0x19264
-#define A_ULP_RX_RFE_DISABLE 0x19268
-
-#define S_RQE_LIM_CHECK_RFE_DISABLE 0
-#define V_RQE_LIM_CHECK_RFE_DISABLE(x) ((x) << S_RQE_LIM_CHECK_RFE_DISABLE)
-#define F_RQE_LIM_CHECK_RFE_DISABLE V_RQE_LIM_CHECK_RFE_DISABLE(1U)
-
-#define A_ULP_RX_INT_ENABLE_2 0x1926c
-
-#define S_ULPRX2MA_INTFPERR 8
-#define V_ULPRX2MA_INTFPERR(x) ((x) << S_ULPRX2MA_INTFPERR)
-#define F_ULPRX2MA_INTFPERR V_ULPRX2MA_INTFPERR(1U)
-
-#define S_ALN_SDC_ERR_1 7
-#define V_ALN_SDC_ERR_1(x) ((x) << S_ALN_SDC_ERR_1)
-#define F_ALN_SDC_ERR_1 V_ALN_SDC_ERR_1(1U)
-
-#define S_ALN_SDC_ERR_0 6
-#define V_ALN_SDC_ERR_0(x) ((x) << S_ALN_SDC_ERR_0)
-#define F_ALN_SDC_ERR_0 V_ALN_SDC_ERR_0(1U)
-
-#define S_PF_UNTAGGED_TPT_1 5
-#define V_PF_UNTAGGED_TPT_1(x) ((x) << S_PF_UNTAGGED_TPT_1)
-#define F_PF_UNTAGGED_TPT_1 V_PF_UNTAGGED_TPT_1(1U)
-
-#define S_PF_UNTAGGED_TPT_0 4
-#define V_PF_UNTAGGED_TPT_0(x) ((x) << S_PF_UNTAGGED_TPT_0)
-#define F_PF_UNTAGGED_TPT_0 V_PF_UNTAGGED_TPT_0(1U)
-
-#define S_PF_PBL_1 3
-#define V_PF_PBL_1(x) ((x) << S_PF_PBL_1)
-#define F_PF_PBL_1 V_PF_PBL_1(1U)
-
-#define S_PF_PBL_0 2
-#define V_PF_PBL_0(x) ((x) << S_PF_PBL_0)
-#define F_PF_PBL_0 V_PF_PBL_0(1U)
-
-#define S_DDP_HINT_1 1
-#define V_DDP_HINT_1(x) ((x) << S_DDP_HINT_1)
-#define F_DDP_HINT_1 V_DDP_HINT_1(1U)
-
-#define S_DDP_HINT_0 0
-#define V_DDP_HINT_0(x) ((x) << S_DDP_HINT_0)
-#define F_DDP_HINT_0 V_DDP_HINT_0(1U)
-
-#define A_ULP_RX_INT_CAUSE_2 0x19270
-#define A_ULP_RX_PERR_ENABLE_2 0x19274
-
-#define S_ENABLE_ULPRX2MA_INTFPERR 8
-#define V_ENABLE_ULPRX2MA_INTFPERR(x) ((x) << S_ENABLE_ULPRX2MA_INTFPERR)
-#define F_ENABLE_ULPRX2MA_INTFPERR V_ENABLE_ULPRX2MA_INTFPERR(1U)
-
-#define S_ENABLE_ALN_SDC_ERR_1 7
-#define V_ENABLE_ALN_SDC_ERR_1(x) ((x) << S_ENABLE_ALN_SDC_ERR_1)
-#define F_ENABLE_ALN_SDC_ERR_1 V_ENABLE_ALN_SDC_ERR_1(1U)
-
-#define S_ENABLE_ALN_SDC_ERR_0 6
-#define V_ENABLE_ALN_SDC_ERR_0(x) ((x) << S_ENABLE_ALN_SDC_ERR_0)
-#define F_ENABLE_ALN_SDC_ERR_0 V_ENABLE_ALN_SDC_ERR_0(1U)
-
-#define S_ENABLE_PF_UNTAGGED_TPT_1 5
-#define V_ENABLE_PF_UNTAGGED_TPT_1(x) ((x) << S_ENABLE_PF_UNTAGGED_TPT_1)
-#define F_ENABLE_PF_UNTAGGED_TPT_1 V_ENABLE_PF_UNTAGGED_TPT_1(1U)
-
-#define S_ENABLE_PF_UNTAGGED_TPT_0 4
-#define V_ENABLE_PF_UNTAGGED_TPT_0(x) ((x) << S_ENABLE_PF_UNTAGGED_TPT_0)
-#define F_ENABLE_PF_UNTAGGED_TPT_0 V_ENABLE_PF_UNTAGGED_TPT_0(1U)
-
-#define S_ENABLE_PF_PBL_1 3
-#define V_ENABLE_PF_PBL_1(x) ((x) << S_ENABLE_PF_PBL_1)
-#define F_ENABLE_PF_PBL_1 V_ENABLE_PF_PBL_1(1U)
-
-#define S_ENABLE_PF_PBL_0 2
-#define V_ENABLE_PF_PBL_0(x) ((x) << S_ENABLE_PF_PBL_0)
-#define F_ENABLE_PF_PBL_0 V_ENABLE_PF_PBL_0(1U)
-
-#define S_ENABLE_DDP_HINT_1 1
-#define V_ENABLE_DDP_HINT_1(x) ((x) << S_ENABLE_DDP_HINT_1)
-#define F_ENABLE_DDP_HINT_1 V_ENABLE_DDP_HINT_1(1U)
-
-#define S_ENABLE_DDP_HINT_0 0
-#define V_ENABLE_DDP_HINT_0(x) ((x) << S_ENABLE_DDP_HINT_0)
-#define F_ENABLE_DDP_HINT_0 V_ENABLE_DDP_HINT_0(1U)
-
-#define A_ULP_RX_RQE_PBL_MULTIPLE_OUTSTANDING_CNT 0x19278
-
-#define S_PIO_RQE_PBL_MULTIPLE_CNT 0
-#define M_PIO_RQE_PBL_MULTIPLE_CNT 0xfU
-#define V_PIO_RQE_PBL_MULTIPLE_CNT(x) ((x) << S_PIO_RQE_PBL_MULTIPLE_CNT)
-#define G_PIO_RQE_PBL_MULTIPLE_CNT(x) (((x) >> S_PIO_RQE_PBL_MULTIPLE_CNT) & M_PIO_RQE_PBL_MULTIPLE_CNT)
-
-#define A_ULP_RX_ATOMIC_LEN 0x1927c
-
-#define S_ATOMIC_RPL_LEN 16
-#define M_ATOMIC_RPL_LEN 0xffU
-#define V_ATOMIC_RPL_LEN(x) ((x) << S_ATOMIC_RPL_LEN)
-#define G_ATOMIC_RPL_LEN(x) (((x) >> S_ATOMIC_RPL_LEN) & M_ATOMIC_RPL_LEN)
-
-#define S_ATOMIC_REQ_LEN 8
-#define M_ATOMIC_REQ_LEN 0xffU
-#define V_ATOMIC_REQ_LEN(x) ((x) << S_ATOMIC_REQ_LEN)
-#define G_ATOMIC_REQ_LEN(x) (((x) >> S_ATOMIC_REQ_LEN) & M_ATOMIC_REQ_LEN)
-
-#define S_ATOMIC_IMMEDIATE_LEN 0
-#define M_ATOMIC_IMMEDIATE_LEN 0xffU
-#define V_ATOMIC_IMMEDIATE_LEN(x) ((x) << S_ATOMIC_IMMEDIATE_LEN)
-#define G_ATOMIC_IMMEDIATE_LEN(x) (((x) >> S_ATOMIC_IMMEDIATE_LEN) & M_ATOMIC_IMMEDIATE_LEN)
-
-#define A_ULP_RX_CGEN_GLOBAL 0x19280
-#define A_ULP_RX_CTX_SKIP_MA_REQ 0x19284
-
-#define S_CLEAR_CTX_ERR_CNT1 3
-#define V_CLEAR_CTX_ERR_CNT1(x) ((x) << S_CLEAR_CTX_ERR_CNT1)
-#define F_CLEAR_CTX_ERR_CNT1 V_CLEAR_CTX_ERR_CNT1(1U)
-
-#define S_CLEAR_CTX_ERR_CNT0 2
-#define V_CLEAR_CTX_ERR_CNT0(x) ((x) << S_CLEAR_CTX_ERR_CNT0)
-#define F_CLEAR_CTX_ERR_CNT0 V_CLEAR_CTX_ERR_CNT0(1U)
-
-#define S_SKIP_MA_REQ_EN1 1
-#define V_SKIP_MA_REQ_EN1(x) ((x) << S_SKIP_MA_REQ_EN1)
-#define F_SKIP_MA_REQ_EN1 V_SKIP_MA_REQ_EN1(1U)
-
-#define S_SKIP_MA_REQ_EN0 0
-#define V_SKIP_MA_REQ_EN0(x) ((x) << S_SKIP_MA_REQ_EN0)
-#define F_SKIP_MA_REQ_EN0 V_SKIP_MA_REQ_EN0(1U)
-
-#define A_ULP_RX_CHNL0_CTX_ERROR_COUNT_PER_TID 0x19288
-#define A_ULP_RX_CHNL1_CTX_ERROR_COUNT_PER_TID 0x1928c
-#define A_ULP_RX_MSN_CHECK_ENABLE 0x19290
-
-#define S_RD_OR_TERM_MSN_CHECK_ENABLE 2
-#define V_RD_OR_TERM_MSN_CHECK_ENABLE(x) ((x) << S_RD_OR_TERM_MSN_CHECK_ENABLE)
-#define F_RD_OR_TERM_MSN_CHECK_ENABLE V_RD_OR_TERM_MSN_CHECK_ENABLE(1U)
-
-#define S_ATOMIC_OP_MSN_CHECK_ENABLE 1
-#define V_ATOMIC_OP_MSN_CHECK_ENABLE(x) ((x) << S_ATOMIC_OP_MSN_CHECK_ENABLE)
-#define F_ATOMIC_OP_MSN_CHECK_ENABLE V_ATOMIC_OP_MSN_CHECK_ENABLE(1U)
-
-#define S_SEND_MSN_CHECK_ENABLE 0
-#define V_SEND_MSN_CHECK_ENABLE(x) ((x) << S_SEND_MSN_CHECK_ENABLE)
-#define F_SEND_MSN_CHECK_ENABLE V_SEND_MSN_CHECK_ENABLE(1U)
-
/* registers for module SF */
#define SF_BASE_ADDR 0x193f8
@@ -27191,14 +18118,6 @@
#define V_VFID(x) ((x) << S_VFID)
#define G_VFID(x) (((x) >> S_VFID) & M_VFID)
-#define A_PL_VF_REV 0x4
-
-#define S_CHIPID 4
-#define M_CHIPID 0xfU
-#define V_CHIPID(x) ((x) << S_CHIPID)
-#define G_CHIPID(x) (((x) >> S_CHIPID) & M_CHIPID)
-
-#define A_PL_VF_REVISION 0x8
#define A_PL_PF_INT_CAUSE 0x3c0
#define S_PFSW 3
@@ -27343,18 +18262,6 @@
#define V_CIM(x) ((x) << S_CIM)
#define F_CIM V_CIM(1U)
-#define S_MC1 31
-#define V_MC1(x) ((x) << S_MC1)
-#define F_MC1 V_MC1(1U)
-
-#define S_MC0 15
-#define V_MC0(x) ((x) << S_MC0)
-#define F_MC0 V_MC0(1U)
-
-#define S_ANYMAC 9
-#define V_ANYMAC(x) ((x) << S_ANYMAC)
-#define F_ANYMAC V_ANYMAC(1U)
-
#define A_PL_PERR_ENABLE 0x19408
#define A_PL_INT_CAUSE 0x1940c
@@ -27366,22 +18273,6 @@
#define V_SW_CIM(x) ((x) << S_SW_CIM)
#define F_SW_CIM V_SW_CIM(1U)
-#define S_MAC3 12
-#define V_MAC3(x) ((x) << S_MAC3)
-#define F_MAC3 V_MAC3(1U)
-
-#define S_MAC2 11
-#define V_MAC2(x) ((x) << S_MAC2)
-#define F_MAC2 V_MAC2(1U)
-
-#define S_MAC1 10
-#define V_MAC1(x) ((x) << S_MAC1)
-#define F_MAC1 V_MAC1(1U)
-
-#define S_MAC0 9
-#define V_MAC0(x) ((x) << S_MAC0)
-#define F_MAC0 V_MAC0(1U)
-
#define A_PL_INT_ENABLE 0x19410
#define A_PL_INT_MAP0 0x19414
@@ -27407,16 +18298,6 @@
#define V_MAPXGMAC0(x) ((x) << S_MAPXGMAC0)
#define G_MAPXGMAC0(x) (((x) >> S_MAPXGMAC0) & M_MAPXGMAC0)
-#define S_MAPMAC1 16
-#define M_MAPMAC1 0x1ffU
-#define V_MAPMAC1(x) ((x) << S_MAPMAC1)
-#define G_MAPMAC1(x) (((x) >> S_MAPMAC1) & M_MAPMAC1)
-
-#define S_MAPMAC0 0
-#define M_MAPMAC0 0x1ffU
-#define V_MAPMAC0(x) ((x) << S_MAPMAC0)
-#define G_MAPMAC0(x) (((x) >> S_MAPMAC0) & M_MAPMAC0)
-
#define A_PL_INT_MAP2 0x1941c
#define S_MAPXGMAC_KR1 16
@@ -27429,16 +18310,6 @@
#define V_MAPXGMAC_KR0(x) ((x) << S_MAPXGMAC_KR0)
#define G_MAPXGMAC_KR0(x) (((x) >> S_MAPXGMAC_KR0) & M_MAPXGMAC_KR0)
-#define S_MAPMAC3 16
-#define M_MAPMAC3 0x1ffU
-#define V_MAPMAC3(x) ((x) << S_MAPMAC3)
-#define G_MAPMAC3(x) (((x) >> S_MAPMAC3) & M_MAPMAC3)
-
-#define S_MAPMAC2 0
-#define M_MAPMAC2 0x1ffU
-#define V_MAPMAC2(x) ((x) << S_MAPMAC2)
-#define G_MAPMAC2(x) (((x) >> S_MAPMAC2) & M_MAPMAC2)
-
#define A_PL_INT_MAP3 0x19420
#define S_MAPMI 16
@@ -27481,10 +18352,6 @@
#define V_PIORSTMODE(x) ((x) << S_PIORSTMODE)
#define F_PIORSTMODE V_PIORSTMODE(1U)
-#define S_AUTOPCIEPAUSE 4
-#define V_AUTOPCIEPAUSE(x) ((x) << S_AUTOPCIEPAUSE)
-#define F_AUTOPCIEPAUSE V_AUTOPCIEPAUSE(1U)
-
#define A_PL_PL_PERR_INJECT 0x1942c
#define S_PL_MEMSEL 1
@@ -27517,10 +18384,6 @@
#define V_PERRVFID(x) ((x) << S_PERRVFID)
#define F_PERRVFID V_PERRVFID(1U)
-#define S_PL_BUSPERR 6
-#define V_PL_BUSPERR(x) ((x) << S_PL_BUSPERR)
-#define F_PL_BUSPERR V_PL_BUSPERR(1U)
-
#define A_PL_PL_INT_ENABLE 0x19434
#define A_PL_PL_PERR_ENABLE 0x19438
#define A_PL_REV 0x1943c
@@ -27530,40 +18393,6 @@
#define V_REV(x) ((x) << S_REV)
#define G_REV(x) (((x) >> S_REV) & M_REV)
-#define A_PL_PCIE_LINK 0x19440
-
-#define S_LN0_AESTAT 26
-#define M_LN0_AESTAT 0x7U
-#define V_LN0_AESTAT(x) ((x) << S_LN0_AESTAT)
-#define G_LN0_AESTAT(x) (((x) >> S_LN0_AESTAT) & M_LN0_AESTAT)
-
-#define S_LN0_AECMD 23
-#define M_LN0_AECMD 0x7U
-#define V_LN0_AECMD(x) ((x) << S_LN0_AECMD)
-#define G_LN0_AECMD(x) (((x) >> S_LN0_AECMD) & M_LN0_AECMD)
-
-#define S_PCIE_SPEED 8
-#define M_PCIE_SPEED 0x3U
-#define V_PCIE_SPEED(x) ((x) << S_PCIE_SPEED)
-#define G_PCIE_SPEED(x) (((x) >> S_PCIE_SPEED) & M_PCIE_SPEED)
-
-#define S_LTSSM 0
-#define M_LTSSM 0x3fU
-#define V_LTSSM(x) ((x) << S_LTSSM)
-#define G_LTSSM(x) (((x) >> S_LTSSM) & M_LTSSM)
-
-#define A_PL_PCIE_CTL_STAT 0x19444
-
-#define S_PCIE_STATUS 16
-#define M_PCIE_STATUS 0xffffU
-#define V_PCIE_STATUS(x) ((x) << S_PCIE_STATUS)
-#define G_PCIE_STATUS(x) (((x) >> S_PCIE_STATUS) & M_PCIE_STATUS)
-
-#define S_PCIE_CONTROL 0
-#define M_PCIE_CONTROL 0xffffU
-#define V_PCIE_CONTROL(x) ((x) << S_PCIE_CONTROL)
-#define G_PCIE_CONTROL(x) (((x) >> S_PCIE_CONTROL) & M_PCIE_CONTROL)
-
#define A_PL_SEMAPHORE_CTL 0x1944c
#define S_LOCKSTATUS 16
@@ -27684,10 +18513,6 @@
#define V_PL_TIMEOUT(x) ((x) << S_PL_TIMEOUT)
#define G_PL_TIMEOUT(x) (((x) >> S_PL_TIMEOUT) & M_PL_TIMEOUT)
-#define S_PERRCAPTURE 16
-#define V_PERRCAPTURE(x) ((x) << S_PERRCAPTURE)
-#define F_PERRCAPTURE V_PERRCAPTURE(1U)
-
#define A_PL_TIMEOUT_STATUS0 0x194f4
#define S_PL_TOADDR 2
@@ -27724,15 +18549,6 @@
#define V_PL_TORID(x) ((x) << S_PL_TORID)
#define G_PL_TORID(x) (((x) >> S_PL_TORID) & M_PL_TORID)
-#define S_VALIDPERR 30
-#define V_VALIDPERR(x) ((x) << S_VALIDPERR)
-#define F_VALIDPERR V_VALIDPERR(1U)
-
-#define S_PL_TOVFID 0
-#define M_PL_TOVFID 0xffU
-#define V_PL_TOVFID(x) ((x) << S_PL_TOVFID)
-#define G_PL_TOVFID(x) (((x) >> S_PL_TOVFID) & M_PL_TOVFID)
-
#define A_PL_VFID_MAP 0x19800
#define S_VFID_VLD 7
@@ -27798,58 +18614,6 @@
#define V_CMDOVERLAPDIS(x) ((x) << S_CMDOVERLAPDIS)
#define F_CMDOVERLAPDIS V_CMDOVERLAPDIS(1U)
-#define S_MASKCMDOLAPDIS 26
-#define V_MASKCMDOLAPDIS(x) ((x) << S_MASKCMDOLAPDIS)
-#define F_MASKCMDOLAPDIS V_MASKCMDOLAPDIS(1U)
-
-#define S_IPV4HASHSIZEEN 25
-#define V_IPV4HASHSIZEEN(x) ((x) << S_IPV4HASHSIZEEN)
-#define F_IPV4HASHSIZEEN V_IPV4HASHSIZEEN(1U)
-
-#define S_PROTOCOLMASKEN 24
-#define V_PROTOCOLMASKEN(x) ((x) << S_PROTOCOLMASKEN)
-#define F_PROTOCOLMASKEN V_PROTOCOLMASKEN(1U)
-
-#define S_TUPLESIZEEN 23
-#define V_TUPLESIZEEN(x) ((x) << S_TUPLESIZEEN)
-#define F_TUPLESIZEEN V_TUPLESIZEEN(1U)
-
-#define S_SRVRSRAMEN 22
-#define V_SRVRSRAMEN(x) ((x) << S_SRVRSRAMEN)
-#define F_SRVRSRAMEN V_SRVRSRAMEN(1U)
-
-#define S_ASBOTHSRCHENPR 19
-#define V_ASBOTHSRCHENPR(x) ((x) << S_ASBOTHSRCHENPR)
-#define F_ASBOTHSRCHENPR V_ASBOTHSRCHENPR(1U)
-
-#define S_POCLIPTID0 15
-#define V_POCLIPTID0(x) ((x) << S_POCLIPTID0)
-#define F_POCLIPTID0 V_POCLIPTID0(1U)
-
-#define S_TCAMARBOFF 14
-#define V_TCAMARBOFF(x) ((x) << S_TCAMARBOFF)
-#define F_TCAMARBOFF V_TCAMARBOFF(1U)
-
-#define S_ACCNTFULLEN 13
-#define V_ACCNTFULLEN(x) ((x) << S_ACCNTFULLEN)
-#define F_ACCNTFULLEN V_ACCNTFULLEN(1U)
-
-#define S_FILTERRWNOCLIP 12
-#define V_FILTERRWNOCLIP(x) ((x) << S_FILTERRWNOCLIP)
-#define F_FILTERRWNOCLIP V_FILTERRWNOCLIP(1U)
-
-#define S_CRCHASH 10
-#define V_CRCHASH(x) ((x) << S_CRCHASH)
-#define F_CRCHASH V_CRCHASH(1U)
-
-#define S_COMPTID 9
-#define V_COMPTID(x) ((x) << S_COMPTID)
-#define F_COMPTID V_COMPTID(1U)
-
-#define S_SINGLETHREAD 6
-#define V_SINGLETHREAD(x) ((x) << S_SINGLETHREAD)
-#define F_SINGLETHREAD V_SINGLETHREAD(1U)
-
#define A_LE_MISC 0x19c08
#define S_CMPUNVAIL 0
@@ -27857,38 +18621,6 @@
#define V_CMPUNVAIL(x) ((x) << S_CMPUNVAIL)
#define G_CMPUNVAIL(x) (((x) >> S_CMPUNVAIL) & M_CMPUNVAIL)
-#define S_SRAMDEEPSLEEP_STAT 11
-#define V_SRAMDEEPSLEEP_STAT(x) ((x) << S_SRAMDEEPSLEEP_STAT)
-#define F_SRAMDEEPSLEEP_STAT V_SRAMDEEPSLEEP_STAT(1U)
-
-#define S_TCAMDEEPSLEEP1_STAT 10
-#define V_TCAMDEEPSLEEP1_STAT(x) ((x) << S_TCAMDEEPSLEEP1_STAT)
-#define F_TCAMDEEPSLEEP1_STAT V_TCAMDEEPSLEEP1_STAT(1U)
-
-#define S_TCAMDEEPSLEEP0_STAT 9
-#define V_TCAMDEEPSLEEP0_STAT(x) ((x) << S_TCAMDEEPSLEEP0_STAT)
-#define F_TCAMDEEPSLEEP0_STAT V_TCAMDEEPSLEEP0_STAT(1U)
-
-#define S_SRAMDEEPSLEEP 8
-#define V_SRAMDEEPSLEEP(x) ((x) << S_SRAMDEEPSLEEP)
-#define F_SRAMDEEPSLEEP V_SRAMDEEPSLEEP(1U)
-
-#define S_TCAMDEEPSLEEP1 7
-#define V_TCAMDEEPSLEEP1(x) ((x) << S_TCAMDEEPSLEEP1)
-#define F_TCAMDEEPSLEEP1 V_TCAMDEEPSLEEP1(1U)
-
-#define S_TCAMDEEPSLEEP0 6
-#define V_TCAMDEEPSLEEP0(x) ((x) << S_TCAMDEEPSLEEP0)
-#define F_TCAMDEEPSLEEP0 V_TCAMDEEPSLEEP0(1U)
-
-#define S_SRVRAMCLKOFF 5
-#define V_SRVRAMCLKOFF(x) ((x) << S_SRVRAMCLKOFF)
-#define F_SRVRAMCLKOFF V_SRVRAMCLKOFF(1U)
-
-#define S_HASHCLKOFF 4
-#define V_HASHCLKOFF(x) ((x) << S_HASHCLKOFF)
-#define F_HASHCLKOFF V_HASHCLKOFF(1U)
-
#define A_LE_DB_ROUTING_TABLE_INDEX 0x19c10
#define S_RTINDX 7
@@ -28017,30 +18749,6 @@
#define V_SERVERHIT(x) ((x) << S_SERVERHIT)
#define F_SERVERHIT V_SERVERHIT(1U)
-#define S_ACTCNTIPV6TZERO 21
-#define V_ACTCNTIPV6TZERO(x) ((x) << S_ACTCNTIPV6TZERO)
-#define F_ACTCNTIPV6TZERO V_ACTCNTIPV6TZERO(1U)
-
-#define S_ACTCNTIPV4TZERO 20
-#define V_ACTCNTIPV4TZERO(x) ((x) << S_ACTCNTIPV4TZERO)
-#define F_ACTCNTIPV4TZERO V_ACTCNTIPV4TZERO(1U)
-
-#define S_ACTCNTIPV6ZERO 19
-#define V_ACTCNTIPV6ZERO(x) ((x) << S_ACTCNTIPV6ZERO)
-#define F_ACTCNTIPV6ZERO V_ACTCNTIPV6ZERO(1U)
-
-#define S_ACTCNTIPV4ZERO 18
-#define V_ACTCNTIPV4ZERO(x) ((x) << S_ACTCNTIPV4ZERO)
-#define F_ACTCNTIPV4ZERO V_ACTCNTIPV4ZERO(1U)
-
-#define S_MARSPPARERR 17
-#define V_MARSPPARERR(x) ((x) << S_MARSPPARERR)
-#define F_MARSPPARERR V_MARSPPARERR(1U)
-
-#define S_VFPARERR 14
-#define V_VFPARERR(x) ((x) << S_VFPARERR)
-#define F_VFPARERR V_VFPARERR(1U)
-
#define A_LE_DB_INT_CAUSE 0x19c3c
#define A_LE_DB_INT_TID 0x19c40
@@ -28071,29 +18779,8 @@
#define G_INTCMD(x) (((x) >> S_INTCMD) & M_INTCMD)
#define A_LE_DB_MASK_IPV4 0x19c50
-#define A_LE_T5_DB_MASK_IPV4 0x19c50
-#define A_LE_DB_ACT_CNT_IPV4_TCAM 0x19c94
-#define A_LE_DB_ACT_CNT_IPV6_TCAM 0x19c98
-#define A_LE_ACT_CNT_THRSH 0x19c9c
-
-#define S_ACT_CNT_THRSH 0
-#define M_ACT_CNT_THRSH 0x1fffffU
-#define V_ACT_CNT_THRSH(x) ((x) << S_ACT_CNT_THRSH)
-#define G_ACT_CNT_THRSH(x) (((x) >> S_ACT_CNT_THRSH) & M_ACT_CNT_THRSH)
-
#define A_LE_DB_MASK_IPV6 0x19ca0
#define A_LE_DB_REQ_RSP_CNT 0x19ce4
-
-#define S_RSPCNTLE 16
-#define M_RSPCNTLE 0xffffU
-#define V_RSPCNTLE(x) ((x) << S_RSPCNTLE)
-#define G_RSPCNTLE(x) (((x) >> S_RSPCNTLE) & M_RSPCNTLE)
-
-#define S_REQCNTLE 0
-#define M_REQCNTLE 0xffffU
-#define V_REQCNTLE(x) ((x) << S_REQCNTLE)
-#define G_REQCNTLE(x) (((x) >> S_REQCNTLE) & M_REQCNTLE)
-
#define A_LE_DB_DBGI_CONFIG 0x19cf0
#define S_DBGICMDPERR 31
@@ -28173,22 +18860,6 @@
#define V_TCAM(x) ((x) << S_TCAM)
#define F_TCAM V_TCAM(1U)
-#define S_MARSPPARERRLE 17
-#define V_MARSPPARERRLE(x) ((x) << S_MARSPPARERRLE)
-#define F_MARSPPARERRLE V_MARSPPARERRLE(1U)
-
-#define S_REQQUEUELE 16
-#define V_REQQUEUELE(x) ((x) << S_REQQUEUELE)
-#define F_REQQUEUELE V_REQQUEUELE(1U)
-
-#define S_VFPARERRLE 14
-#define V_VFPARERRLE(x) ((x) << S_VFPARERRLE)
-#define F_VFPARERRLE V_VFPARERRLE(1U)
-
-#define S_TCAMLE 6
-#define V_TCAMLE(x) ((x) << S_TCAMLE)
-#define F_TCAMLE V_TCAMLE(1U)
-
#define A_LE_SPARE 0x19cfc
#define A_LE_DB_DBGI_REQ_DATA 0x19d00
#define A_LE_DB_DBGI_REQ_MASK 0x19d50
@@ -28281,77 +18952,17 @@
#define G_LEMEMSEL(x) (((x) >> S_LEMEMSEL) & M_LEMEMSEL)
#define A_LE_DB_ACTIVE_MASK_IPV4 0x19e00
-#define A_LE_T5_DB_ACTIVE_MASK_IPV4 0x19e00
#define A_LE_DB_ACTIVE_MASK_IPV6 0x19e50
#define A_LE_HASH_MASK_GEN_IPV4 0x19ea0
-#define A_LE_HASH_MASK_GEN_IPV4T5 0x19ea0
#define A_LE_HASH_MASK_GEN_IPV6 0x19eb0
-#define A_LE_HASH_MASK_GEN_IPV6T5 0x19eb4
#define A_LE_HASH_MASK_CMP_IPV4 0x19ee0
-#define A_LE_HASH_MASK_CMP_IPV4T5 0x19ee4
#define A_LE_HASH_MASK_CMP_IPV6 0x19ef0
-#define A_LE_HASH_MASK_CMP_IPV6T5 0x19ef8
#define A_LE_DEBUG_LA_CONFIG 0x19f20
#define A_LE_REQ_DEBUG_LA_DATA 0x19f24
#define A_LE_REQ_DEBUG_LA_WRPTR 0x19f28
#define A_LE_RSP_DEBUG_LA_DATA 0x19f2c
#define A_LE_RSP_DEBUG_LA_WRPTR 0x19f30
-#define A_LE_DEBUG_LA_SELECTOR 0x19f34
-#define A_LE_SRVR_SRAM_INIT 0x19f34
-#define S_SRVRSRAMBASE 2
-#define M_SRVRSRAMBASE 0xfffffU
-#define V_SRVRSRAMBASE(x) ((x) << S_SRVRSRAMBASE)
-#define G_SRVRSRAMBASE(x) (((x) >> S_SRVRSRAMBASE) & M_SRVRSRAMBASE)
-
-#define S_SRVRINITBUSY 1
-#define V_SRVRINITBUSY(x) ((x) << S_SRVRINITBUSY)
-#define F_SRVRINITBUSY V_SRVRINITBUSY(1U)
-
-#define S_SRVRINIT 0
-#define V_SRVRINIT(x) ((x) << S_SRVRINIT)
-#define F_SRVRINIT V_SRVRINIT(1U)
-
-#define A_LE_DEBUG_LA_CAPTURED_DATA 0x19f38
-#define A_LE_SRVR_VF_SRCH_TABLE 0x19f38
-
-#define S_RDWR 21
-#define V_RDWR(x) ((x) << S_RDWR)
-#define F_RDWR V_RDWR(1U)
-
-#define S_VFINDEX 14
-#define M_VFINDEX 0x7fU
-#define V_VFINDEX(x) ((x) << S_VFINDEX)
-#define G_VFINDEX(x) (((x) >> S_VFINDEX) & M_VFINDEX)
-
-#define S_SRCHHADDR 7
-#define M_SRCHHADDR 0x7fU
-#define V_SRCHHADDR(x) ((x) << S_SRCHHADDR)
-#define G_SRCHHADDR(x) (((x) >> S_SRCHHADDR) & M_SRCHHADDR)
-
-#define S_SRCHLADDR 0
-#define M_SRCHLADDR 0x7fU
-#define V_SRCHLADDR(x) ((x) << S_SRCHLADDR)
-#define G_SRCHLADDR(x) (((x) >> S_SRCHLADDR) & M_SRCHLADDR)
-
-#define A_LE_MA_DEBUG_LA_DATA 0x19f3c
-#define A_LE_RSP_DEBUG_LA_HASH_WRPTR 0x19f40
-#define A_LE_DB_SECOND_ACTIVE_MASK_IPV4 0x19f40
-#define A_LE_HASH_DEBUG_LA_DATA 0x19f44
-#define A_LE_RSP_DEBUG_LA_TCAM_WRPTR 0x19f48
-#define A_LE_TCAM_DEBUG_LA_DATA 0x19f4c
-#define A_LE_DB_SECOND_GEN_HASH_MASK_IPV4 0x19f90
-#define A_LE_DB_SECOND_CMP_HASH_MASK_IPV4 0x19fa4
-#define A_LE_HASH_COLLISION 0x19fc4
-#define A_LE_GLOBAL_COLLISION 0x19fc8
-#define A_LE_FULL_CNT_COLLISION 0x19fcc
-#define A_LE_DEBUG_LA_CONFIGT5 0x19fd0
-#define A_LE_REQ_DEBUG_LA_DATAT5 0x19fd4
-#define A_LE_REQ_DEBUG_LA_WRPTRT5 0x19fd8
-#define A_LE_RSP_DEBUG_LA_DATAT5 0x19fdc
-#define A_LE_RSP_DEBUG_LA_WRPTRT5 0x19fe0
-#define A_LE_DEBUG_LA_SEL_DATA 0x19fe4
-
/* registers for module NCSI */
#define NCSI_BASE_ADDR 0x1a000
@@ -28693,19 +19304,6 @@
#define V_DEBUGSEL(x) ((x) << S_DEBUGSEL)
#define G_DEBUGSEL(x) (((x) >> S_DEBUGSEL) & M_DEBUGSEL)
-#define S_TXFIFO_EMPTY 4
-#define V_TXFIFO_EMPTY(x) ((x) << S_TXFIFO_EMPTY)
-#define F_TXFIFO_EMPTY V_TXFIFO_EMPTY(1U)
-
-#define S_TXFIFO_FULL 3
-#define V_TXFIFO_FULL(x) ((x) << S_TXFIFO_FULL)
-#define F_TXFIFO_FULL V_TXFIFO_FULL(1U)
-
-#define S_PKG_ID 0
-#define M_PKG_ID 0x7U
-#define V_PKG_ID(x) ((x) << S_PKG_ID)
-#define G_PKG_ID(x) (((x) >> S_PKG_ID) & M_PKG_ID)
-
#define A_NCSI_PERR_INJECT 0x1a0f4
#define S_MCSIMELSEL 1
@@ -28712,7 +19310,6 @@
#define V_MCSIMELSEL(x) ((x) << S_MCSIMELSEL)
#define F_MCSIMELSEL V_MCSIMELSEL(1U)
-#define A_NCSI_PERR_ENABLE 0x1a0f8
#define A_NCSI_MACB_NETWORK_CTRL 0x1a100
#define S_TXSNDZEROPAUSE 12
@@ -32726,16 +23323,6 @@
#define V_OBQFULL(x) ((x) << S_OBQFULL)
#define G_OBQFULL(x) (((x) >> S_OBQFULL) & M_OBQFULL)
-#define S_T5_OBQGEN 8
-#define M_T5_OBQGEN 0xffffffU
-#define V_T5_OBQGEN(x) ((x) << S_T5_OBQGEN)
-#define G_T5_OBQGEN(x) (((x) >> S_T5_OBQGEN) & M_T5_OBQGEN)
-
-#define S_T5_OBQFULL 0
-#define M_T5_OBQFULL 0xffU
-#define V_T5_OBQFULL(x) ((x) << S_T5_OBQFULL)
-#define G_T5_OBQFULL(x) (((x) >> S_T5_OBQFULL) & M_T5_OBQFULL)
-
#define A_UP_IBQ_0_RDADDR 0x10
#define S_QUEID 13
@@ -32954,10 +23541,6 @@
#define V_UPDBGLAEN(x) ((x) << S_UPDBGLAEN)
#define F_UPDBGLAEN V_UPDBGLAEN(1U)
-#define S_UPDBGLABUSY 14
-#define V_UPDBGLABUSY(x) ((x) << S_UPDBGLABUSY)
-#define F_UPDBGLABUSY V_UPDBGLABUSY(1U)
-
#define A_UP_UP_DBG_LA_DATA 0x144
#define A_UP_PIO_MST_CONFIG 0x148
@@ -32989,15 +23572,6 @@
#define V_UPRID(x) ((x) << S_UPRID)
#define G_UPRID(x) (((x) >> S_UPRID) & M_UPRID)
-#define S_REQVFVLD 27
-#define V_REQVFVLD(x) ((x) << S_REQVFVLD)
-#define F_REQVFVLD V_REQVFVLD(1U)
-
-#define S_T5_UPRID 0
-#define M_T5_UPRID 0xffU
-#define V_T5_UPRID(x) ((x) << S_T5_UPRID)
-#define G_T5_UPRID(x) (((x) >> S_T5_UPRID) & M_T5_UPRID)
-
#define A_UP_UP_SELF_CONTROL 0x14c
#define S_UPSELFRESET 0
@@ -33013,20 +23587,6 @@
#define A_UP_MAILBOX_PF6_CTL 0x1e0
#define A_UP_MAILBOX_PF7_CTL 0x1f0
#define A_UP_TSCH_CHNLN_CLASS_RDY 0x200
-
-#define S_ECO_15444_SGE_DB_BUSY 31
-#define V_ECO_15444_SGE_DB_BUSY(x) ((x) << S_ECO_15444_SGE_DB_BUSY)
-#define F_ECO_15444_SGE_DB_BUSY V_ECO_15444_SGE_DB_BUSY(1U)
-
-#define S_ECO_15444_PL_INTF_BUSY 30
-#define V_ECO_15444_PL_INTF_BUSY(x) ((x) << S_ECO_15444_PL_INTF_BUSY)
-#define F_ECO_15444_PL_INTF_BUSY V_ECO_15444_PL_INTF_BUSY(1U)
-
-#define S_TSCHCHNLCRDY 0
-#define M_TSCHCHNLCRDY 0x3fffffffU
-#define V_TSCHCHNLCRDY(x) ((x) << S_TSCHCHNLCRDY)
-#define G_TSCHCHNLCRDY(x) (((x) >> S_TSCHCHNLCRDY) & M_TSCHCHNLCRDY)
-
#define A_UP_TSCH_CHNLN_CLASS_WATCH_RDY 0x204
#define S_TSCHWRRLIMIT 16
@@ -33071,90 +23631,6 @@
#define A_UP_UPLADBGPCCHKMASK_2 0x264
#define A_UP_UPLADBGPCCHKDATA_3 0x270
#define A_UP_UPLADBGPCCHKMASK_3 0x274
-#define A_UP_IBQ_0_SHADOW_RDADDR 0x280
-#define A_UP_IBQ_0_SHADOW_WRADDR 0x284
-#define A_UP_IBQ_0_SHADOW_STATUS 0x288
-#define A_UP_IBQ_0_SHADOW_PKTCNT 0x28c
-#define A_UP_IBQ_1_SHADOW_RDADDR 0x290
-#define A_UP_IBQ_1_SHADOW_WRADDR 0x294
-#define A_UP_IBQ_1_SHADOW_STATUS 0x298
-#define A_UP_IBQ_1_SHADOW_PKTCNT 0x29c
-#define A_UP_IBQ_2_SHADOW_RDADDR 0x2a0
-#define A_UP_IBQ_2_SHADOW_WRADDR 0x2a4
-#define A_UP_IBQ_2_SHADOW_STATUS 0x2a8
-#define A_UP_IBQ_2_SHADOW_PKTCNT 0x2ac
-#define A_UP_IBQ_3_SHADOW_RDADDR 0x2b0
-#define A_UP_IBQ_3_SHADOW_WRADDR 0x2b4
-#define A_UP_IBQ_3_SHADOW_STATUS 0x2b8
-#define A_UP_IBQ_3_SHADOW_PKTCNT 0x2bc
-#define A_UP_IBQ_4_SHADOW_RDADDR 0x2c0
-#define A_UP_IBQ_4_SHADOW_WRADDR 0x2c4
-#define A_UP_IBQ_4_SHADOW_STATUS 0x2c8
-#define A_UP_IBQ_4_SHADOW_PKTCNT 0x2cc
-#define A_UP_IBQ_5_SHADOW_RDADDR 0x2d0
-#define A_UP_IBQ_5_SHADOW_WRADDR 0x2d4
-#define A_UP_IBQ_5_SHADOW_STATUS 0x2d8
-#define A_UP_IBQ_5_SHADOW_PKTCNT 0x2dc
-#define A_UP_OBQ_0_SHADOW_RDADDR 0x2e0
-#define A_UP_OBQ_0_SHADOW_WRADDR 0x2e4
-#define A_UP_OBQ_0_SHADOW_STATUS 0x2e8
-#define A_UP_OBQ_0_SHADOW_PKTCNT 0x2ec
-#define A_UP_OBQ_1_SHADOW_RDADDR 0x2f0
-#define A_UP_OBQ_1_SHADOW_WRADDR 0x2f4
-#define A_UP_OBQ_1_SHADOW_STATUS 0x2f8
-#define A_UP_OBQ_1_SHADOW_PKTCNT 0x2fc
-#define A_UP_OBQ_2_SHADOW_RDADDR 0x300
-#define A_UP_OBQ_2_SHADOW_WRADDR 0x304
-#define A_UP_OBQ_2_SHADOW_STATUS 0x308
-#define A_UP_OBQ_2_SHADOW_PKTCNT 0x30c
-#define A_UP_OBQ_3_SHADOW_RDADDR 0x310
-#define A_UP_OBQ_3_SHADOW_WRADDR 0x314
-#define A_UP_OBQ_3_SHADOW_STATUS 0x318
-#define A_UP_OBQ_3_SHADOW_PKTCNT 0x31c
-#define A_UP_OBQ_4_SHADOW_RDADDR 0x320
-#define A_UP_OBQ_4_SHADOW_WRADDR 0x324
-#define A_UP_OBQ_4_SHADOW_STATUS 0x328
-#define A_UP_OBQ_4_SHADOW_PKTCNT 0x32c
-#define A_UP_OBQ_5_SHADOW_RDADDR 0x330
-#define A_UP_OBQ_5_SHADOW_WRADDR 0x334
-#define A_UP_OBQ_5_SHADOW_STATUS 0x338
-#define A_UP_OBQ_5_SHADOW_PKTCNT 0x33c
-#define A_UP_OBQ_6_SHADOW_RDADDR 0x340
-#define A_UP_OBQ_6_SHADOW_WRADDR 0x344
-#define A_UP_OBQ_6_SHADOW_STATUS 0x348
-#define A_UP_OBQ_6_SHADOW_PKTCNT 0x34c
-#define A_UP_OBQ_7_SHADOW_RDADDR 0x350
-#define A_UP_OBQ_7_SHADOW_WRADDR 0x354
-#define A_UP_OBQ_7_SHADOW_STATUS 0x358
-#define A_UP_OBQ_7_SHADOW_PKTCNT 0x35c
-#define A_UP_IBQ_0_SHADOW_CONFIG 0x360
-#define A_UP_IBQ_0_SHADOW_REALADDR 0x364
-#define A_UP_IBQ_1_SHADOW_CONFIG 0x368
-#define A_UP_IBQ_1_SHADOW_REALADDR 0x36c
-#define A_UP_IBQ_2_SHADOW_CONFIG 0x370
-#define A_UP_IBQ_2_SHADOW_REALADDR 0x374
-#define A_UP_IBQ_3_SHADOW_CONFIG 0x378
-#define A_UP_IBQ_3_SHADOW_REALADDR 0x37c
-#define A_UP_IBQ_4_SHADOW_CONFIG 0x380
-#define A_UP_IBQ_4_SHADOW_REALADDR 0x384
-#define A_UP_IBQ_5_SHADOW_CONFIG 0x388
-#define A_UP_IBQ_5_SHADOW_REALADDR 0x38c
-#define A_UP_OBQ_0_SHADOW_CONFIG 0x390
-#define A_UP_OBQ_0_SHADOW_REALADDR 0x394
-#define A_UP_OBQ_1_SHADOW_CONFIG 0x398
-#define A_UP_OBQ_1_SHADOW_REALADDR 0x39c
-#define A_UP_OBQ_2_SHADOW_CONFIG 0x3a0
-#define A_UP_OBQ_2_SHADOW_REALADDR 0x3a4
-#define A_UP_OBQ_3_SHADOW_CONFIG 0x3a8
-#define A_UP_OBQ_3_SHADOW_REALADDR 0x3ac
-#define A_UP_OBQ_4_SHADOW_CONFIG 0x3b0
-#define A_UP_OBQ_4_SHADOW_REALADDR 0x3b4
-#define A_UP_OBQ_5_SHADOW_CONFIG 0x3b8
-#define A_UP_OBQ_5_SHADOW_REALADDR 0x3bc
-#define A_UP_OBQ_6_SHADOW_CONFIG 0x3c0
-#define A_UP_OBQ_6_SHADOW_REALADDR 0x3c4
-#define A_UP_OBQ_7_SHADOW_CONFIG 0x3c8
-#define A_UP_OBQ_7_SHADOW_REALADDR 0x3cc
/* registers for module CIM_CTL */
#define CIM_CTL_BASE_ADDR 0x0
@@ -33465,17 +23941,6 @@
#define V_TSCHNLWEIGHT(x) ((x) << S_TSCHNLWEIGHT)
#define G_TSCHNLWEIGHT(x) (((x) >> S_TSCHNLWEIGHT) & M_TSCHNLWEIGHT)
-#define A_CIM_CTL_TSCH_CHNLN_CLASSM_RATE_LIMITER 0x920
-
-#define S_TSCCLRATENEG 31
-#define V_TSCCLRATENEG(x) ((x) << S_TSCCLRATENEG)
-#define F_TSCCLRATENEG V_TSCCLRATENEG(1U)
-
-#define S_TSCCLRATEL 0
-#define M_TSCCLRATEL 0xffffffU
-#define V_TSCCLRATEL(x) ((x) << S_TSCCLRATEL)
-#define G_TSCCLRATEL(x) (((x) >> S_TSCCLRATEL) & M_TSCCLRATEL)
-
#define A_CIM_CTL_TSCH_CHNLN_CLASSM_RATE_PROPERTIES 0x924
#define S_TSCCLRMAX 16
@@ -33505,8876 +23970,3 @@
#define M_TSCCLWEIGHT 0xffffU
#define V_TSCCLWEIGHT(x) ((x) << S_TSCCLWEIGHT)
#define G_TSCCLWEIGHT(x) (((x) >> S_TSCCLWEIGHT) & M_TSCCLWEIGHT)
-
-#define A_CIM_CTL_MAILBOX_PF0_CTL 0xd84
-#define A_CIM_CTL_MAILBOX_PF1_CTL 0xd88
-#define A_CIM_CTL_MAILBOX_PF2_CTL 0xd8c
-#define A_CIM_CTL_MAILBOX_PF3_CTL 0xd90
-#define A_CIM_CTL_MAILBOX_PF4_CTL 0xd94
-#define A_CIM_CTL_MAILBOX_PF5_CTL 0xd98
-#define A_CIM_CTL_MAILBOX_PF6_CTL 0xd9c
-#define A_CIM_CTL_MAILBOX_PF7_CTL 0xda0
-#define A_CIM_CTL_MAILBOX_CTL_OWNER_COPY 0xda4
-
-#define S_PF7_OWNER_PL 15
-#define V_PF7_OWNER_PL(x) ((x) << S_PF7_OWNER_PL)
-#define F_PF7_OWNER_PL V_PF7_OWNER_PL(1U)
-
-#define S_PF6_OWNER_PL 14
-#define V_PF6_OWNER_PL(x) ((x) << S_PF6_OWNER_PL)
-#define F_PF6_OWNER_PL V_PF6_OWNER_PL(1U)
-
-#define S_PF5_OWNER_PL 13
-#define V_PF5_OWNER_PL(x) ((x) << S_PF5_OWNER_PL)
-#define F_PF5_OWNER_PL V_PF5_OWNER_PL(1U)
-
-#define S_PF4_OWNER_PL 12
-#define V_PF4_OWNER_PL(x) ((x) << S_PF4_OWNER_PL)
-#define F_PF4_OWNER_PL V_PF4_OWNER_PL(1U)
-
-#define S_PF3_OWNER_PL 11
-#define V_PF3_OWNER_PL(x) ((x) << S_PF3_OWNER_PL)
-#define F_PF3_OWNER_PL V_PF3_OWNER_PL(1U)
-
-#define S_PF2_OWNER_PL 10
-#define V_PF2_OWNER_PL(x) ((x) << S_PF2_OWNER_PL)
-#define F_PF2_OWNER_PL V_PF2_OWNER_PL(1U)
-
-#define S_PF1_OWNER_PL 9
-#define V_PF1_OWNER_PL(x) ((x) << S_PF1_OWNER_PL)
-#define F_PF1_OWNER_PL V_PF1_OWNER_PL(1U)
-
-#define S_PF0_OWNER_PL 8
-#define V_PF0_OWNER_PL(x) ((x) << S_PF0_OWNER_PL)
-#define F_PF0_OWNER_PL V_PF0_OWNER_PL(1U)
-
-#define S_PF7_OWNER_UP 7
-#define V_PF7_OWNER_UP(x) ((x) << S_PF7_OWNER_UP)
-#define F_PF7_OWNER_UP V_PF7_OWNER_UP(1U)
-
-#define S_PF6_OWNER_UP 6
-#define V_PF6_OWNER_UP(x) ((x) << S_PF6_OWNER_UP)
-#define F_PF6_OWNER_UP V_PF6_OWNER_UP(1U)
-
-#define S_PF5_OWNER_UP 5
-#define V_PF5_OWNER_UP(x) ((x) << S_PF5_OWNER_UP)
-#define F_PF5_OWNER_UP V_PF5_OWNER_UP(1U)
-
-#define S_PF4_OWNER_UP 4
-#define V_PF4_OWNER_UP(x) ((x) << S_PF4_OWNER_UP)
-#define F_PF4_OWNER_UP V_PF4_OWNER_UP(1U)
-
-#define S_PF3_OWNER_UP 3
-#define V_PF3_OWNER_UP(x) ((x) << S_PF3_OWNER_UP)
-#define F_PF3_OWNER_UP V_PF3_OWNER_UP(1U)
-
-#define S_PF2_OWNER_UP 2
-#define V_PF2_OWNER_UP(x) ((x) << S_PF2_OWNER_UP)
-#define F_PF2_OWNER_UP V_PF2_OWNER_UP(1U)
-
-#define S_PF1_OWNER_UP 1
-#define V_PF1_OWNER_UP(x) ((x) << S_PF1_OWNER_UP)
-#define F_PF1_OWNER_UP V_PF1_OWNER_UP(1U)
-
-#define S_PF0_OWNER_UP 0
-#define V_PF0_OWNER_UP(x) ((x) << S_PF0_OWNER_UP)
-#define F_PF0_OWNER_UP V_PF0_OWNER_UP(1U)
-
-#define A_CIM_CTL_PIO_MST_CONFIG 0xda8
-
-#define S_T5_CTLRID 0
-#define M_T5_CTLRID 0xffU
-#define V_T5_CTLRID(x) ((x) << S_T5_CTLRID)
-#define G_T5_CTLRID(x) (((x) >> S_T5_CTLRID) & M_T5_CTLRID)
-
-/* registers for module MAC */
-#define MAC_BASE_ADDR 0x0
-
-#define A_MAC_PORT_CFG 0x800
-
-#define S_MAC_CLK_SEL 29
-#define M_MAC_CLK_SEL 0x7U
-#define V_MAC_CLK_SEL(x) ((x) << S_MAC_CLK_SEL)
-#define G_MAC_CLK_SEL(x) (((x) >> S_MAC_CLK_SEL) & M_MAC_CLK_SEL)
-
-#define S_SMUXTXSEL 9
-#define V_SMUXTXSEL(x) ((x) << S_SMUXTXSEL)
-#define F_SMUXTXSEL V_SMUXTXSEL(1U)
-
-#define S_SMUXRXSEL 8
-#define V_SMUXRXSEL(x) ((x) << S_SMUXRXSEL)
-#define F_SMUXRXSEL V_SMUXRXSEL(1U)
-
-#define S_PORTSPEED 4
-#define M_PORTSPEED 0x3U
-#define V_PORTSPEED(x) ((x) << S_PORTSPEED)
-#define G_PORTSPEED(x) (((x) >> S_PORTSPEED) & M_PORTSPEED)
-
-#define A_MAC_PORT_RESET_CTRL 0x804
-
-#define S_TWGDSK_HSSC16B 31
-#define V_TWGDSK_HSSC16B(x) ((x) << S_TWGDSK_HSSC16B)
-#define F_TWGDSK_HSSC16B V_TWGDSK_HSSC16B(1U)
-
-#define S_EEE_RESET 30
-#define V_EEE_RESET(x) ((x) << S_EEE_RESET)
-#define F_EEE_RESET V_EEE_RESET(1U)
-
-#define S_PTP_TIMER 29
-#define V_PTP_TIMER(x) ((x) << S_PTP_TIMER)
-#define F_PTP_TIMER V_PTP_TIMER(1U)
-
-#define S_MTIPREFRESET 28
-#define V_MTIPREFRESET(x) ((x) << S_MTIPREFRESET)
-#define F_MTIPREFRESET V_MTIPREFRESET(1U)
-
-#define S_MTIPTXFFRESET 27
-#define V_MTIPTXFFRESET(x) ((x) << S_MTIPTXFFRESET)
-#define F_MTIPTXFFRESET V_MTIPTXFFRESET(1U)
-
-#define S_MTIPRXFFRESET 26
-#define V_MTIPRXFFRESET(x) ((x) << S_MTIPRXFFRESET)
-#define F_MTIPRXFFRESET V_MTIPRXFFRESET(1U)
-
-#define S_MTIPREGRESET 25
-#define V_MTIPREGRESET(x) ((x) << S_MTIPREGRESET)
-#define F_MTIPREGRESET V_MTIPREGRESET(1U)
-
-#define S_AEC3RESET 23
-#define V_AEC3RESET(x) ((x) << S_AEC3RESET)
-#define F_AEC3RESET V_AEC3RESET(1U)
-
-#define S_AEC2RESET 22
-#define V_AEC2RESET(x) ((x) << S_AEC2RESET)
-#define F_AEC2RESET V_AEC2RESET(1U)
-
-#define S_AEC1RESET 21
-#define V_AEC1RESET(x) ((x) << S_AEC1RESET)
-#define F_AEC1RESET V_AEC1RESET(1U)
-
-#define S_AEC0RESET 20
-#define V_AEC0RESET(x) ((x) << S_AEC0RESET)
-#define F_AEC0RESET V_AEC0RESET(1U)
-
-#define S_AET3RESET 19
-#define V_AET3RESET(x) ((x) << S_AET3RESET)
-#define F_AET3RESET V_AET3RESET(1U)
-
-#define S_AET2RESET 18
-#define V_AET2RESET(x) ((x) << S_AET2RESET)
-#define F_AET2RESET V_AET2RESET(1U)
-
-#define S_AET1RESET 17
-#define V_AET1RESET(x) ((x) << S_AET1RESET)
-#define F_AET1RESET V_AET1RESET(1U)
-
-#define S_AET0RESET 16
-#define V_AET0RESET(x) ((x) << S_AET0RESET)
-#define F_AET0RESET V_AET0RESET(1U)
-
-#define S_TXIF_RESET 12
-#define V_TXIF_RESET(x) ((x) << S_TXIF_RESET)
-#define F_TXIF_RESET V_TXIF_RESET(1U)
-
-#define S_RXIF_RESET 11
-#define V_RXIF_RESET(x) ((x) << S_RXIF_RESET)
-#define F_RXIF_RESET V_RXIF_RESET(1U)
-
-#define S_MTIPSD3TXRST 9
-#define V_MTIPSD3TXRST(x) ((x) << S_MTIPSD3TXRST)
-#define F_MTIPSD3TXRST V_MTIPSD3TXRST(1U)
-
-#define S_MTIPSD2TXRST 8
-#define V_MTIPSD2TXRST(x) ((x) << S_MTIPSD2TXRST)
-#define F_MTIPSD2TXRST V_MTIPSD2TXRST(1U)
-
-#define S_MTIPSD1TXRST 7
-#define V_MTIPSD1TXRST(x) ((x) << S_MTIPSD1TXRST)
-#define F_MTIPSD1TXRST V_MTIPSD1TXRST(1U)
-
-#define S_MTIPSD0TXRST 6
-#define V_MTIPSD0TXRST(x) ((x) << S_MTIPSD0TXRST)
-#define F_MTIPSD0TXRST V_MTIPSD0TXRST(1U)
-
-#define S_MTIPSD3RXRST 5
-#define V_MTIPSD3RXRST(x) ((x) << S_MTIPSD3RXRST)
-#define F_MTIPSD3RXRST V_MTIPSD3RXRST(1U)
-
-#define S_MTIPSD2RXRST 4
-#define V_MTIPSD2RXRST(x) ((x) << S_MTIPSD2RXRST)
-#define F_MTIPSD2RXRST V_MTIPSD2RXRST(1U)
-
-#define S_MTIPSD1RXRST 3
-#define V_MTIPSD1RXRST(x) ((x) << S_MTIPSD1RXRST)
-#define F_MTIPSD1RXRST V_MTIPSD1RXRST(1U)
-
-#define S_MTIPSD0RXRST 1
-#define V_MTIPSD0RXRST(x) ((x) << S_MTIPSD0RXRST)
-#define F_MTIPSD0RXRST V_MTIPSD0RXRST(1U)
-
-#define A_MAC_PORT_LED_CFG 0x808
-#define A_MAC_PORT_LED_COUNTHI 0x80c
-#define A_MAC_PORT_LED_COUNTLO 0x810
-#define A_MAC_PORT_CFG3 0x814
-
-#define S_FCSDISCTRL 25
-#define V_FCSDISCTRL(x) ((x) << S_FCSDISCTRL)
-#define F_FCSDISCTRL V_FCSDISCTRL(1U)
-
-#define S_SIGDETCTRL 24
-#define V_SIGDETCTRL(x) ((x) << S_SIGDETCTRL)
-#define F_SIGDETCTRL V_SIGDETCTRL(1U)
-
-#define S_TX_LANE 23
-#define V_TX_LANE(x) ((x) << S_TX_LANE)
-#define F_TX_LANE V_TX_LANE(1U)
-
-#define S_RX_LANE 22
-#define V_RX_LANE(x) ((x) << S_RX_LANE)
-#define F_RX_LANE V_RX_LANE(1U)
-
-#define S_SE_CLR 21
-#define V_SE_CLR(x) ((x) << S_SE_CLR)
-#define F_SE_CLR V_SE_CLR(1U)
-
-#define S_AN_ENA 17
-#define M_AN_ENA 0xfU
-#define V_AN_ENA(x) ((x) << S_AN_ENA)
-#define G_AN_ENA(x) (((x) >> S_AN_ENA) & M_AN_ENA)
-
-#define S_SD_RX_CLK_ENA 13
-#define M_SD_RX_CLK_ENA 0xfU
-#define V_SD_RX_CLK_ENA(x) ((x) << S_SD_RX_CLK_ENA)
-#define G_SD_RX_CLK_ENA(x) (((x) >> S_SD_RX_CLK_ENA) & M_SD_RX_CLK_ENA)
-
-#define S_SD_TX_CLK_ENA 9
-#define M_SD_TX_CLK_ENA 0xfU
-#define V_SD_TX_CLK_ENA(x) ((x) << S_SD_TX_CLK_ENA)
-#define G_SD_TX_CLK_ENA(x) (((x) >> S_SD_TX_CLK_ENA) & M_SD_TX_CLK_ENA)
-
-#define S_SGMIISEL 8
-#define V_SGMIISEL(x) ((x) << S_SGMIISEL)
-#define F_SGMIISEL V_SGMIISEL(1U)
-
-#define S_HSSPLLSEL 4
-#define M_HSSPLLSEL 0xfU
-#define V_HSSPLLSEL(x) ((x) << S_HSSPLLSEL)
-#define G_HSSPLLSEL(x) (((x) >> S_HSSPLLSEL) & M_HSSPLLSEL)
-
-#define S_HSSC16C20SEL 0
-#define M_HSSC16C20SEL 0xfU
-#define V_HSSC16C20SEL(x) ((x) << S_HSSC16C20SEL)
-#define G_HSSC16C20SEL(x) (((x) >> S_HSSC16C20SEL) & M_HSSC16C20SEL)
-
-#define A_MAC_PORT_CFG2 0x818
-
-#define S_T5_AEC_PMA_TX_READY 4
-#define M_T5_AEC_PMA_TX_READY 0xfU
-#define V_T5_AEC_PMA_TX_READY(x) ((x) << S_T5_AEC_PMA_TX_READY)
-#define G_T5_AEC_PMA_TX_READY(x) (((x) >> S_T5_AEC_PMA_TX_READY) & M_T5_AEC_PMA_TX_READY)
-
-#define S_T5_AEC_PMA_RX_READY 0
-#define M_T5_AEC_PMA_RX_READY 0xfU
-#define V_T5_AEC_PMA_RX_READY(x) ((x) << S_T5_AEC_PMA_RX_READY)
-#define G_T5_AEC_PMA_RX_READY(x) (((x) >> S_T5_AEC_PMA_RX_READY) & M_T5_AEC_PMA_RX_READY)
-
-#define A_MAC_PORT_PKT_COUNT 0x81c
-#define A_MAC_PORT_CFG4 0x820
-
-#define S_AEC3_RX_WIDTH 14
-#define M_AEC3_RX_WIDTH 0x3U
-#define V_AEC3_RX_WIDTH(x) ((x) << S_AEC3_RX_WIDTH)
-#define G_AEC3_RX_WIDTH(x) (((x) >> S_AEC3_RX_WIDTH) & M_AEC3_RX_WIDTH)
-
-#define S_AEC2_RX_WIDTH 12
-#define M_AEC2_RX_WIDTH 0x3U
-#define V_AEC2_RX_WIDTH(x) ((x) << S_AEC2_RX_WIDTH)
-#define G_AEC2_RX_WIDTH(x) (((x) >> S_AEC2_RX_WIDTH) & M_AEC2_RX_WIDTH)
-
-#define S_AEC1_RX_WIDTH 10
-#define M_AEC1_RX_WIDTH 0x3U
-#define V_AEC1_RX_WIDTH(x) ((x) << S_AEC1_RX_WIDTH)
-#define G_AEC1_RX_WIDTH(x) (((x) >> S_AEC1_RX_WIDTH) & M_AEC1_RX_WIDTH)
-
-#define S_AEC0_RX_WIDTH 8
-#define M_AEC0_RX_WIDTH 0x3U
-#define V_AEC0_RX_WIDTH(x) ((x) << S_AEC0_RX_WIDTH)
-#define G_AEC0_RX_WIDTH(x) (((x) >> S_AEC0_RX_WIDTH) & M_AEC0_RX_WIDTH)
-
-#define S_AEC3_TX_WIDTH 6
-#define M_AEC3_TX_WIDTH 0x3U
-#define V_AEC3_TX_WIDTH(x) ((x) << S_AEC3_TX_WIDTH)
-#define G_AEC3_TX_WIDTH(x) (((x) >> S_AEC3_TX_WIDTH) & M_AEC3_TX_WIDTH)
-
-#define S_AEC2_TX_WIDTH 4
-#define M_AEC2_TX_WIDTH 0x3U
-#define V_AEC2_TX_WIDTH(x) ((x) << S_AEC2_TX_WIDTH)
-#define G_AEC2_TX_WIDTH(x) (((x) >> S_AEC2_TX_WIDTH) & M_AEC2_TX_WIDTH)
-
-#define S_AEC1_TX_WIDTH 2
-#define M_AEC1_TX_WIDTH 0x3U
-#define V_AEC1_TX_WIDTH(x) ((x) << S_AEC1_TX_WIDTH)
-#define G_AEC1_TX_WIDTH(x) (((x) >> S_AEC1_TX_WIDTH) & M_AEC1_TX_WIDTH)
-
-#define S_AEC0_TX_WIDTH 0
-#define M_AEC0_TX_WIDTH 0x3U
-#define V_AEC0_TX_WIDTH(x) ((x) << S_AEC0_TX_WIDTH)
-#define G_AEC0_TX_WIDTH(x) (((x) >> S_AEC0_TX_WIDTH) & M_AEC0_TX_WIDTH)
-
-#define A_MAC_PORT_MAGIC_MACID_LO 0x824
-#define A_MAC_PORT_MAGIC_MACID_HI 0x828
-#define A_MAC_PORT_LINK_STATUS 0x834
-
-#define S_AN_DONE 6
-#define V_AN_DONE(x) ((x) << S_AN_DONE)
-#define F_AN_DONE V_AN_DONE(1U)
-
-#define S_ALIGN_DONE 5
-#define V_ALIGN_DONE(x) ((x) << S_ALIGN_DONE)
-#define F_ALIGN_DONE V_ALIGN_DONE(1U)
-
-#define S_BLOCK_LOCK 4
-#define V_BLOCK_LOCK(x) ((x) << S_BLOCK_LOCK)
-#define F_BLOCK_LOCK V_BLOCK_LOCK(1U)
-
-#define A_MAC_PORT_EPIO_DATA0 0x8c0
-#define A_MAC_PORT_EPIO_DATA1 0x8c4
-#define A_MAC_PORT_EPIO_DATA2 0x8c8
-#define A_MAC_PORT_EPIO_DATA3 0x8cc
-#define A_MAC_PORT_EPIO_OP 0x8d0
-#define A_MAC_PORT_WOL_STATUS 0x8d4
-#define A_MAC_PORT_INT_EN 0x8d8
-
-#define S_TX_TS_AVAIL 29
-#define V_TX_TS_AVAIL(x) ((x) << S_TX_TS_AVAIL)
-#define F_TX_TS_AVAIL V_TX_TS_AVAIL(1U)
-
-#define S_AN_PAGE_RCVD 2
-#define V_AN_PAGE_RCVD(x) ((x) << S_AN_PAGE_RCVD)
-#define F_AN_PAGE_RCVD V_AN_PAGE_RCVD(1U)
-
-#define A_MAC_PORT_INT_CAUSE 0x8dc
-#define A_MAC_PORT_PERR_INT_EN 0x8e0
-
-#define S_PERR_PKT_RAM 24
-#define V_PERR_PKT_RAM(x) ((x) << S_PERR_PKT_RAM)
-#define F_PERR_PKT_RAM V_PERR_PKT_RAM(1U)
-
-#define S_PERR_MASK_RAM 23
-#define V_PERR_MASK_RAM(x) ((x) << S_PERR_MASK_RAM)
-#define F_PERR_MASK_RAM V_PERR_MASK_RAM(1U)
-
-#define S_PERR_CRC_RAM 22
-#define V_PERR_CRC_RAM(x) ((x) << S_PERR_CRC_RAM)
-#define F_PERR_CRC_RAM V_PERR_CRC_RAM(1U)
-
-#define S_RX_DFF_SEG0 21
-#define V_RX_DFF_SEG0(x) ((x) << S_RX_DFF_SEG0)
-#define F_RX_DFF_SEG0 V_RX_DFF_SEG0(1U)
-
-#define S_RX_SFF_SEG0 20
-#define V_RX_SFF_SEG0(x) ((x) << S_RX_SFF_SEG0)
-#define F_RX_SFF_SEG0 V_RX_SFF_SEG0(1U)
-
-#define S_RX_DFF_MAC10 19
-#define V_RX_DFF_MAC10(x) ((x) << S_RX_DFF_MAC10)
-#define F_RX_DFF_MAC10 V_RX_DFF_MAC10(1U)
-
-#define S_RX_SFF_MAC10 18
-#define V_RX_SFF_MAC10(x) ((x) << S_RX_SFF_MAC10)
-#define F_RX_SFF_MAC10 V_RX_SFF_MAC10(1U)
-
-#define S_TX_DFF_SEG0 17
-#define V_TX_DFF_SEG0(x) ((x) << S_TX_DFF_SEG0)
-#define F_TX_DFF_SEG0 V_TX_DFF_SEG0(1U)
-
-#define S_TX_SFF_SEG0 16
-#define V_TX_SFF_SEG0(x) ((x) << S_TX_SFF_SEG0)
-#define F_TX_SFF_SEG0 V_TX_SFF_SEG0(1U)
-
-#define S_TX_DFF_MAC10 15
-#define V_TX_DFF_MAC10(x) ((x) << S_TX_DFF_MAC10)
-#define F_TX_DFF_MAC10 V_TX_DFF_MAC10(1U)
-
-#define S_TX_SFF_MAC10 14
-#define V_TX_SFF_MAC10(x) ((x) << S_TX_SFF_MAC10)
-#define F_TX_SFF_MAC10 V_TX_SFF_MAC10(1U)
-
-#define S_RX_STATS 13
-#define V_RX_STATS(x) ((x) << S_RX_STATS)
-#define F_RX_STATS V_RX_STATS(1U)
-
-#define S_TX_STATS 12
-#define V_TX_STATS(x) ((x) << S_TX_STATS)
-#define F_TX_STATS V_TX_STATS(1U)
-
-#define S_PERR3_RX_MIX 11
-#define V_PERR3_RX_MIX(x) ((x) << S_PERR3_RX_MIX)
-#define F_PERR3_RX_MIX V_PERR3_RX_MIX(1U)
-
-#define S_PERR3_RX_SD 10
-#define V_PERR3_RX_SD(x) ((x) << S_PERR3_RX_SD)
-#define F_PERR3_RX_SD V_PERR3_RX_SD(1U)
-
-#define S_PERR3_TX 9
-#define V_PERR3_TX(x) ((x) << S_PERR3_TX)
-#define F_PERR3_TX V_PERR3_TX(1U)
-
-#define S_PERR2_RX_MIX 8
-#define V_PERR2_RX_MIX(x) ((x) << S_PERR2_RX_MIX)
-#define F_PERR2_RX_MIX V_PERR2_RX_MIX(1U)
-
-#define S_PERR2_RX_SD 7
-#define V_PERR2_RX_SD(x) ((x) << S_PERR2_RX_SD)
-#define F_PERR2_RX_SD V_PERR2_RX_SD(1U)
-
-#define S_PERR2_TX 6
-#define V_PERR2_TX(x) ((x) << S_PERR2_TX)
-#define F_PERR2_TX V_PERR2_TX(1U)
-
-#define S_PERR1_RX_MIX 5
-#define V_PERR1_RX_MIX(x) ((x) << S_PERR1_RX_MIX)
-#define F_PERR1_RX_MIX V_PERR1_RX_MIX(1U)
-
-#define S_PERR1_RX_SD 4
-#define V_PERR1_RX_SD(x) ((x) << S_PERR1_RX_SD)
-#define F_PERR1_RX_SD V_PERR1_RX_SD(1U)
-
-#define S_PERR1_TX 3
-#define V_PERR1_TX(x) ((x) << S_PERR1_TX)
-#define F_PERR1_TX V_PERR1_TX(1U)
-
-#define S_PERR0_RX_MIX 2
-#define V_PERR0_RX_MIX(x) ((x) << S_PERR0_RX_MIX)
-#define F_PERR0_RX_MIX V_PERR0_RX_MIX(1U)
-
-#define S_PERR0_RX_SD 1
-#define V_PERR0_RX_SD(x) ((x) << S_PERR0_RX_SD)
-#define F_PERR0_RX_SD V_PERR0_RX_SD(1U)
-
-#define S_PERR0_TX 0
-#define V_PERR0_TX(x) ((x) << S_PERR0_TX)
-#define F_PERR0_TX V_PERR0_TX(1U)
-
-#define A_MAC_PORT_PERR_INT_CAUSE 0x8e4
-#define A_MAC_PORT_PERR_ENABLE 0x8e8
-#define A_MAC_PORT_PERR_INJECT 0x8ec
-#define A_MAC_PORT_HSS_CFG0 0x8f0
-
-#define S_HSSREFCLKVALIDA 20
-#define V_HSSREFCLKVALIDA(x) ((x) << S_HSSREFCLKVALIDA)
-#define F_HSSREFCLKVALIDA V_HSSREFCLKVALIDA(1U)
-
-#define S_HSSREFCLKVALIDB 19
-#define V_HSSREFCLKVALIDB(x) ((x) << S_HSSREFCLKVALIDB)
-#define F_HSSREFCLKVALIDB V_HSSREFCLKVALIDB(1U)
-
-#define S_HSSRESYNCA 18
-#define V_HSSRESYNCA(x) ((x) << S_HSSRESYNCA)
-#define F_HSSRESYNCA V_HSSRESYNCA(1U)
-
-#define S_HSSRESYNCB 16
-#define V_HSSRESYNCB(x) ((x) << S_HSSRESYNCB)
-#define F_HSSRESYNCB V_HSSRESYNCB(1U)
-
-#define S_HSSRECCALA 15
-#define V_HSSRECCALA(x) ((x) << S_HSSRECCALA)
-#define F_HSSRECCALA V_HSSRECCALA(1U)
-
-#define S_HSSRECCALB 13
-#define V_HSSRECCALB(x) ((x) << S_HSSRECCALB)
-#define F_HSSRECCALB V_HSSRECCALB(1U)
-
-#define S_HSSPLLBYPA 12
-#define V_HSSPLLBYPA(x) ((x) << S_HSSPLLBYPA)
-#define F_HSSPLLBYPA V_HSSPLLBYPA(1U)
-
-#define S_HSSPLLBYPB 11
-#define V_HSSPLLBYPB(x) ((x) << S_HSSPLLBYPB)
-#define F_HSSPLLBYPB V_HSSPLLBYPB(1U)
-
-#define S_HSSPDWNPLLA 10
-#define V_HSSPDWNPLLA(x) ((x) << S_HSSPDWNPLLA)
-#define F_HSSPDWNPLLA V_HSSPDWNPLLA(1U)
-
-#define S_HSSPDWNPLLB 9
-#define V_HSSPDWNPLLB(x) ((x) << S_HSSPDWNPLLB)
-#define F_HSSPDWNPLLB V_HSSPDWNPLLB(1U)
-
-#define S_HSSVCOSELA 8
-#define V_HSSVCOSELA(x) ((x) << S_HSSVCOSELA)
-#define F_HSSVCOSELA V_HSSVCOSELA(1U)
-
-#define S_HSSVCOSELB 7
-#define V_HSSVCOSELB(x) ((x) << S_HSSVCOSELB)
-#define F_HSSVCOSELB V_HSSVCOSELB(1U)
-
-#define S_HSSCALCOMP 6
-#define V_HSSCALCOMP(x) ((x) << S_HSSCALCOMP)
-#define F_HSSCALCOMP V_HSSCALCOMP(1U)
-
-#define S_HSSCALENAB 5
-#define V_HSSCALENAB(x) ((x) << S_HSSCALENAB)
-#define F_HSSCALENAB V_HSSCALENAB(1U)
-
-#define A_MAC_PORT_HSS_CFG1 0x8f4
-
-#define S_RXACONFIGSEL 30
-#define M_RXACONFIGSEL 0x3U
-#define V_RXACONFIGSEL(x) ((x) << S_RXACONFIGSEL)
-#define G_RXACONFIGSEL(x) (((x) >> S_RXACONFIGSEL) & M_RXACONFIGSEL)
-
-#define S_RXAQUIET 29
-#define V_RXAQUIET(x) ((x) << S_RXAQUIET)
-#define F_RXAQUIET V_RXAQUIET(1U)
-
-#define S_RXAREFRESH 28
-#define V_RXAREFRESH(x) ((x) << S_RXAREFRESH)
-#define F_RXAREFRESH V_RXAREFRESH(1U)
-
-#define S_RXBCONFIGSEL 26
-#define M_RXBCONFIGSEL 0x3U
-#define V_RXBCONFIGSEL(x) ((x) << S_RXBCONFIGSEL)
-#define G_RXBCONFIGSEL(x) (((x) >> S_RXBCONFIGSEL) & M_RXBCONFIGSEL)
-
-#define S_RXBQUIET 25
-#define V_RXBQUIET(x) ((x) << S_RXBQUIET)
-#define F_RXBQUIET V_RXBQUIET(1U)
-
-#define S_RXBREFRESH 24
-#define V_RXBREFRESH(x) ((x) << S_RXBREFRESH)
-#define F_RXBREFRESH V_RXBREFRESH(1U)
-
-#define S_RXCCONFIGSEL 22
-#define M_RXCCONFIGSEL 0x3U
-#define V_RXCCONFIGSEL(x) ((x) << S_RXCCONFIGSEL)
-#define G_RXCCONFIGSEL(x) (((x) >> S_RXCCONFIGSEL) & M_RXCCONFIGSEL)
-
-#define S_RXCQUIET 21
-#define V_RXCQUIET(x) ((x) << S_RXCQUIET)
-#define F_RXCQUIET V_RXCQUIET(1U)
-
-#define S_RXCREFRESH 20
-#define V_RXCREFRESH(x) ((x) << S_RXCREFRESH)
-#define F_RXCREFRESH V_RXCREFRESH(1U)
-
-#define S_RXDCONFIGSEL 18
-#define M_RXDCONFIGSEL 0x3U
-#define V_RXDCONFIGSEL(x) ((x) << S_RXDCONFIGSEL)
-#define G_RXDCONFIGSEL(x) (((x) >> S_RXDCONFIGSEL) & M_RXDCONFIGSEL)
-
-#define S_RXDQUIET 17
-#define V_RXDQUIET(x) ((x) << S_RXDQUIET)
-#define F_RXDQUIET V_RXDQUIET(1U)
-
-#define S_RXDREFRESH 16
-#define V_RXDREFRESH(x) ((x) << S_RXDREFRESH)
-#define F_RXDREFRESH V_RXDREFRESH(1U)
-
-#define S_TXACONFIGSEL 14
-#define M_TXACONFIGSEL 0x3U
-#define V_TXACONFIGSEL(x) ((x) << S_TXACONFIGSEL)
-#define G_TXACONFIGSEL(x) (((x) >> S_TXACONFIGSEL) & M_TXACONFIGSEL)
-
-#define S_TXAQUIET 13
-#define V_TXAQUIET(x) ((x) << S_TXAQUIET)
-#define F_TXAQUIET V_TXAQUIET(1U)
-
-#define S_TXAREFRESH 12
-#define V_TXAREFRESH(x) ((x) << S_TXAREFRESH)
-#define F_TXAREFRESH V_TXAREFRESH(1U)
-
-#define S_TXBCONFIGSEL 10
-#define M_TXBCONFIGSEL 0x3U
-#define V_TXBCONFIGSEL(x) ((x) << S_TXBCONFIGSEL)
-#define G_TXBCONFIGSEL(x) (((x) >> S_TXBCONFIGSEL) & M_TXBCONFIGSEL)
-
-#define S_TXBQUIET 9
-#define V_TXBQUIET(x) ((x) << S_TXBQUIET)
-#define F_TXBQUIET V_TXBQUIET(1U)
-
-#define S_TXBREFRESH 8
-#define V_TXBREFRESH(x) ((x) << S_TXBREFRESH)
-#define F_TXBREFRESH V_TXBREFRESH(1U)
-
-#define S_TXCCONFIGSEL 6
-#define M_TXCCONFIGSEL 0x3U
-#define V_TXCCONFIGSEL(x) ((x) << S_TXCCONFIGSEL)
-#define G_TXCCONFIGSEL(x) (((x) >> S_TXCCONFIGSEL) & M_TXCCONFIGSEL)
-
-#define S_TXCQUIET 5
-#define V_TXCQUIET(x) ((x) << S_TXCQUIET)
-#define F_TXCQUIET V_TXCQUIET(1U)
-
-#define S_TXCREFRESH 4
-#define V_TXCREFRESH(x) ((x) << S_TXCREFRESH)
-#define F_TXCREFRESH V_TXCREFRESH(1U)
-
-#define S_TXDCONFIGSEL 2
-#define M_TXDCONFIGSEL 0x3U
-#define V_TXDCONFIGSEL(x) ((x) << S_TXDCONFIGSEL)
-#define G_TXDCONFIGSEL(x) (((x) >> S_TXDCONFIGSEL) & M_TXDCONFIGSEL)
-
-#define S_TXDQUIET 1
-#define V_TXDQUIET(x) ((x) << S_TXDQUIET)
-#define F_TXDQUIET V_TXDQUIET(1U)
-
-#define S_TXDREFRESH 0
-#define V_TXDREFRESH(x) ((x) << S_TXDREFRESH)
-#define F_TXDREFRESH V_TXDREFRESH(1U)
-
-#define A_MAC_PORT_HSS_CFG2 0x8f8
-
-#define S_RXAASSTCLK 31
-#define V_RXAASSTCLK(x) ((x) << S_RXAASSTCLK)
-#define F_RXAASSTCLK V_RXAASSTCLK(1U)
-
-#define S_T5RXAPRBSRST 30
-#define V_T5RXAPRBSRST(x) ((x) << S_T5RXAPRBSRST)
-#define F_T5RXAPRBSRST V_T5RXAPRBSRST(1U)
-
-#define S_RXBASSTCLK 29
-#define V_RXBASSTCLK(x) ((x) << S_RXBASSTCLK)
-#define F_RXBASSTCLK V_RXBASSTCLK(1U)
-
-#define S_T5RXBPRBSRST 28
-#define V_T5RXBPRBSRST(x) ((x) << S_T5RXBPRBSRST)
-#define F_T5RXBPRBSRST V_T5RXBPRBSRST(1U)
-
-#define S_RXCASSTCLK 27
-#define V_RXCASSTCLK(x) ((x) << S_RXCASSTCLK)
-#define F_RXCASSTCLK V_RXCASSTCLK(1U)
-
-#define S_T5RXCPRBSRST 26
-#define V_T5RXCPRBSRST(x) ((x) << S_T5RXCPRBSRST)
-#define F_T5RXCPRBSRST V_T5RXCPRBSRST(1U)
-
-#define S_RXDASSTCLK 25
-#define V_RXDASSTCLK(x) ((x) << S_RXDASSTCLK)
-#define F_RXDASSTCLK V_RXDASSTCLK(1U)
-
-#define S_T5RXDPRBSRST 24
-#define V_T5RXDPRBSRST(x) ((x) << S_T5RXDPRBSRST)
-#define F_T5RXDPRBSRST V_T5RXDPRBSRST(1U)
-
-#define A_MAC_PORT_HSS_CFG3 0x8fc
-
-#define S_HSSCALSSTN 25
-#define M_HSSCALSSTN 0x7U
-#define V_HSSCALSSTN(x) ((x) << S_HSSCALSSTN)
-#define G_HSSCALSSTN(x) (((x) >> S_HSSCALSSTN) & M_HSSCALSSTN)
-
-#define S_HSSCALSSTP 22
-#define M_HSSCALSSTP 0x7U
-#define V_HSSCALSSTP(x) ((x) << S_HSSCALSSTP)
-#define G_HSSCALSSTP(x) (((x) >> S_HSSCALSSTP) & M_HSSCALSSTP)
-
-#define S_HSSVBOOSTDIVB 19
-#define M_HSSVBOOSTDIVB 0x7U
-#define V_HSSVBOOSTDIVB(x) ((x) << S_HSSVBOOSTDIVB)
-#define G_HSSVBOOSTDIVB(x) (((x) >> S_HSSVBOOSTDIVB) & M_HSSVBOOSTDIVB)
-
-#define S_HSSVBOOSTDIVA 16
-#define M_HSSVBOOSTDIVA 0x7U
-#define V_HSSVBOOSTDIVA(x) ((x) << S_HSSVBOOSTDIVA)
-#define G_HSSVBOOSTDIVA(x) (((x) >> S_HSSVBOOSTDIVA) & M_HSSVBOOSTDIVA)
-
-#define S_HSSPLLCONFIGB 8
-#define M_HSSPLLCONFIGB 0xffU
-#define V_HSSPLLCONFIGB(x) ((x) << S_HSSPLLCONFIGB)
-#define G_HSSPLLCONFIGB(x) (((x) >> S_HSSPLLCONFIGB) & M_HSSPLLCONFIGB)
-
-#define S_HSSPLLCONFIGA 0
-#define M_HSSPLLCONFIGA 0xffU
-#define V_HSSPLLCONFIGA(x) ((x) << S_HSSPLLCONFIGA)
-#define G_HSSPLLCONFIGA(x) (((x) >> S_HSSPLLCONFIGA) & M_HSSPLLCONFIGA)
-
-#define A_MAC_PORT_HSS_CFG4 0x900
-
-#define S_HSSDIVSELA 9
-#define M_HSSDIVSELA 0x1ffU
-#define V_HSSDIVSELA(x) ((x) << S_HSSDIVSELA)
-#define G_HSSDIVSELA(x) (((x) >> S_HSSDIVSELA) & M_HSSDIVSELA)
-
-#define S_HSSDIVSELB 0
-#define M_HSSDIVSELB 0x1ffU
-#define V_HSSDIVSELB(x) ((x) << S_HSSDIVSELB)
-#define G_HSSDIVSELB(x) (((x) >> S_HSSDIVSELB) & M_HSSDIVSELB)
-
-#define A_MAC_PORT_HSS_STATUS 0x904
-
-#define S_HSSPLLLOCKB 3
-#define V_HSSPLLLOCKB(x) ((x) << S_HSSPLLLOCKB)
-#define F_HSSPLLLOCKB V_HSSPLLLOCKB(1U)
-
-#define S_HSSPLLLOCKA 2
-#define V_HSSPLLLOCKA(x) ((x) << S_HSSPLLLOCKA)
-#define F_HSSPLLLOCKA V_HSSPLLLOCKA(1U)
-
-#define S_HSSPRTREADYB 1
-#define V_HSSPRTREADYB(x) ((x) << S_HSSPRTREADYB)
-#define F_HSSPRTREADYB V_HSSPRTREADYB(1U)
-
-#define S_HSSPRTREADYA 0
-#define V_HSSPRTREADYA(x) ((x) << S_HSSPRTREADYA)
-#define F_HSSPRTREADYA V_HSSPRTREADYA(1U)
-
-#define A_MAC_PORT_HSS_EEE_STATUS 0x908
-
-#define S_RXAQUIET_STATUS 15
-#define V_RXAQUIET_STATUS(x) ((x) << S_RXAQUIET_STATUS)
-#define F_RXAQUIET_STATUS V_RXAQUIET_STATUS(1U)
-
-#define S_RXAREFRESH_STATUS 14
-#define V_RXAREFRESH_STATUS(x) ((x) << S_RXAREFRESH_STATUS)
-#define F_RXAREFRESH_STATUS V_RXAREFRESH_STATUS(1U)
-
-#define S_RXBQUIET_STATUS 13
-#define V_RXBQUIET_STATUS(x) ((x) << S_RXBQUIET_STATUS)
-#define F_RXBQUIET_STATUS V_RXBQUIET_STATUS(1U)
-
-#define S_RXBREFRESH_STATUS 12
-#define V_RXBREFRESH_STATUS(x) ((x) << S_RXBREFRESH_STATUS)
-#define F_RXBREFRESH_STATUS V_RXBREFRESH_STATUS(1U)
-
-#define S_RXCQUIET_STATUS 11
-#define V_RXCQUIET_STATUS(x) ((x) << S_RXCQUIET_STATUS)
-#define F_RXCQUIET_STATUS V_RXCQUIET_STATUS(1U)
-
-#define S_RXCREFRESH_STATUS 10
-#define V_RXCREFRESH_STATUS(x) ((x) << S_RXCREFRESH_STATUS)
-#define F_RXCREFRESH_STATUS V_RXCREFRESH_STATUS(1U)
-
-#define S_RXDQUIET_STATUS 9
-#define V_RXDQUIET_STATUS(x) ((x) << S_RXDQUIET_STATUS)
-#define F_RXDQUIET_STATUS V_RXDQUIET_STATUS(1U)
-
-#define S_RXDREFRESH_STATUS 8
-#define V_RXDREFRESH_STATUS(x) ((x) << S_RXDREFRESH_STATUS)
-#define F_RXDREFRESH_STATUS V_RXDREFRESH_STATUS(1U)
-
-#define S_TXAQUIET_STATUS 7
-#define V_TXAQUIET_STATUS(x) ((x) << S_TXAQUIET_STATUS)
-#define F_TXAQUIET_STATUS V_TXAQUIET_STATUS(1U)
-
-#define S_TXAREFRESH_STATUS 6
-#define V_TXAREFRESH_STATUS(x) ((x) << S_TXAREFRESH_STATUS)
-#define F_TXAREFRESH_STATUS V_TXAREFRESH_STATUS(1U)
-
-#define S_TXBQUIET_STATUS 5
-#define V_TXBQUIET_STATUS(x) ((x) << S_TXBQUIET_STATUS)
-#define F_TXBQUIET_STATUS V_TXBQUIET_STATUS(1U)
-
-#define S_TXBREFRESH_STATUS 4
-#define V_TXBREFRESH_STATUS(x) ((x) << S_TXBREFRESH_STATUS)
-#define F_TXBREFRESH_STATUS V_TXBREFRESH_STATUS(1U)
-
-#define S_TXCQUIET_STATUS 3
-#define V_TXCQUIET_STATUS(x) ((x) << S_TXCQUIET_STATUS)
-#define F_TXCQUIET_STATUS V_TXCQUIET_STATUS(1U)
-
-#define S_TXCREFRESH_STATUS 2
-#define V_TXCREFRESH_STATUS(x) ((x) << S_TXCREFRESH_STATUS)
-#define F_TXCREFRESH_STATUS V_TXCREFRESH_STATUS(1U)
-
-#define S_TXDQUIET_STATUS 1
-#define V_TXDQUIET_STATUS(x) ((x) << S_TXDQUIET_STATUS)
-#define F_TXDQUIET_STATUS V_TXDQUIET_STATUS(1U)
-
-#define S_TXDREFRESH_STATUS 0
-#define V_TXDREFRESH_STATUS(x) ((x) << S_TXDREFRESH_STATUS)
-#define F_TXDREFRESH_STATUS V_TXDREFRESH_STATUS(1U)
-
-#define A_MAC_PORT_HSS_SIGDET_STATUS 0x90c
-#define A_MAC_PORT_HSS_PL_CTL 0x910
-
-#define S_TOV 16
-#define M_TOV 0xffU
-#define V_TOV(x) ((x) << S_TOV)
-#define G_TOV(x) (((x) >> S_TOV) & M_TOV)
-
-#define S_TSU 8
-#define M_TSU 0xffU
-#define V_TSU(x) ((x) << S_TSU)
-#define G_TSU(x) (((x) >> S_TSU) & M_TSU)
-
-#define S_IPW 0
-#define M_IPW 0xffU
-#define V_IPW(x) ((x) << S_IPW)
-#define G_IPW(x) (((x) >> S_IPW) & M_IPW)
-
-#define A_MAC_PORT_RUNT_FRAME 0x914
-
-#define S_RUNTCLEAR 16
-#define V_RUNTCLEAR(x) ((x) << S_RUNTCLEAR)
-#define F_RUNTCLEAR V_RUNTCLEAR(1U)
-
-#define S_RUNT 0
-#define M_RUNT 0xffffU
-#define V_RUNT(x) ((x) << S_RUNT)
-#define G_RUNT(x) (((x) >> S_RUNT) & M_RUNT)
-
-#define A_MAC_PORT_EEE_STATUS 0x918
-
-#define S_EEE_TX_10G_STATE 10
-#define M_EEE_TX_10G_STATE 0x3U
-#define V_EEE_TX_10G_STATE(x) ((x) << S_EEE_TX_10G_STATE)
-#define G_EEE_TX_10G_STATE(x) (((x) >> S_EEE_TX_10G_STATE) & M_EEE_TX_10G_STATE)
-
-#define S_EEE_RX_10G_STATE 8
-#define M_EEE_RX_10G_STATE 0x3U
-#define V_EEE_RX_10G_STATE(x) ((x) << S_EEE_RX_10G_STATE)
-#define G_EEE_RX_10G_STATE(x) (((x) >> S_EEE_RX_10G_STATE) & M_EEE_RX_10G_STATE)
-
-#define S_EEE_TX_1G_STATE 6
-#define M_EEE_TX_1G_STATE 0x3U
-#define V_EEE_TX_1G_STATE(x) ((x) << S_EEE_TX_1G_STATE)
-#define G_EEE_TX_1G_STATE(x) (((x) >> S_EEE_TX_1G_STATE) & M_EEE_TX_1G_STATE)
-
-#define S_EEE_RX_1G_STATE 4
-#define M_EEE_RX_1G_STATE 0x3U
-#define V_EEE_RX_1G_STATE(x) ((x) << S_EEE_RX_1G_STATE)
-#define G_EEE_RX_1G_STATE(x) (((x) >> S_EEE_RX_1G_STATE) & M_EEE_RX_1G_STATE)
-
-#define S_PMA_RX_REFRESH 3
-#define V_PMA_RX_REFRESH(x) ((x) << S_PMA_RX_REFRESH)
-#define F_PMA_RX_REFRESH V_PMA_RX_REFRESH(1U)
-
-#define S_PMA_RX_QUIET 2
-#define V_PMA_RX_QUIET(x) ((x) << S_PMA_RX_QUIET)
-#define F_PMA_RX_QUIET V_PMA_RX_QUIET(1U)
-
-#define S_PMA_TX_REFRESH 1
-#define V_PMA_TX_REFRESH(x) ((x) << S_PMA_TX_REFRESH)
-#define F_PMA_TX_REFRESH V_PMA_TX_REFRESH(1U)
-
-#define S_PMA_TX_QUIET 0
-#define V_PMA_TX_QUIET(x) ((x) << S_PMA_TX_QUIET)
-#define F_PMA_TX_QUIET V_PMA_TX_QUIET(1U)
-
-#define A_MAC_PORT_CGEN 0x91c
-
-#define S_CGEN 8
-#define V_CGEN(x) ((x) << S_CGEN)
-#define F_CGEN V_CGEN(1U)
-
-#define S_SD7_CGEN 7
-#define V_SD7_CGEN(x) ((x) << S_SD7_CGEN)
-#define F_SD7_CGEN V_SD7_CGEN(1U)
-
-#define S_SD6_CGEN 6
-#define V_SD6_CGEN(x) ((x) << S_SD6_CGEN)
-#define F_SD6_CGEN V_SD6_CGEN(1U)
-
-#define S_SD5_CGEN 5
-#define V_SD5_CGEN(x) ((x) << S_SD5_CGEN)
-#define F_SD5_CGEN V_SD5_CGEN(1U)
-
-#define S_SD4_CGEN 4
-#define V_SD4_CGEN(x) ((x) << S_SD4_CGEN)
-#define F_SD4_CGEN V_SD4_CGEN(1U)
-
-#define S_SD3_CGEN 3
-#define V_SD3_CGEN(x) ((x) << S_SD3_CGEN)
-#define F_SD3_CGEN V_SD3_CGEN(1U)
-
-#define S_SD2_CGEN 2
-#define V_SD2_CGEN(x) ((x) << S_SD2_CGEN)
-#define F_SD2_CGEN V_SD2_CGEN(1U)
-
-#define S_SD1_CGEN 1
-#define V_SD1_CGEN(x) ((x) << S_SD1_CGEN)
-#define F_SD1_CGEN V_SD1_CGEN(1U)
-
-#define S_SD0_CGEN 0
-#define V_SD0_CGEN(x) ((x) << S_SD0_CGEN)
-#define F_SD0_CGEN V_SD0_CGEN(1U)
-
-#define A_MAC_PORT_CGEN_MTIP 0x920
-
-#define S_MACSEG5_CGEN 11
-#define V_MACSEG5_CGEN(x) ((x) << S_MACSEG5_CGEN)
-#define F_MACSEG5_CGEN V_MACSEG5_CGEN(1U)
-
-#define S_PCSSEG5_CGEN 10
-#define V_PCSSEG5_CGEN(x) ((x) << S_PCSSEG5_CGEN)
-#define F_PCSSEG5_CGEN V_PCSSEG5_CGEN(1U)
-
-#define S_MACSEG4_CGEN 9
-#define V_MACSEG4_CGEN(x) ((x) << S_MACSEG4_CGEN)
-#define F_MACSEG4_CGEN V_MACSEG4_CGEN(1U)
-
-#define S_PCSSEG4_CGEN 8
-#define V_PCSSEG4_CGEN(x) ((x) << S_PCSSEG4_CGEN)
-#define F_PCSSEG4_CGEN V_PCSSEG4_CGEN(1U)
-
-#define S_MACSEG3_CGEN 7
-#define V_MACSEG3_CGEN(x) ((x) << S_MACSEG3_CGEN)
-#define F_MACSEG3_CGEN V_MACSEG3_CGEN(1U)
-
-#define S_PCSSEG3_CGEN 6
-#define V_PCSSEG3_CGEN(x) ((x) << S_PCSSEG3_CGEN)
-#define F_PCSSEG3_CGEN V_PCSSEG3_CGEN(1U)
-
-#define S_MACSEG2_CGEN 5
-#define V_MACSEG2_CGEN(x) ((x) << S_MACSEG2_CGEN)
-#define F_MACSEG2_CGEN V_MACSEG2_CGEN(1U)
-
-#define S_PCSSEG2_CGEN 4
-#define V_PCSSEG2_CGEN(x) ((x) << S_PCSSEG2_CGEN)
-#define F_PCSSEG2_CGEN V_PCSSEG2_CGEN(1U)
-
-#define S_MACSEG1_CGEN 3
-#define V_MACSEG1_CGEN(x) ((x) << S_MACSEG1_CGEN)
-#define F_MACSEG1_CGEN V_MACSEG1_CGEN(1U)
-
-#define S_PCSSEG1_CGEN 2
-#define V_PCSSEG1_CGEN(x) ((x) << S_PCSSEG1_CGEN)
-#define F_PCSSEG1_CGEN V_PCSSEG1_CGEN(1U)
-
-#define S_MACSEG0_CGEN 1
-#define V_MACSEG0_CGEN(x) ((x) << S_MACSEG0_CGEN)
-#define F_MACSEG0_CGEN V_MACSEG0_CGEN(1U)
-
-#define S_PCSSEG0_CGEN 0
-#define V_PCSSEG0_CGEN(x) ((x) << S_PCSSEG0_CGEN)
-#define F_PCSSEG0_CGEN V_PCSSEG0_CGEN(1U)
-
-#define A_MAC_PORT_TX_TS_ID 0x924
-
-#define S_TS_ID 0
-#define M_TS_ID 0x7U
-#define V_TS_ID(x) ((x) << S_TS_ID)
-#define G_TS_ID(x) (((x) >> S_TS_ID) & M_TS_ID)
-
-#define A_MAC_PORT_TX_TS_VAL_LO 0x928
-#define A_MAC_PORT_TX_TS_VAL_HI 0x92c
-#define A_MAC_PORT_EEE_CTL 0x930
-
-#define S_EEE_CTRL 2
-#define M_EEE_CTRL 0x3fffffffU
-#define V_EEE_CTRL(x) ((x) << S_EEE_CTRL)
-#define G_EEE_CTRL(x) (((x) >> S_EEE_CTRL) & M_EEE_CTRL)
-
-#define S_TICK_START 1
-#define V_TICK_START(x) ((x) << S_TICK_START)
-#define F_TICK_START V_TICK_START(1U)
-
-#define S_EEE_ENABLE 0
-#define V_EEE_ENABLE(x) ((x) << S_EEE_ENABLE)
-#define F_EEE_ENABLE V_EEE_ENABLE(1U)
-
-#define A_MAC_PORT_EEE_TX_CTL 0x934
-
-#define S_WAKE_TIMER 16
-#define M_WAKE_TIMER 0xffffU
-#define V_WAKE_TIMER(x) ((x) << S_WAKE_TIMER)
-#define G_WAKE_TIMER(x) (((x) >> S_WAKE_TIMER) & M_WAKE_TIMER)
-
-#define S_HSS_TIMER 5
-#define M_HSS_TIMER 0xfU
-#define V_HSS_TIMER(x) ((x) << S_HSS_TIMER)
-#define G_HSS_TIMER(x) (((x) >> S_HSS_TIMER) & M_HSS_TIMER)
-
-#define S_HSS_CTL 4
-#define V_HSS_CTL(x) ((x) << S_HSS_CTL)
-#define F_HSS_CTL V_HSS_CTL(1U)
-
-#define S_LPI_ACTIVE 3
-#define V_LPI_ACTIVE(x) ((x) << S_LPI_ACTIVE)
-#define F_LPI_ACTIVE V_LPI_ACTIVE(1U)
-
-#define S_LPI_TXHOLD 2
-#define V_LPI_TXHOLD(x) ((x) << S_LPI_TXHOLD)
-#define F_LPI_TXHOLD V_LPI_TXHOLD(1U)
-
-#define S_LPI_REQ 1
-#define V_LPI_REQ(x) ((x) << S_LPI_REQ)
-#define F_LPI_REQ V_LPI_REQ(1U)
-
-#define S_EEE_TX_RESET 0
-#define V_EEE_TX_RESET(x) ((x) << S_EEE_TX_RESET)
-#define F_EEE_TX_RESET V_EEE_TX_RESET(1U)
-
-#define A_MAC_PORT_EEE_RX_CTL 0x938
-
-#define S_LPI_IND 1
-#define V_LPI_IND(x) ((x) << S_LPI_IND)
-#define F_LPI_IND V_LPI_IND(1U)
-
-#define S_EEE_RX_RESET 0
-#define V_EEE_RX_RESET(x) ((x) << S_EEE_RX_RESET)
-#define F_EEE_RX_RESET V_EEE_RX_RESET(1U)
-
-#define A_MAC_PORT_EEE_TX_10G_SLEEP_TIMER 0x93c
-#define A_MAC_PORT_EEE_TX_10G_QUIET_TIMER 0x940
-#define A_MAC_PORT_EEE_TX_10G_WAKE_TIMER 0x944
-#define A_MAC_PORT_EEE_TX_1G_SLEEP_TIMER 0x948
-#define A_MAC_PORT_EEE_TX_1G_QUIET_TIMER 0x94c
-#define A_MAC_PORT_EEE_TX_1G_REFRESH_TIMER 0x950
-#define A_MAC_PORT_EEE_RX_10G_QUIET_TIMER 0x954
-#define A_MAC_PORT_EEE_RX_10G_WAKE_TIMER 0x958
-#define A_MAC_PORT_EEE_RX_10G_WF_TIMER 0x95c
-#define A_MAC_PORT_EEE_RX_1G_QUIET_TIMER 0x960
-#define A_MAC_PORT_EEE_RX_1G_WAKE_TIMER 0x964
-#define A_MAC_PORT_EEE_WF_COUNT 0x968
-
-#define S_WAKE_CNT_CLR 16
-#define V_WAKE_CNT_CLR(x) ((x) << S_WAKE_CNT_CLR)
-#define F_WAKE_CNT_CLR V_WAKE_CNT_CLR(1U)
-
-#define S_WAKE_CNT 0
-#define M_WAKE_CNT 0xffffU
-#define V_WAKE_CNT(x) ((x) << S_WAKE_CNT)
-#define G_WAKE_CNT(x) (((x) >> S_WAKE_CNT) & M_WAKE_CNT)
-
-#define A_MAC_PORT_PTP_TIMER_RD0_LO 0x96c
-#define A_MAC_PORT_PTP_TIMER_RD0_HI 0x970
-#define A_MAC_PORT_PTP_TIMER_RD1_LO 0x974
-#define A_MAC_PORT_PTP_TIMER_RD1_HI 0x978
-#define A_MAC_PORT_PTP_TIMER_WR_LO 0x97c
-#define A_MAC_PORT_PTP_TIMER_WR_HI 0x980
-#define A_MAC_PORT_PTP_TIMER_OFFSET_0 0x984
-#define A_MAC_PORT_PTP_TIMER_OFFSET_1 0x988
-#define A_MAC_PORT_PTP_TIMER_OFFSET_2 0x98c
-
-#define S_PTP_OFFSET 0
-#define M_PTP_OFFSET 0xffU
-#define V_PTP_OFFSET(x) ((x) << S_PTP_OFFSET)
-#define G_PTP_OFFSET(x) (((x) >> S_PTP_OFFSET) & M_PTP_OFFSET)
-
-#define A_MAC_PORT_PTP_SUM_LO 0x990
-#define A_MAC_PORT_PTP_SUM_HI 0x994
-#define A_MAC_PORT_PTP_TIMER_INCR0 0x998
-
-#define S_Y 16
-#define M_Y 0xffffU
-#define V_Y(x) ((x) << S_Y)
-#define G_Y(x) (((x) >> S_Y) & M_Y)
-
-#define S_X 0
-#define M_X 0xffffU
-#define V_X(x) ((x) << S_X)
-#define G_X(x) (((x) >> S_X) & M_X)
-
-#define A_MAC_PORT_PTP_TIMER_INCR1 0x99c
-
-#define S_Y_TICK 16
-#define M_Y_TICK 0xffffU
-#define V_Y_TICK(x) ((x) << S_Y_TICK)
-#define G_Y_TICK(x) (((x) >> S_Y_TICK) & M_Y_TICK)
-
-#define S_X_TICK 0
-#define M_X_TICK 0xffffU
-#define V_X_TICK(x) ((x) << S_X_TICK)
-#define G_X_TICK(x) (((x) >> S_X_TICK) & M_X_TICK)
-
-#define A_MAC_PORT_PTP_DRIFT_ADJUST_COUNT 0x9a0
-#define A_MAC_PORT_PTP_OFFSET_ADJUST_FINE 0x9a4
-
-#define S_B 16
-#define M_B 0xffffU
-#define V_B(x) ((x) << S_B)
-#define G_B(x) (((x) >> S_B) & M_B)
-
-#define S_A 0
-#define M_A 0xffffU
-#define V_A(x) ((x) << S_A)
-#define G_A(x) (((x) >> S_A) & M_A)
-
-#define A_MAC_PORT_PTP_OFFSET_ADJUST_TOTAL 0x9a8
-#define A_MAC_PORT_PTP_CFG 0x9ac
-
-#define S_FRZ 18
-#define V_FRZ(x) ((x) << S_FRZ)
-#define F_FRZ V_FRZ(1U)
-
-#define S_OFFSER_ADJUST_SIGN 17
-#define V_OFFSER_ADJUST_SIGN(x) ((x) << S_OFFSER_ADJUST_SIGN)
-#define F_OFFSER_ADJUST_SIGN V_OFFSER_ADJUST_SIGN(1U)
-
-#define S_ADD_OFFSET 16
-#define V_ADD_OFFSET(x) ((x) << S_ADD_OFFSET)
-#define F_ADD_OFFSET V_ADD_OFFSET(1U)
-
-#define S_CYCLE1 8
-#define M_CYCLE1 0xffU
-#define V_CYCLE1(x) ((x) << S_CYCLE1)
-#define G_CYCLE1(x) (((x) >> S_CYCLE1) & M_CYCLE1)
-
-#define S_Q 0
-#define M_Q 0xffU
-#define V_Q(x) ((x) << S_Q)
-#define G_Q(x) (((x) >> S_Q) & M_Q)
-
-#define A_MAC_PORT_MTIP_REVISION 0xa00
-
-#define S_CUSTREV 16
-#define M_CUSTREV 0xffffU
-#define V_CUSTREV(x) ((x) << S_CUSTREV)
-#define G_CUSTREV(x) (((x) >> S_CUSTREV) & M_CUSTREV)
-
-#define S_VER 8
-#define M_VER 0xffU
-#define V_VER(x) ((x) << S_VER)
-#define G_VER(x) (((x) >> S_VER) & M_VER)
-
-#define S_MTIP_REV 0
-#define M_MTIP_REV 0xffU
-#define V_MTIP_REV(x) ((x) << S_MTIP_REV)
-#define G_MTIP_REV(x) (((x) >> S_MTIP_REV) & M_MTIP_REV)
-
-#define A_MAC_PORT_MTIP_SCRATCH 0xa04
-#define A_MAC_PORT_MTIP_COMMAND_CONFIG 0xa08
-
-#define S_TX_FLUSH_ENABLE 22
-#define V_TX_FLUSH_ENABLE(x) ((x) << S_TX_FLUSH_ENABLE)
-#define F_TX_FLUSH_ENABLE V_TX_FLUSH_ENABLE(1U)
-
-#define S_RX_SFD_ANY 21
-#define V_RX_SFD_ANY(x) ((x) << S_RX_SFD_ANY)
-#define F_RX_SFD_ANY V_RX_SFD_ANY(1U)
-
-#define S_PAUSE_PFC_COMP 20
-#define V_PAUSE_PFC_COMP(x) ((x) << S_PAUSE_PFC_COMP)
-#define F_PAUSE_PFC_COMP V_PAUSE_PFC_COMP(1U)
-
-#define S_PFC_MODE 19
-#define V_PFC_MODE(x) ((x) << S_PFC_MODE)
-#define F_PFC_MODE V_PFC_MODE(1U)
-
-#define S_RS_COL_CNT_EXT 18
-#define V_RS_COL_CNT_EXT(x) ((x) << S_RS_COL_CNT_EXT)
-#define F_RS_COL_CNT_EXT V_RS_COL_CNT_EXT(1U)
-
-#define S_NO_LGTH_CHECK 17
-#define V_NO_LGTH_CHECK(x) ((x) << S_NO_LGTH_CHECK)
-#define F_NO_LGTH_CHECK V_NO_LGTH_CHECK(1U)
-
-#define S_SEND_IDLE 16
-#define V_SEND_IDLE(x) ((x) << S_SEND_IDLE)
-#define F_SEND_IDLE V_SEND_IDLE(1U)
-
-#define S_PHY_TXENA 15
-#define V_PHY_TXENA(x) ((x) << S_PHY_TXENA)
-#define F_PHY_TXENA V_PHY_TXENA(1U)
-
-#define S_RX_ERR_DISC 14
-#define V_RX_ERR_DISC(x) ((x) << S_RX_ERR_DISC)
-#define F_RX_ERR_DISC V_RX_ERR_DISC(1U)
-
-#define S_CMD_FRAME_ENA 13
-#define V_CMD_FRAME_ENA(x) ((x) << S_CMD_FRAME_ENA)
-#define F_CMD_FRAME_ENA V_CMD_FRAME_ENA(1U)
-
-#define S_SW_RESET 12
-#define V_SW_RESET(x) ((x) << S_SW_RESET)
-#define F_SW_RESET V_SW_RESET(1U)
-
-#define S_TX_PAD_EN 11
-#define V_TX_PAD_EN(x) ((x) << S_TX_PAD_EN)
-#define F_TX_PAD_EN V_TX_PAD_EN(1U)
-
-#define S_PHY_LOOPBACK_EN 10
-#define V_PHY_LOOPBACK_EN(x) ((x) << S_PHY_LOOPBACK_EN)
-#define F_PHY_LOOPBACK_EN V_PHY_LOOPBACK_EN(1U)
-
-#define S_TX_ADDR_INS 9
-#define V_TX_ADDR_INS(x) ((x) << S_TX_ADDR_INS)
-#define F_TX_ADDR_INS V_TX_ADDR_INS(1U)
-
-#define S_PAUSE_IGNORE 8
-#define V_PAUSE_IGNORE(x) ((x) << S_PAUSE_IGNORE)
-#define F_PAUSE_IGNORE V_PAUSE_IGNORE(1U)
-
-#define S_PAUSE_FWD 7
-#define V_PAUSE_FWD(x) ((x) << S_PAUSE_FWD)
-#define F_PAUSE_FWD V_PAUSE_FWD(1U)
-
-#define S_CRC_FWD 6
-#define V_CRC_FWD(x) ((x) << S_CRC_FWD)
-#define F_CRC_FWD V_CRC_FWD(1U)
-
-#define S_PAD_EN 5
-#define V_PAD_EN(x) ((x) << S_PAD_EN)
-#define F_PAD_EN V_PAD_EN(1U)
-
-#define S_PROMIS_EN 4
-#define V_PROMIS_EN(x) ((x) << S_PROMIS_EN)
-#define F_PROMIS_EN V_PROMIS_EN(1U)
-
-#define S_WAN_MODE 3
-#define V_WAN_MODE(x) ((x) << S_WAN_MODE)
-#define F_WAN_MODE V_WAN_MODE(1U)
-
-#define S_RX_ENA 1
-#define V_RX_ENA(x) ((x) << S_RX_ENA)
-#define F_RX_ENA V_RX_ENA(1U)
-
-#define S_TX_ENA 0
-#define V_TX_ENA(x) ((x) << S_TX_ENA)
-#define F_TX_ENA V_TX_ENA(1U)
-
-#define A_MAC_PORT_MTIP_MAC_ADDR_0 0xa0c
-#define A_MAC_PORT_MTIP_MAC_ADDR_1 0xa10
-
-#define S_MACADDRHI 0
-#define M_MACADDRHI 0xffffU
-#define V_MACADDRHI(x) ((x) << S_MACADDRHI)
-#define G_MACADDRHI(x) (((x) >> S_MACADDRHI) & M_MACADDRHI)
-
-#define A_MAC_PORT_MTIP_FRM_LENGTH 0xa14
-
-#define S_LEN 0
-#define M_LEN 0xffffU
-#define V_LEN(x) ((x) << S_LEN)
-#define G_LEN(x) (((x) >> S_LEN) & M_LEN)
-
-#define A_MAC_PORT_MTIP_RX_FIFO_SECTIONS 0xa1c
-
-#define S_AVAIL 16
-#define M_AVAIL 0xffffU
-#define V_AVAIL(x) ((x) << S_AVAIL)
-#define G_AVAIL(x) (((x) >> S_AVAIL) & M_AVAIL)
-
-#define S_EMPTY 0
-#define M_EMPTY 0xffffU
-#define V_EMPTY(x) ((x) << S_EMPTY)
-#define G_EMPTY(x) (((x) >> S_EMPTY) & M_EMPTY)
-
-#define A_MAC_PORT_MTIP_TX_FIFO_SECTIONS 0xa20
-#define A_MAC_PORT_MTIP_RX_FIFO_ALMOST_F_E 0xa24
-
-#define S_ALMSTFULL 16
-#define M_ALMSTFULL 0xffffU
-#define V_ALMSTFULL(x) ((x) << S_ALMSTFULL)
-#define G_ALMSTFULL(x) (((x) >> S_ALMSTFULL) & M_ALMSTFULL)
-
-#define S_ALMSTEMPTY 0
-#define M_ALMSTEMPTY 0xffffU
-#define V_ALMSTEMPTY(x) ((x) << S_ALMSTEMPTY)
-#define G_ALMSTEMPTY(x) (((x) >> S_ALMSTEMPTY) & M_ALMSTEMPTY)
-
-#define A_MAC_PORT_MTIP_TX_FIFO_ALMOST_F_E 0xa28
-#define A_MAC_PORT_MTIP_HASHTABLE_LOAD 0xa2c
-
-#define S_ENABLE_MCAST_RX 8
-#define V_ENABLE_MCAST_RX(x) ((x) << S_ENABLE_MCAST_RX)
-#define F_ENABLE_MCAST_RX V_ENABLE_MCAST_RX(1U)
-
-#define S_HASHTABLE_ADDR 0
-#define M_HASHTABLE_ADDR 0x3fU
-#define V_HASHTABLE_ADDR(x) ((x) << S_HASHTABLE_ADDR)
-#define G_HASHTABLE_ADDR(x) (((x) >> S_HASHTABLE_ADDR) & M_HASHTABLE_ADDR)
-
-#define A_MAC_PORT_MTIP_MAC_STATUS 0xa40
-
-#define S_TS_AVAIL 3
-#define V_TS_AVAIL(x) ((x) << S_TS_AVAIL)
-#define F_TS_AVAIL V_TS_AVAIL(1U)
-
-#define S_PHY_LOS 2
-#define V_PHY_LOS(x) ((x) << S_PHY_LOS)
-#define F_PHY_LOS V_PHY_LOS(1U)
-
-#define S_RX_REM_FAULT 1
-#define V_RX_REM_FAULT(x) ((x) << S_RX_REM_FAULT)
-#define F_RX_REM_FAULT V_RX_REM_FAULT(1U)
-
-#define S_RX_LOC_FAULT 0
-#define V_RX_LOC_FAULT(x) ((x) << S_RX_LOC_FAULT)
-#define F_RX_LOC_FAULT V_RX_LOC_FAULT(1U)
-
-#define A_MAC_PORT_MTIP_TX_IPG_LENGTH 0xa44
-
-#define S_IPG 0
-#define M_IPG 0x7fU
-#define V_IPG(x) ((x) << S_IPG)
-#define G_IPG(x) (((x) >> S_IPG) & M_IPG)
-
-#define A_MAC_PORT_MTIP_MAC_CREDIT_TRIGGER 0xa48
-
-#define S_RXFIFORST 0
-#define V_RXFIFORST(x) ((x) << S_RXFIFORST)
-#define F_RXFIFORST V_RXFIFORST(1U)
-
-#define A_MAC_PORT_MTIP_INIT_CREDIT 0xa4c
-
-#define S_MACCRDRST 0
-#define M_MACCRDRST 0xffU
-#define V_MACCRDRST(x) ((x) << S_MACCRDRST)
-#define G_MACCRDRST(x) (((x) >> S_MACCRDRST) & M_MACCRDRST)
-
-#define A_MAC_PORT_MTIP_CURRENT_CREDIT 0xa50
-
-#define S_INITCREDIT 0
-#define M_INITCREDIT 0xffU
-#define V_INITCREDIT(x) ((x) << S_INITCREDIT)
-#define G_INITCREDIT(x) (((x) >> S_INITCREDIT) & M_INITCREDIT)
-
-#define A_MAC_PORT_RX_PAUSE_STATUS 0xa74
-
-#define S_STATUS 0
-#define M_STATUS 0xffU
-#define V_STATUS(x) ((x) << S_STATUS)
-#define G_STATUS(x) (((x) >> S_STATUS) & M_STATUS)
-
-#define A_MAC_PORT_MTIP_TS_TIMESTAMP 0xa7c
-#define A_MAC_PORT_AFRAMESTRANSMITTEDOK 0xa80
-#define A_MAC_PORT_AFRAMESTRANSMITTEDOKHI 0xa84
-#define A_MAC_PORT_AFRAMESRECEIVEDOK 0xa88
-#define A_MAC_PORT_AFRAMESRECEIVEDOKHI 0xa8c
-#define A_MAC_PORT_AFRAMECHECKSEQUENCEERRORS 0xa90
-#define A_MAC_PORT_AFRAMECHECKSEQUENCEERRORSHI 0xa94
-#define A_MAC_PORT_AALIGNMENTERRORS 0xa98
-#define A_MAC_PORT_AALIGNMENTERRORSHI 0xa9c
-#define A_MAC_PORT_APAUSEMACCTRLFRAMESTRANSMITTED 0xaa0
-#define A_MAC_PORT_APAUSEMACCTRLFRAMESTRANSMITTEDHI 0xaa4
-#define A_MAC_PORT_APAUSEMACCTRLFRAMESRECEIVED 0xaa8
-#define A_MAC_PORT_APAUSEMACCTRLFRAMESRECEIVEDHI 0xaac
-#define A_MAC_PORT_AFRAMETOOLONGERRORS 0xab0
-#define A_MAC_PORT_AFRAMETOOLONGERRORSHI 0xab4
-#define A_MAC_PORT_AINRANGELENGTHERRORS 0xab8
-#define A_MAC_PORT_AINRANGELENGTHERRORSHI 0xabc
-#define A_MAC_PORT_VLANTRANSMITTEDOK 0xac0
-#define A_MAC_PORT_VLANTRANSMITTEDOKHI 0xac4
-#define A_MAC_PORT_VLANRECEIVEDOK 0xac8
-#define A_MAC_PORT_VLANRECEIVEDOKHI 0xacc
-#define A_MAC_PORT_AOCTETSTRANSMITTEDOK 0xad0
-#define A_MAC_PORT_AOCTETSTRANSMITTEDOKHI 0xad4
-#define A_MAC_PORT_AOCTETSRECEIVEDOK 0xad8
-#define A_MAC_PORT_AOCTETSRECEIVEDOKHI 0xadc
-#define A_MAC_PORT_IFINUCASTPKTS 0xae0
-#define A_MAC_PORT_IFINUCASTPKTSHI 0xae4
-#define A_MAC_PORT_IFINMULTICASTPKTS 0xae8
-#define A_MAC_PORT_IFINMULTICASTPKTSHI 0xaec
-#define A_MAC_PORT_IFINBROADCASTPKTS 0xaf0
-#define A_MAC_PORT_IFINBROADCASTPKTSHI 0xaf4
-#define A_MAC_PORT_IFOUTERRORS 0xaf8
-#define A_MAC_PORT_IFOUTERRORSHI 0xafc
-#define A_MAC_PORT_IFOUTUCASTPKTS 0xb08
-#define A_MAC_PORT_IFOUTUCASTPKTSHI 0xb0c
-#define A_MAC_PORT_IFOUTMULTICASTPKTS 0xb10
-#define A_MAC_PORT_IFOUTMULTICASTPKTSHI 0xb14
-#define A_MAC_PORT_IFOUTBROADCASTPKTS 0xb18
-#define A_MAC_PORT_IFOUTBROADCASTPKTSHI 0xb1c
-#define A_MAC_PORT_ETHERSTATSDROPEVENTS 0xb20
-#define A_MAC_PORT_ETHERSTATSDROPEVENTSHI 0xb24
-#define A_MAC_PORT_ETHERSTATSOCTETS 0xb28
-#define A_MAC_PORT_ETHERSTATSOCTETSHI 0xb2c
-#define A_MAC_PORT_ETHERSTATSPKTS 0xb30
-#define A_MAC_PORT_ETHERSTATSPKTSHI 0xb34
-#define A_MAC_PORT_ETHERSTATSUNDERSIZEPKTS 0xb38
-#define A_MAC_PORT_ETHERSTATSUNDERSIZEPKTSHI 0xb3c
-#define A_MAC_PORT_ETHERSTATSPKTS64OCTETS 0xb40
-#define A_MAC_PORT_ETHERSTATSPKTS64OCTETSHI 0xb44
-#define A_MAC_PORT_ETHERSTATSPKTS65TO127OCTETS 0xb48
-#define A_MAC_PORT_ETHERSTATSPKTS65TO127OCTETSHI 0xb4c
-#define A_MAC_PORT_ETHERSTATSPKTS128TO255OCTETS 0xb50
-#define A_MAC_PORT_ETHERSTATSPKTS128TO255OCTETSHI 0xb54
-#define A_MAC_PORT_ETHERSTATSPKTS256TO511OCTETS 0xb58
-#define A_MAC_PORT_ETHERSTATSPKTS256TO511OCTETSHI 0xb5c
-#define A_MAC_PORT_ETHERSTATSPKTS512TO1023OCTETS 0xb60
-#define A_MAC_PORT_ETHERSTATSPKTS512TO1023OCTETSHI 0xb64
-#define A_MAC_PORT_ETHERSTATSPKTS1024TO1518OCTETS 0xb68
-#define A_MAC_PORT_ETHERSTATSPKTS1024TO1518OCTETSHI 0xb6c
-#define A_MAC_PORT_ETHERSTATSPKTS1519TOMAXOCTETS 0xb70
-#define A_MAC_PORT_ETHERSTATSPKTS1519TOMAXOCTETSHI 0xb74
-#define A_MAC_PORT_ETHERSTATSOVERSIZEPKTS 0xb78
-#define A_MAC_PORT_ETHERSTATSOVERSIZEPKTSHI 0xb7c
-#define A_MAC_PORT_ETHERSTATSJABBERS 0xb80
-#define A_MAC_PORT_ETHERSTATSJABBERSHI 0xb84
-#define A_MAC_PORT_ETHERSTATSFRAGMENTS 0xb88
-#define A_MAC_PORT_ETHERSTATSFRAGMENTSHI 0xb8c
-#define A_MAC_PORT_IFINERRORS 0xb90
-#define A_MAC_PORT_IFINERRORSHI 0xb94
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_0 0xb98
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_0HI 0xb9c
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_1 0xba0
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_1HI 0xba4
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_2 0xba8
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_2HI 0xbac
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_3 0xbb0
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_3HI 0xbb4
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_4 0xbb8
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_4HI 0xbbc
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_5 0xbc0
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_5HI 0xbc4
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_6 0xbc8
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_6HI 0xbcc
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_7 0xbd0
-#define A_MAC_PORT_ACBFCPAUSEFRAMESTRANSMITTED_7HI 0xbd4
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_0 0xbd8
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_0HI 0xbdc
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_1 0xbe0
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_1HI 0xbe4
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_2 0xbe8
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_2HI 0xbec
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_3 0xbf0
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_3HI 0xbf4
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_4 0xbf8
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_4HI 0xbfc
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_5 0xc00
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_5HI 0xc04
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_6 0xc08
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_6HI 0xc0c
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_7 0xc10
-#define A_MAC_PORT_ACBFCPAUSEFRAMESRECEIVED_7HI 0xc14
-#define A_MAC_PORT_AMACCONTROLFRAMESTRANSMITTED 0xc18
-#define A_MAC_PORT_AMACCONTROLFRAMESTRANSMITTEDHI 0xc1c
-#define A_MAC_PORT_AMACCONTROLFRAMESRECEIVED 0xc20
-#define A_MAC_PORT_AMACCONTROLFRAMESRECEIVEDHI 0xc24
-#define A_MAC_PORT_MTIP_SGMII_CONTROL 0xd00
-
-#define S_RESET 15
-#define V_RESET(x) ((x) << S_RESET)
-#define F_RESET V_RESET(1U)
-
-#define S_LOOPBACK 14
-#define V_LOOPBACK(x) ((x) << S_LOOPBACK)
-#define F_LOOPBACK V_LOOPBACK(1U)
-
-#define S_SPPEDSEL1 13
-#define V_SPPEDSEL1(x) ((x) << S_SPPEDSEL1)
-#define F_SPPEDSEL1 V_SPPEDSEL1(1U)
-
-#define S_AN_EN 12
-#define V_AN_EN(x) ((x) << S_AN_EN)
-#define F_AN_EN V_AN_EN(1U)
-
-#define S_PWRDWN 11
-#define V_PWRDWN(x) ((x) << S_PWRDWN)
-#define F_PWRDWN V_PWRDWN(1U)
-
-#define S_ISOLATE 10
-#define V_ISOLATE(x) ((x) << S_ISOLATE)
-#define F_ISOLATE V_ISOLATE(1U)
-
-#define S_AN_RESTART 9
-#define V_AN_RESTART(x) ((x) << S_AN_RESTART)
-#define F_AN_RESTART V_AN_RESTART(1U)
-
-#define S_DPLX 8
-#define V_DPLX(x) ((x) << S_DPLX)
-#define F_DPLX V_DPLX(1U)
-
-#define S_COLLISIONTEST 7
-#define V_COLLISIONTEST(x) ((x) << S_COLLISIONTEST)
-#define F_COLLISIONTEST V_COLLISIONTEST(1U)
-
-#define S_SPEEDSEL0 6
-#define V_SPEEDSEL0(x) ((x) << S_SPEEDSEL0)
-#define F_SPEEDSEL0 V_SPEEDSEL0(1U)
-
-#define A_MAC_PORT_MTIP_SGMII_STATUS 0xd04
-
-#define S_100BASET4 15
-#define V_100BASET4(x) ((x) << S_100BASET4)
-#define F_100BASET4 V_100BASET4(1U)
-
-#define S_100BASEXFULLDPLX 14
-#define V_100BASEXFULLDPLX(x) ((x) << S_100BASEXFULLDPLX)
-#define F_100BASEXFULLDPLX V_100BASEXFULLDPLX(1U)
-
-#define S_100BASEXHALFDPLX 13
-#define V_100BASEXHALFDPLX(x) ((x) << S_100BASEXHALFDPLX)
-#define F_100BASEXHALFDPLX V_100BASEXHALFDPLX(1U)
-
-#define S_10MBPSFULLDPLX 12
-#define V_10MBPSFULLDPLX(x) ((x) << S_10MBPSFULLDPLX)
-#define F_10MBPSFULLDPLX V_10MBPSFULLDPLX(1U)
-
-#define S_10MBPSHALFDPLX 11
-#define V_10MBPSHALFDPLX(x) ((x) << S_10MBPSHALFDPLX)
-#define F_10MBPSHALFDPLX V_10MBPSHALFDPLX(1U)
-
-#define S_100BASET2FULLDPLX 10
-#define V_100BASET2FULLDPLX(x) ((x) << S_100BASET2FULLDPLX)
-#define F_100BASET2FULLDPLX V_100BASET2FULLDPLX(1U)
-
-#define S_100BASET2HALFDPLX 9
-#define V_100BASET2HALFDPLX(x) ((x) << S_100BASET2HALFDPLX)
-#define F_100BASET2HALFDPLX V_100BASET2HALFDPLX(1U)
-
-#define S_EXTDSTATUS 8
-#define V_EXTDSTATUS(x) ((x) << S_EXTDSTATUS)
-#define F_EXTDSTATUS V_EXTDSTATUS(1U)
-
-#define S_SGMII_REM_FAULT 4
-#define V_SGMII_REM_FAULT(x) ((x) << S_SGMII_REM_FAULT)
-#define F_SGMII_REM_FAULT V_SGMII_REM_FAULT(1U)
-
-#define S_JABBERDETECT 1
-#define V_JABBERDETECT(x) ((x) << S_JABBERDETECT)
-#define F_JABBERDETECT V_JABBERDETECT(1U)
-
-#define S_EXTDCAPABILITY 0
-#define V_EXTDCAPABILITY(x) ((x) << S_EXTDCAPABILITY)
-#define F_EXTDCAPABILITY V_EXTDCAPABILITY(1U)
-
-#define A_MAC_PORT_MTIP_SGMII_PHY_IDENTIFIER_0 0xd08
-#define A_MAC_PORT_MTIP_SGMII_PHY_IDENTIFIER_1 0xd0c
-#define A_MAC_PORT_MTIP_SGMII_DEV_ABILITY 0xd10
-
-#define S_RF2 13
-#define V_RF2(x) ((x) << S_RF2)
-#define F_RF2 V_RF2(1U)
-
-#define S_RF1 12
-#define V_RF1(x) ((x) << S_RF1)
-#define F_RF1 V_RF1(1U)
-
-#define S_PS2 8
-#define V_PS2(x) ((x) << S_PS2)
-#define F_PS2 V_PS2(1U)
-
-#define S_PS1 7
-#define V_PS1(x) ((x) << S_PS1)
-#define F_PS1 V_PS1(1U)
-
-#define S_HD 6
-#define V_HD(x) ((x) << S_HD)
-#define F_HD V_HD(1U)
-
-#define S_FD 5
-#define V_FD(x) ((x) << S_FD)
-#define F_FD V_FD(1U)
-
-#define A_MAC_PORT_MTIP_SGMII_PARTNER_ABILITY 0xd14
-
-#define S_CULINKSTATUS 15
-#define V_CULINKSTATUS(x) ((x) << S_CULINKSTATUS)
-#define F_CULINKSTATUS V_CULINKSTATUS(1U)
-
-#define S_CUDPLXSTATUS 12
-#define V_CUDPLXSTATUS(x) ((x) << S_CUDPLXSTATUS)
-#define F_CUDPLXSTATUS V_CUDPLXSTATUS(1U)
-
-#define S_CUSPEED 10
-#define M_CUSPEED 0x3U
-#define V_CUSPEED(x) ((x) << S_CUSPEED)
-#define G_CUSPEED(x) (((x) >> S_CUSPEED) & M_CUSPEED)
-
-#define A_MAC_PORT_MTIP_SGMII_AN_EXPANSION 0xd18
-
-#define S_PGRCVD 1
-#define V_PGRCVD(x) ((x) << S_PGRCVD)
-#define F_PGRCVD V_PGRCVD(1U)
-
-#define S_REALTIMEPGRCVD 0
-#define V_REALTIMEPGRCVD(x) ((x) << S_REALTIMEPGRCVD)
-#define F_REALTIMEPGRCVD V_REALTIMEPGRCVD(1U)
-
-#define A_MAC_PORT_MTIP_SGMII_DEVICE_NP 0xd1c
-#define A_MAC_PORT_MTIP_SGMII_PARTNER_NP 0xd20
-#define A_MAC_PORT_MTIP_SGMII_EXTENDED_STATUS 0xd3c
-#define A_MAC_PORT_MTIP_SGMII_LINK_TIMER_LO 0xd48
-
-#define S_COUNT_LO 0
-#define M_COUNT_LO 0xffffU
-#define V_COUNT_LO(x) ((x) << S_COUNT_LO)
-#define G_COUNT_LO(x) (((x) >> S_COUNT_LO) & M_COUNT_LO)
-
-#define A_MAC_PORT_MTIP_SGMII_LINK_TIMER_HI 0xd4c
-
-#define S_COUNT_HI 0
-#define M_COUNT_HI 0x1fU
-#define V_COUNT_HI(x) ((x) << S_COUNT_HI)
-#define G_COUNT_HI(x) (((x) >> S_COUNT_HI) & M_COUNT_HI)
-
-#define A_MAC_PORT_MTIP_SGMII_IF_MODE 0xd50
-
-#define S_SGMII_PCS_ENABLE 5
-#define V_SGMII_PCS_ENABLE(x) ((x) << S_SGMII_PCS_ENABLE)
-#define F_SGMII_PCS_ENABLE V_SGMII_PCS_ENABLE(1U)
-
-#define S_SGMII_HDUPLEX 4
-#define V_SGMII_HDUPLEX(x) ((x) << S_SGMII_HDUPLEX)
-#define F_SGMII_HDUPLEX V_SGMII_HDUPLEX(1U)
-
-#define S_SGMII_SPEED 2
-#define M_SGMII_SPEED 0x3U
-#define V_SGMII_SPEED(x) ((x) << S_SGMII_SPEED)
-#define G_SGMII_SPEED(x) (((x) >> S_SGMII_SPEED) & M_SGMII_SPEED)
-
-#define S_USE_SGMII_AN 1
-#define V_USE_SGMII_AN(x) ((x) << S_USE_SGMII_AN)
-#define F_USE_SGMII_AN V_USE_SGMII_AN(1U)
-
-#define S_SGMII_ENA 0
-#define V_SGMII_ENA(x) ((x) << S_SGMII_ENA)
-#define F_SGMII_ENA V_SGMII_ENA(1U)
-
-#define A_MAC_PORT_MTIP_ACT_CTL_SEG 0x1200
-
-#define S_ACTIVE 0
-#define M_ACTIVE 0x3fU
-#define V_ACTIVE(x) ((x) << S_ACTIVE)
-#define G_ACTIVE(x) (((x) >> S_ACTIVE) & M_ACTIVE)
-
-#define A_MAC_PORT_MTIP_MODE_CTL_SEG 0x1204
-
-#define S_MODE_CTL 0
-#define M_MODE_CTL 0x3U
-#define V_MODE_CTL(x) ((x) << S_MODE_CTL)
-#define G_MODE_CTL(x) (((x) >> S_MODE_CTL) & M_MODE_CTL)
-
-#define A_MAC_PORT_MTIP_TXCLK_CTL_SEG 0x1208
-
-#define S_TXCLK_CTL 0
-#define M_TXCLK_CTL 0xffffU
-#define V_TXCLK_CTL(x) ((x) << S_TXCLK_CTL)
-#define G_TXCLK_CTL(x) (((x) >> S_TXCLK_CTL) & M_TXCLK_CTL)
-
-#define A_MAC_PORT_MTIP_TX_PRMBL_CTL_SEG 0x120c
-#define A_MAC_PORT_MTIP_WAN_RS_COL_CNT 0x1220
-
-#define S_COL_CNT 0
-#define M_COL_CNT 0xffffU
-#define V_COL_CNT(x) ((x) << S_COL_CNT)
-#define G_COL_CNT(x) (((x) >> S_COL_CNT) & M_COL_CNT)
-
-#define A_MAC_PORT_MTIP_VL_INTVL 0x1240
-
-#define S_VL_INTVL 1
-#define V_VL_INTVL(x) ((x) << S_VL_INTVL)
-#define F_VL_INTVL V_VL_INTVL(1U)
-
-#define A_MAC_PORT_MTIP_MDIO_CFG_STATUS 0x1600
-
-#define S_CLK_DIV 7
-#define M_CLK_DIV 0x1ffU
-#define V_CLK_DIV(x) ((x) << S_CLK_DIV)
-#define G_CLK_DIV(x) (((x) >> S_CLK_DIV) & M_CLK_DIV)
-
-#define S_CL45_EN 6
-#define V_CL45_EN(x) ((x) << S_CL45_EN)
-#define F_CL45_EN V_CL45_EN(1U)
-
-#define S_DISABLE_PREAMBLE 5
-#define V_DISABLE_PREAMBLE(x) ((x) << S_DISABLE_PREAMBLE)
-#define F_DISABLE_PREAMBLE V_DISABLE_PREAMBLE(1U)
-
-#define S_MDIO_HOLD_TIME 2
-#define M_MDIO_HOLD_TIME 0x7U
-#define V_MDIO_HOLD_TIME(x) ((x) << S_MDIO_HOLD_TIME)
-#define G_MDIO_HOLD_TIME(x) (((x) >> S_MDIO_HOLD_TIME) & M_MDIO_HOLD_TIME)
-
-#define S_MDIO_READ_ERR 1
-#define V_MDIO_READ_ERR(x) ((x) << S_MDIO_READ_ERR)
-#define F_MDIO_READ_ERR V_MDIO_READ_ERR(1U)
-
-#define S_MDIO_BUSY 0
-#define V_MDIO_BUSY(x) ((x) << S_MDIO_BUSY)
-#define F_MDIO_BUSY V_MDIO_BUSY(1U)
-
-#define A_MAC_PORT_MTIP_MDIO_COMMAND 0x1604
-
-#define S_MDIO_CMD_READ 15
-#define V_MDIO_CMD_READ(x) ((x) << S_MDIO_CMD_READ)
-#define F_MDIO_CMD_READ V_MDIO_CMD_READ(1U)
-
-#define S_READ_INCR 14
-#define V_READ_INCR(x) ((x) << S_READ_INCR)
-#define F_READ_INCR V_READ_INCR(1U)
-
-#define S_PORT_ADDR 5
-#define M_PORT_ADDR 0x1fU
-#define V_PORT_ADDR(x) ((x) << S_PORT_ADDR)
-#define G_PORT_ADDR(x) (((x) >> S_PORT_ADDR) & M_PORT_ADDR)
-
-#define S_DEV_ADDR 0
-#define M_DEV_ADDR 0x1fU
-#define V_DEV_ADDR(x) ((x) << S_DEV_ADDR)
-#define G_DEV_ADDR(x) (((x) >> S_DEV_ADDR) & M_DEV_ADDR)
-
-#define A_MAC_PORT_MTIP_MDIO_DATA 0x1608
-
-#define S_READBUSY 31
-#define V_READBUSY(x) ((x) << S_READBUSY)
-#define F_READBUSY V_READBUSY(1U)
-
-#define S_DATA_WORD 0
-#define M_DATA_WORD 0xffffU
-#define V_DATA_WORD(x) ((x) << S_DATA_WORD)
-#define G_DATA_WORD(x) (((x) >> S_DATA_WORD) & M_DATA_WORD)
-
-#define A_MAC_PORT_MTIP_MDIO_REGADDR 0x160c
-
-#define S_MDIO_ADDR 0
-#define M_MDIO_ADDR 0xffffU
-#define V_MDIO_ADDR(x) ((x) << S_MDIO_ADDR)
-#define G_MDIO_ADDR(x) (((x) >> S_MDIO_ADDR) & M_MDIO_ADDR)
-
-#define A_MAC_PORT_MTIP_VLAN_TPID_0 0x1a00
-
-#if 0 /* M_VLANTAG collides with M_VLANTAG in sys/mbuf.h */
-#define S_VLANTAG 0
-#define M_VLANTAG 0xffffU
-#define V_VLANTAG(x) ((x) << S_VLANTAG)
-#define G_VLANTAG(x) (((x) >> S_VLANTAG) & M_VLANTAG)
-#endif
-
-#define A_MAC_PORT_MTIP_VLAN_TPID_1 0x1a04
-#define A_MAC_PORT_MTIP_VLAN_TPID_2 0x1a08
-#define A_MAC_PORT_MTIP_VLAN_TPID_3 0x1a0c
-#define A_MAC_PORT_MTIP_VLAN_TPID_4 0x1a10
-#define A_MAC_PORT_MTIP_VLAN_TPID_5 0x1a14
-#define A_MAC_PORT_MTIP_VLAN_TPID_6 0x1a18
-#define A_MAC_PORT_MTIP_VLAN_TPID_7 0x1a1c
-#define A_MAC_PORT_MTIP_PCS_CTL 0x1e00
-
-#define S_PCS_LPBK 14
-#define V_PCS_LPBK(x) ((x) << S_PCS_LPBK)
-#define F_PCS_LPBK V_PCS_LPBK(1U)
-
-#define S_SPEED_SEL1 13
-#define V_SPEED_SEL1(x) ((x) << S_SPEED_SEL1)
-#define F_SPEED_SEL1 V_SPEED_SEL1(1U)
-
-#define S_LP_MODE 11
-#define V_LP_MODE(x) ((x) << S_LP_MODE)
-#define F_LP_MODE V_LP_MODE(1U)
-
-#define S_SPEED_SEL0 6
-#define V_SPEED_SEL0(x) ((x) << S_SPEED_SEL0)
-#define F_SPEED_SEL0 V_SPEED_SEL0(1U)
-
-#define S_PCS_SPEED 2
-#define M_PCS_SPEED 0xfU
-#define V_PCS_SPEED(x) ((x) << S_PCS_SPEED)
-#define G_PCS_SPEED(x) (((x) >> S_PCS_SPEED) & M_PCS_SPEED)
-
-#define A_MAC_PORT_MTIP_PCS_STATUS1 0x1e04
-
-#define S_FAULTDET 7
-#define V_FAULTDET(x) ((x) << S_FAULTDET)
-#define F_FAULTDET V_FAULTDET(1U)
-
-#define S_RX_LINK_STATUS 2
-#define V_RX_LINK_STATUS(x) ((x) << S_RX_LINK_STATUS)
-#define F_RX_LINK_STATUS V_RX_LINK_STATUS(1U)
-
-#define S_LOPWRABL 1
-#define V_LOPWRABL(x) ((x) << S_LOPWRABL)
-#define F_LOPWRABL V_LOPWRABL(1U)
-
-#define A_MAC_PORT_MTIP_PCS_DEVICE_ID0 0x1e08
-
-#define S_DEVICE_ID0 0
-#define M_DEVICE_ID0 0xffffU
-#define V_DEVICE_ID0(x) ((x) << S_DEVICE_ID0)
-#define G_DEVICE_ID0(x) (((x) >> S_DEVICE_ID0) & M_DEVICE_ID0)
-
-#define A_MAC_PORT_MTIP_PCS_DEVICE_ID1 0x1e0c
-
-#define S_DEVICE_ID1 0
-#define M_DEVICE_ID1 0xffffU
-#define V_DEVICE_ID1(x) ((x) << S_DEVICE_ID1)
-#define G_DEVICE_ID1(x) (((x) >> S_DEVICE_ID1) & M_DEVICE_ID1)
-
-#define A_MAC_PORT_MTIP_PCS_SPEED_ABILITY 0x1e10
-
-#define S_100G 8
-#define V_100G(x) ((x) << S_100G)
-#define F_100G V_100G(1U)
-
-#define S_40G 7
-#define V_40G(x) ((x) << S_40G)
-#define F_40G V_40G(1U)
-
-#define S_10BASE_TL 1
-#define V_10BASE_TL(x) ((x) << S_10BASE_TL)
-#define F_10BASE_TL V_10BASE_TL(1U)
-
-#define S_10G 0
-#define V_10G(x) ((x) << S_10G)
-#define F_10G V_10G(1U)
-
-#define A_MAC_PORT_MTIP_PCS_DEVICE_PKG1 0x1e14
-
-#define S_TC_PRESENT 6
-#define V_TC_PRESENT(x) ((x) << S_TC_PRESENT)
-#define F_TC_PRESENT V_TC_PRESENT(1U)
-
-#define S_DTEXS 5
-#define V_DTEXS(x) ((x) << S_DTEXS)
-#define F_DTEXS V_DTEXS(1U)
-
-#define S_PHYXS 4
-#define V_PHYXS(x) ((x) << S_PHYXS)
-#define F_PHYXS V_PHYXS(1U)
-
-#define S_PCS 3
-#define V_PCS(x) ((x) << S_PCS)
-#define F_PCS V_PCS(1U)
-
-#define S_WIS 2
-#define V_WIS(x) ((x) << S_WIS)
-#define F_WIS V_WIS(1U)
-
-#define S_PMD_PMA 1
-#define V_PMD_PMA(x) ((x) << S_PMD_PMA)
-#define F_PMD_PMA V_PMD_PMA(1U)
-
-#define S_CL22 0
-#define V_CL22(x) ((x) << S_CL22)
-#define F_CL22 V_CL22(1U)
-
-#define A_MAC_PORT_MTIP_PCS_DEVICE_PKG2 0x1e18
-
-#define S_VENDDEV2 15
-#define V_VENDDEV2(x) ((x) << S_VENDDEV2)
-#define F_VENDDEV2 V_VENDDEV2(1U)
-
-#define S_VENDDEV1 14
-#define V_VENDDEV1(x) ((x) << S_VENDDEV1)
-#define F_VENDDEV1 V_VENDDEV1(1U)
-
-#define S_CL22EXT 13
-#define V_CL22EXT(x) ((x) << S_CL22EXT)
-#define F_CL22EXT V_CL22EXT(1U)
-
-#define A_MAC_PORT_MTIP_PCS_CTL2 0x1e1c
-
-#define S_PCSTYPE 0
-#define M_PCSTYPE 0x7U
-#define V_PCSTYPE(x) ((x) << S_PCSTYPE)
-#define G_PCSTYPE(x) (((x) >> S_PCSTYPE) & M_PCSTYPE)
-
-#define A_MAC_PORT_MTIP_PCS_STATUS2 0x1e20
-
-#define S_PCS_STAT2_DEVICE 15
-#define V_PCS_STAT2_DEVICE(x) ((x) << S_PCS_STAT2_DEVICE)
-#define F_PCS_STAT2_DEVICE V_PCS_STAT2_DEVICE(1U)
-
-#define S_TXFAULT 7
-#define V_TXFAULT(x) ((x) << S_TXFAULT)
-#define F_TXFAULT V_TXFAULT(1U)
-
-#define S_RXFAULT 6
-#define V_RXFAULT(x) ((x) << S_RXFAULT)
-#define F_RXFAULT V_RXFAULT(1U)
-
-#define S_100BASE_R 5
-#define V_100BASE_R(x) ((x) << S_100BASE_R)
-#define F_100BASE_R V_100BASE_R(1U)
-
-#define S_40GBASE_R 4
-#define V_40GBASE_R(x) ((x) << S_40GBASE_R)
-#define F_40GBASE_R V_40GBASE_R(1U)
-
-#define S_10GBASE_T 3
-#define V_10GBASE_T(x) ((x) << S_10GBASE_T)
-#define F_10GBASE_T V_10GBASE_T(1U)
-
-#define S_10GBASE_W 2
-#define V_10GBASE_W(x) ((x) << S_10GBASE_W)
-#define F_10GBASE_W V_10GBASE_W(1U)
-
-#define S_10GBASE_X 1
-#define V_10GBASE_X(x) ((x) << S_10GBASE_X)
-#define F_10GBASE_X V_10GBASE_X(1U)
-
-#define S_10GBASE_R 0
-#define V_10GBASE_R(x) ((x) << S_10GBASE_R)
-#define F_10GBASE_R V_10GBASE_R(1U)
-
-#define A_MAC_PORT_MTIP_PCS_PKG_ID0 0x1e38
-
-#define S_PKG_ID0 0
-#define M_PKG_ID0 0xffffU
-#define V_PKG_ID0(x) ((x) << S_PKG_ID0)
-#define G_PKG_ID0(x) (((x) >> S_PKG_ID0) & M_PKG_ID0)
-
-#define A_MAC_PORT_MTIP_PCS_PKG_ID1 0x1e3c
-
-#define S_PKG_ID1 0
-#define M_PKG_ID1 0xffffU
-#define V_PKG_ID1(x) ((x) << S_PKG_ID1)
-#define G_PKG_ID1(x) (((x) >> S_PKG_ID1) & M_PKG_ID1)
-
-#define A_MAC_PORT_MTIP_PCS_BASER_STATUS1 0x1e80
-
-#define S_RXLINKSTATUS 12
-#define V_RXLINKSTATUS(x) ((x) << S_RXLINKSTATUS)
-#define F_RXLINKSTATUS V_RXLINKSTATUS(1U)
-
-#define S_RESEREVED 4
-#define M_RESEREVED 0xffU
-#define V_RESEREVED(x) ((x) << S_RESEREVED)
-#define G_RESEREVED(x) (((x) >> S_RESEREVED) & M_RESEREVED)
-
-#define S_10GPRBS9 3
-#define V_10GPRBS9(x) ((x) << S_10GPRBS9)
-#define F_10GPRBS9 V_10GPRBS9(1U)
-
-#define S_10GPRBS31 2
-#define V_10GPRBS31(x) ((x) << S_10GPRBS31)
-#define F_10GPRBS31 V_10GPRBS31(1U)
-
-#define S_HIBER 1
-#define V_HIBER(x) ((x) << S_HIBER)
-#define F_HIBER V_HIBER(1U)
-
-#define S_BLOCKLOCK 0
-#define V_BLOCKLOCK(x) ((x) << S_BLOCKLOCK)
-#define F_BLOCKLOCK V_BLOCKLOCK(1U)
-
-#define A_MAC_PORT_MTIP_PCS_BASER_STATUS2 0x1e84
-
-#define S_BLOCKLOCKLL 15
-#define V_BLOCKLOCKLL(x) ((x) << S_BLOCKLOCKLL)
-#define F_BLOCKLOCKLL V_BLOCKLOCKLL(1U)
-
-#define S_HIBERLH 14
-#define V_HIBERLH(x) ((x) << S_HIBERLH)
-#define F_HIBERLH V_HIBERLH(1U)
-
-#define S_HIBERCOUNT 8
-#define M_HIBERCOUNT 0x3fU
-#define V_HIBERCOUNT(x) ((x) << S_HIBERCOUNT)
-#define G_HIBERCOUNT(x) (((x) >> S_HIBERCOUNT) & M_HIBERCOUNT)
-
-#define S_ERRBLKCNT 0
-#define M_ERRBLKCNT 0xffU
-#define V_ERRBLKCNT(x) ((x) << S_ERRBLKCNT)
-#define G_ERRBLKCNT(x) (((x) >> S_ERRBLKCNT) & M_ERRBLKCNT)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_A 0x1e88
-
-#define S_SEEDA 0
-#define M_SEEDA 0xffffU
-#define V_SEEDA(x) ((x) << S_SEEDA)
-#define G_SEEDA(x) (((x) >> S_SEEDA) & M_SEEDA)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_A1 0x1e8c
-
-#define S_SEEDA1 0
-#define M_SEEDA1 0xffffU
-#define V_SEEDA1(x) ((x) << S_SEEDA1)
-#define G_SEEDA1(x) (((x) >> S_SEEDA1) & M_SEEDA1)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_A2 0x1e90
-
-#define S_SEEDA2 0
-#define M_SEEDA2 0xffffU
-#define V_SEEDA2(x) ((x) << S_SEEDA2)
-#define G_SEEDA2(x) (((x) >> S_SEEDA2) & M_SEEDA2)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_A3 0x1e94
-
-#define S_SEEDA3 0
-#define M_SEEDA3 0x3ffU
-#define V_SEEDA3(x) ((x) << S_SEEDA3)
-#define G_SEEDA3(x) (((x) >> S_SEEDA3) & M_SEEDA3)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_B 0x1e98
-
-#define S_SEEDB 0
-#define M_SEEDB 0xffffU
-#define V_SEEDB(x) ((x) << S_SEEDB)
-#define G_SEEDB(x) (((x) >> S_SEEDB) & M_SEEDB)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_B1 0x1e9c
-
-#define S_SEEDB1 0
-#define M_SEEDB1 0xffffU
-#define V_SEEDB1(x) ((x) << S_SEEDB1)
-#define G_SEEDB1(x) (((x) >> S_SEEDB1) & M_SEEDB1)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_B2 0x1ea0
-
-#define S_SEEDB2 0
-#define M_SEEDB2 0xffffU
-#define V_SEEDB2(x) ((x) << S_SEEDB2)
-#define G_SEEDB2(x) (((x) >> S_SEEDB2) & M_SEEDB2)
-
-#define A_MAC_PORT_MTIP_10GBASER_SEED_B3 0x1ea4
-
-#define S_SEEDB3 0
-#define M_SEEDB3 0x3ffU
-#define V_SEEDB3(x) ((x) << S_SEEDB3)
-#define G_SEEDB3(x) (((x) >> S_SEEDB3) & M_SEEDB3)
-
-#define A_MAC_PORT_MTIP_BASER_TEST_CTRL 0x1ea8
-
-#define S_TXPRBS9 6
-#define V_TXPRBS9(x) ((x) << S_TXPRBS9)
-#define F_TXPRBS9 V_TXPRBS9(1U)
-
-#define S_RXPRBS31 5
-#define V_RXPRBS31(x) ((x) << S_RXPRBS31)
-#define F_RXPRBS31 V_RXPRBS31(1U)
-
-#define S_TXPRBS31 4
-#define V_TXPRBS31(x) ((x) << S_TXPRBS31)
-#define F_TXPRBS31 V_TXPRBS31(1U)
-
-#define S_TXTESTPATEN 3
-#define V_TXTESTPATEN(x) ((x) << S_TXTESTPATEN)
-#define F_TXTESTPATEN V_TXTESTPATEN(1U)
-
-#define S_RXTESTPATEN 2
-#define V_RXTESTPATEN(x) ((x) << S_RXTESTPATEN)
-#define F_RXTESTPATEN V_RXTESTPATEN(1U)
-
-#define S_TESTPATSEL 1
-#define V_TESTPATSEL(x) ((x) << S_TESTPATSEL)
-#define F_TESTPATSEL V_TESTPATSEL(1U)
-
-#define S_DATAPATSEL 0
-#define V_DATAPATSEL(x) ((x) << S_DATAPATSEL)
-#define F_DATAPATSEL V_DATAPATSEL(1U)
-
-#define A_MAC_PORT_MTIP_BASER_TEST_ERR_CNT 0x1eac
-
-#define S_TEST_ERR_CNT 0
-#define M_TEST_ERR_CNT 0xffffU
-#define V_TEST_ERR_CNT(x) ((x) << S_TEST_ERR_CNT)
-#define G_TEST_ERR_CNT(x) (((x) >> S_TEST_ERR_CNT) & M_TEST_ERR_CNT)
-
-#define A_MAC_PORT_MTIP_BER_HIGH_ORDER_CNT 0x1eb0
-
-#define S_BER_CNT_HI 0
-#define M_BER_CNT_HI 0xffffU
-#define V_BER_CNT_HI(x) ((x) << S_BER_CNT_HI)
-#define G_BER_CNT_HI(x) (((x) >> S_BER_CNT_HI) & M_BER_CNT_HI)
-
-#define A_MAC_PORT_MTIP_BLK_HIGH_ORDER_CNT 0x1eb4
-
-#define S_HICOUNTPRSNT 15
-#define V_HICOUNTPRSNT(x) ((x) << S_HICOUNTPRSNT)
-#define F_HICOUNTPRSNT V_HICOUNTPRSNT(1U)
-
-#define S_BLOCK_CNT_HI 0
-#define M_BLOCK_CNT_HI 0x3fffU
-#define V_BLOCK_CNT_HI(x) ((x) << S_BLOCK_CNT_HI)
-#define G_BLOCK_CNT_HI(x) (((x) >> S_BLOCK_CNT_HI) & M_BLOCK_CNT_HI)
-
-#define A_MAC_PORT_MTIP_PCS_MULTI_LANE_ALIGN_STATUS1 0x1ec8
-
-#define S_ALIGNSTATUS 12
-#define V_ALIGNSTATUS(x) ((x) << S_ALIGNSTATUS)
-#define F_ALIGNSTATUS V_ALIGNSTATUS(1U)
-
-#define S_LANE7 7
-#define V_LANE7(x) ((x) << S_LANE7)
-#define F_LANE7 V_LANE7(1U)
-
-#define S_LANE6 6
-#define V_LANE6(x) ((x) << S_LANE6)
-#define F_LANE6 V_LANE6(1U)
-
-#define S_LANE5 5
-#define V_LANE5(x) ((x) << S_LANE5)
-#define F_LANE5 V_LANE5(1U)
-
-#define S_LANE4 4
-#define V_LANE4(x) ((x) << S_LANE4)
-#define F_LANE4 V_LANE4(1U)
-
-#define S_LANE3 3
-#define V_LANE3(x) ((x) << S_LANE3)
-#define F_LANE3 V_LANE3(1U)
-
-#define S_LANE2 2
-#define V_LANE2(x) ((x) << S_LANE2)
-#define F_LANE2 V_LANE2(1U)
-
-#define S_LANE1 1
-#define V_LANE1(x) ((x) << S_LANE1)
-#define F_LANE1 V_LANE1(1U)
-
-#define S_LANE0 0
-#define V_LANE0(x) ((x) << S_LANE0)
-#define F_LANE0 V_LANE0(1U)
-
-#define A_MAC_PORT_MTIP_PCS_MULTI_LANE_ALIGN_STATUS2 0x1ecc
-
-#define S_LANE19 11
-#define V_LANE19(x) ((x) << S_LANE19)
-#define F_LANE19 V_LANE19(1U)
-
-#define S_LANE18 10
-#define V_LANE18(x) ((x) << S_LANE18)
-#define F_LANE18 V_LANE18(1U)
-
-#define S_LANE17 9
-#define V_LANE17(x) ((x) << S_LANE17)
-#define F_LANE17 V_LANE17(1U)
-
-#define S_LANE16 8
-#define V_LANE16(x) ((x) << S_LANE16)
-#define F_LANE16 V_LANE16(1U)
-
-#define S_LANE15 7
-#define V_LANE15(x) ((x) << S_LANE15)
-#define F_LANE15 V_LANE15(1U)
-
-#define S_LANE14 6
-#define V_LANE14(x) ((x) << S_LANE14)
-#define F_LANE14 V_LANE14(1U)
-
-#define S_LANE13 5
-#define V_LANE13(x) ((x) << S_LANE13)
-#define F_LANE13 V_LANE13(1U)
-
-#define S_LANE12 4
-#define V_LANE12(x) ((x) << S_LANE12)
-#define F_LANE12 V_LANE12(1U)
-
-#define S_LANE11 3
-#define V_LANE11(x) ((x) << S_LANE11)
-#define F_LANE11 V_LANE11(1U)
-
-#define S_LANE10 2
-#define V_LANE10(x) ((x) << S_LANE10)
-#define F_LANE10 V_LANE10(1U)
-
-#define S_LANE9 1
-#define V_LANE9(x) ((x) << S_LANE9)
-#define F_LANE9 V_LANE9(1U)
-
-#define S_LANE8 0
-#define V_LANE8(x) ((x) << S_LANE8)
-#define F_LANE8 V_LANE8(1U)
-
-#define A_MAC_PORT_MTIP_PCS_MULTI_LANE_ALIGN_STATUS3 0x1ed0
-
-#define S_AMLOCK7 7
-#define V_AMLOCK7(x) ((x) << S_AMLOCK7)
-#define F_AMLOCK7 V_AMLOCK7(1U)
-
-#define S_AMLOCK6 6
-#define V_AMLOCK6(x) ((x) << S_AMLOCK6)
-#define F_AMLOCK6 V_AMLOCK6(1U)
-
-#define S_AMLOCK5 5
-#define V_AMLOCK5(x) ((x) << S_AMLOCK5)
-#define F_AMLOCK5 V_AMLOCK5(1U)
-
-#define S_AMLOCK4 4
-#define V_AMLOCK4(x) ((x) << S_AMLOCK4)
-#define F_AMLOCK4 V_AMLOCK4(1U)
-
-#define S_AMLOCK3 3
-#define V_AMLOCK3(x) ((x) << S_AMLOCK3)
-#define F_AMLOCK3 V_AMLOCK3(1U)
-
-#define S_AMLOCK2 2
-#define V_AMLOCK2(x) ((x) << S_AMLOCK2)
-#define F_AMLOCK2 V_AMLOCK2(1U)
-
-#define S_AMLOCK1 1
-#define V_AMLOCK1(x) ((x) << S_AMLOCK1)
-#define F_AMLOCK1 V_AMLOCK1(1U)
-
-#define S_AMLOCK0 0
-#define V_AMLOCK0(x) ((x) << S_AMLOCK0)
-#define F_AMLOCK0 V_AMLOCK0(1U)
-
-#define A_MAC_PORT_MTIP_PCS_MULTI_LANE_ALIGN_STATUS4 0x1ed4
-
-#define S_AMLOCK19 11
-#define V_AMLOCK19(x) ((x) << S_AMLOCK19)
-#define F_AMLOCK19 V_AMLOCK19(1U)
-
-#define S_AMLOCK18 10
-#define V_AMLOCK18(x) ((x) << S_AMLOCK18)
-#define F_AMLOCK18 V_AMLOCK18(1U)
-
-#define S_AMLOCK17 9
-#define V_AMLOCK17(x) ((x) << S_AMLOCK17)
-#define F_AMLOCK17 V_AMLOCK17(1U)
-
-#define S_AMLOCK16 8
-#define V_AMLOCK16(x) ((x) << S_AMLOCK16)
-#define F_AMLOCK16 V_AMLOCK16(1U)
-
-#define S_AMLOCK15 7
-#define V_AMLOCK15(x) ((x) << S_AMLOCK15)
-#define F_AMLOCK15 V_AMLOCK15(1U)
-
-#define S_AMLOCK14 6
-#define V_AMLOCK14(x) ((x) << S_AMLOCK14)
-#define F_AMLOCK14 V_AMLOCK14(1U)
-
-#define S_AMLOCK13 5
-#define V_AMLOCK13(x) ((x) << S_AMLOCK13)
-#define F_AMLOCK13 V_AMLOCK13(1U)
-
-#define S_AMLOCK12 4
-#define V_AMLOCK12(x) ((x) << S_AMLOCK12)
-#define F_AMLOCK12 V_AMLOCK12(1U)
-
-#define S_AMLOCK11 3
-#define V_AMLOCK11(x) ((x) << S_AMLOCK11)
-#define F_AMLOCK11 V_AMLOCK11(1U)
-
-#define S_AMLOCK10 2
-#define V_AMLOCK10(x) ((x) << S_AMLOCK10)
-#define F_AMLOCK10 V_AMLOCK10(1U)
-
-#define S_AMLOCK9 1
-#define V_AMLOCK9(x) ((x) << S_AMLOCK9)
-#define F_AMLOCK9 V_AMLOCK9(1U)
-
-#define S_AMLOCK8 0
-#define V_AMLOCK8(x) ((x) << S_AMLOCK8)
-#define F_AMLOCK8 V_AMLOCK8(1U)
-
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_0 0x1f68
-
-#define S_BIPERR_CNT 0
-#define M_BIPERR_CNT 0xffffU
-#define V_BIPERR_CNT(x) ((x) << S_BIPERR_CNT)
-#define G_BIPERR_CNT(x) (((x) >> S_BIPERR_CNT) & M_BIPERR_CNT)
-
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_1 0x1f6c
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_2 0x1f70
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_3 0x1f74
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_4 0x1f78
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_5 0x1f7c
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_6 0x1f80
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_7 0x1f84
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_8 0x1f88
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_9 0x1f8c
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_10 0x1f90
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_11 0x1f94
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_12 0x1f98
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_13 0x1f9c
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_14 0x1fa0
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_15 0x1fa4
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_16 0x1fa8
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_17 0x1fac
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_18 0x1fb0
-#define A_MAC_PORT_MTIP_PCS_BIP_ERR_CNT_19 0x1fb4
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_0 0x1fb8
-
-#define S_MAP 0
-#define M_MAP 0x1fU
-#define V_MAP(x) ((x) << S_MAP)
-#define G_MAP(x) (((x) >> S_MAP) & M_MAP)
-
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_1 0x1fbc
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_2 0x1fc0
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_3 0x1fc4
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_4 0x1fc8
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_5 0x1fcc
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_6 0x1fd0
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_7 0x1fd4
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_8 0x1fd8
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_9 0x1fdc
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_10 0x1fe0
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_11 0x1fe4
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_12 0x1fe8
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_13 0x1fec
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_14 0x1ff0
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_15 0x1ff4
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_16 0x1ff8
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_17 0x1ffc
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_18 0x2000
-#define A_MAC_PORT_MTIP_PCS_LANE_MAP_19 0x2004
-#define A_MAC_PORT_BEAN_CTL 0x2200
-
-#define S_AN_RESET 15
-#define V_AN_RESET(x) ((x) << S_AN_RESET)
-#define F_AN_RESET V_AN_RESET(1U)
-
-#define S_EXT_NXP_CTRL 13
-#define V_EXT_NXP_CTRL(x) ((x) << S_EXT_NXP_CTRL)
-#define F_EXT_NXP_CTRL V_EXT_NXP_CTRL(1U)
-
-#define S_BEAN_EN 12
-#define V_BEAN_EN(x) ((x) << S_BEAN_EN)
-#define F_BEAN_EN V_BEAN_EN(1U)
-
-#define S_RESTART_BEAN 9
-#define V_RESTART_BEAN(x) ((x) << S_RESTART_BEAN)
-#define F_RESTART_BEAN V_RESTART_BEAN(1U)
-
-#define A_MAC_PORT_BEAN_STATUS 0x2204
-
-#define S_PDF 9
-#define V_PDF(x) ((x) << S_PDF)
-#define F_PDF V_PDF(1U)
-
-#define S_EXT_NXP_STATUS 7
-#define V_EXT_NXP_STATUS(x) ((x) << S_EXT_NXP_STATUS)
-#define F_EXT_NXP_STATUS V_EXT_NXP_STATUS(1U)
-
-#define S_PAGE_RCVD 6
-#define V_PAGE_RCVD(x) ((x) << S_PAGE_RCVD)
-#define F_PAGE_RCVD V_PAGE_RCVD(1U)
-
-#define S_BEAN_COMPLETE 5
-#define V_BEAN_COMPLETE(x) ((x) << S_BEAN_COMPLETE)
-#define F_BEAN_COMPLETE V_BEAN_COMPLETE(1U)
-
-#define S_REM_FAULT_STATUS 4
-#define V_REM_FAULT_STATUS(x) ((x) << S_REM_FAULT_STATUS)
-#define F_REM_FAULT_STATUS V_REM_FAULT_STATUS(1U)
-
-#define S_BEAN_ABILITY 3
-#define V_BEAN_ABILITY(x) ((x) << S_BEAN_ABILITY)
-#define F_BEAN_ABILITY V_BEAN_ABILITY(1U)
-
-#define S_LP_BEAN_ABILITY 0
-#define V_LP_BEAN_ABILITY(x) ((x) << S_LP_BEAN_ABILITY)
-#define F_LP_BEAN_ABILITY V_LP_BEAN_ABILITY(1U)
-
-#define A_MAC_PORT_BEAN_ABILITY_0 0x2208
-
-#define S_NXP 15
-#define V_NXP(x) ((x) << S_NXP)
-#define F_NXP V_NXP(1U)
-
-#define S_REM_FAULT 13
-#define V_REM_FAULT(x) ((x) << S_REM_FAULT)
-#define F_REM_FAULT V_REM_FAULT(1U)
-
-#define S_PAUSE_ABILITY 10
-#define M_PAUSE_ABILITY 0x7U
-#define V_PAUSE_ABILITY(x) ((x) << S_PAUSE_ABILITY)
-#define G_PAUSE_ABILITY(x) (((x) >> S_PAUSE_ABILITY) & M_PAUSE_ABILITY)
-
-#define S_ECHO_NONCE 5
-#define M_ECHO_NONCE 0x1fU
-#define V_ECHO_NONCE(x) ((x) << S_ECHO_NONCE)
-#define G_ECHO_NONCE(x) (((x) >> S_ECHO_NONCE) & M_ECHO_NONCE)
-
-#define S_SELECTOR 0
-#define M_SELECTOR 0x1fU
-#define V_SELECTOR(x) ((x) << S_SELECTOR)
-#define G_SELECTOR(x) (((x) >> S_SELECTOR) & M_SELECTOR)
-
-#define A_MAC_PORT_BEAN_ABILITY_1 0x220c
-
-#define S_TECH_ABILITY_1 5
-#define M_TECH_ABILITY_1 0x7ffU
-#define V_TECH_ABILITY_1(x) ((x) << S_TECH_ABILITY_1)
-#define G_TECH_ABILITY_1(x) (((x) >> S_TECH_ABILITY_1) & M_TECH_ABILITY_1)
-
-#define S_TX_NONCE 0
-#define M_TX_NONCE 0x1fU
-#define V_TX_NONCE(x) ((x) << S_TX_NONCE)
-#define G_TX_NONCE(x) (((x) >> S_TX_NONCE) & M_TX_NONCE)
-
-#define A_MAC_PORT_BEAN_ABILITY_2 0x2210
-
-#define S_T5_FEC_ABILITY 14
-#define M_T5_FEC_ABILITY 0x3U
-#define V_T5_FEC_ABILITY(x) ((x) << S_T5_FEC_ABILITY)
-#define G_T5_FEC_ABILITY(x) (((x) >> S_T5_FEC_ABILITY) & M_T5_FEC_ABILITY)
-
-#define S_TECH_ABILITY_2 0
-#define M_TECH_ABILITY_2 0x3fffU
-#define V_TECH_ABILITY_2(x) ((x) << S_TECH_ABILITY_2)
-#define G_TECH_ABILITY_2(x) (((x) >> S_TECH_ABILITY_2) & M_TECH_ABILITY_2)
-
-#define A_MAC_PORT_BEAN_REM_ABILITY_0 0x2214
-#define A_MAC_PORT_BEAN_REM_ABILITY_1 0x2218
-#define A_MAC_PORT_BEAN_REM_ABILITY_2 0x221c
-#define A_MAC_PORT_BEAN_MS_COUNT 0x2220
-
-#define S_MS_COUNT 0
-#define M_MS_COUNT 0xffffU
-#define V_MS_COUNT(x) ((x) << S_MS_COUNT)
-#define G_MS_COUNT(x) (((x) >> S_MS_COUNT) & M_MS_COUNT)
-
-#define A_MAC_PORT_BEAN_XNP_0 0x2224
-
-#define S_XNP 15
-#define V_XNP(x) ((x) << S_XNP)
-#define F_XNP V_XNP(1U)
-
-#define S_ACKNOWLEDGE 14
-#define V_ACKNOWLEDGE(x) ((x) << S_ACKNOWLEDGE)
-#define F_ACKNOWLEDGE V_ACKNOWLEDGE(1U)
-
-#define S_MP 13
-#define V_MP(x) ((x) << S_MP)
-#define F_MP V_MP(1U)
-
-#define S_ACK2 12
-#define V_ACK2(x) ((x) << S_ACK2)
-#define F_ACK2 V_ACK2(1U)
-
-#define S_MU 0
-#define M_MU 0x7ffU
-#define V_MU(x) ((x) << S_MU)
-#define G_MU(x) (((x) >> S_MU) & M_MU)
-
-#define A_MAC_PORT_BEAN_XNP_1 0x2228
-
-#define S_UNFORMATED 0
-#define M_UNFORMATED 0xffffU
-#define V_UNFORMATED(x) ((x) << S_UNFORMATED)
-#define G_UNFORMATED(x) (((x) >> S_UNFORMATED) & M_UNFORMATED)
-
-#define A_MAC_PORT_BEAN_XNP_2 0x222c
-#define A_MAC_PORT_LP_BEAN_XNP_0 0x2230
-#define A_MAC_PORT_LP_BEAN_XNP_1 0x2234
-#define A_MAC_PORT_LP_BEAN_XNP_2 0x2238
-#define A_MAC_PORT_BEAN_ETH_STATUS 0x223c
-
-#define S_100GCR10 8
-#define V_100GCR10(x) ((x) << S_100GCR10)
-#define F_100GCR10 V_100GCR10(1U)
-
-#define S_40GCR4 6
-#define V_40GCR4(x) ((x) << S_40GCR4)
-#define F_40GCR4 V_40GCR4(1U)
-
-#define S_40GKR4 5
-#define V_40GKR4(x) ((x) << S_40GKR4)
-#define F_40GKR4 V_40GKR4(1U)
-
-#define S_FEC 4
-#define V_FEC(x) ((x) << S_FEC)
-#define F_FEC V_FEC(1U)
-
-#define S_10GKR 3
-#define V_10GKR(x) ((x) << S_10GKR)
-#define F_10GKR V_10GKR(1U)
-
-#define S_10GKX4 2
-#define V_10GKX4(x) ((x) << S_10GKX4)
-#define F_10GKX4 V_10GKX4(1U)
-
-#define S_1GKX 1
-#define V_1GKX(x) ((x) << S_1GKX)
-#define F_1GKX V_1GKX(1U)
-
-#define A_MAC_PORT_BEAN_CTL_LANE1 0x2240
-#define A_MAC_PORT_BEAN_STATUS_LANE1 0x2244
-#define A_MAC_PORT_BEAN_ABILITY_0_LANE1 0x2248
-#define A_MAC_PORT_BEAN_ABILITY_1_LANE1 0x224c
-#define A_MAC_PORT_BEAN_ABILITY_2_LANE1 0x2250
-#define A_MAC_PORT_BEAN_REM_ABILITY_0_LANE1 0x2254
-#define A_MAC_PORT_BEAN_REM_ABILITY_1_LANE1 0x2258
-#define A_MAC_PORT_BEAN_REM_ABILITY_2_LANE1 0x225c
-#define A_MAC_PORT_BEAN_MS_COUNT_LANE1 0x2260
-#define A_MAC_PORT_BEAN_XNP_0_LANE1 0x2264
-#define A_MAC_PORT_BEAN_XNP_1_LANE1 0x2268
-#define A_MAC_PORT_BEAN_XNP_2_LANE1 0x226c
-#define A_MAC_PORT_LP_BEAN_XNP_0_LANE1 0x2270
-#define A_MAC_PORT_LP_BEAN_XNP_1_LANE1 0x2274
-#define A_MAC_PORT_LP_BEAN_XNP_2_LANE1 0x2278
-#define A_MAC_PORT_BEAN_ETH_STATUS_LANE1 0x227c
-#define A_MAC_PORT_BEAN_CTL_LANE2 0x2280
-#define A_MAC_PORT_BEAN_STATUS_LANE2 0x2284
-#define A_MAC_PORT_BEAN_ABILITY_0_LANE2 0x2288
-#define A_MAC_PORT_BEAN_ABILITY_1_LANE2 0x228c
-#define A_MAC_PORT_BEAN_ABILITY_2_LANE2 0x2290
-#define A_MAC_PORT_BEAN_REM_ABILITY_0_LANE2 0x2294
-#define A_MAC_PORT_BEAN_REM_ABILITY_1_LANE2 0x2298
-#define A_MAC_PORT_BEAN_REM_ABILITY_2_LANE2 0x229c
-#define A_MAC_PORT_BEAN_MS_COUNT_LANE2 0x22a0
-#define A_MAC_PORT_BEAN_XNP_0_LANE2 0x22a4
-#define A_MAC_PORT_BEAN_XNP_1_LANE2 0x22a8
-#define A_MAC_PORT_BEAN_XNP_2_LANE2 0x22ac
-#define A_MAC_PORT_LP_BEAN_XNP_0_LANE2 0x22b0
-#define A_MAC_PORT_LP_BEAN_XNP_1_LANE2 0x22b4
-#define A_MAC_PORT_LP_BEAN_XNP_2_LANE2 0x22b8
-#define A_MAC_PORT_BEAN_ETH_STATUS_LANE2 0x22bc
-#define A_MAC_PORT_BEAN_CTL_LANE3 0x22c0
-#define A_MAC_PORT_BEAN_STATUS_LANE3 0x22c4
-#define A_MAC_PORT_BEAN_ABILITY_0_LANE3 0x22c8
-#define A_MAC_PORT_BEAN_ABILITY_1_LANE3 0x22cc
-#define A_MAC_PORT_BEAN_ABILITY_2_LANE3 0x22d0
-#define A_MAC_PORT_BEAN_REM_ABILITY_0_LANE3 0x22d4
-#define A_MAC_PORT_BEAN_REM_ABILITY_1_LANE3 0x22d8
-#define A_MAC_PORT_BEAN_REM_ABILITY_2_LANE3 0x22dc
-#define A_MAC_PORT_BEAN_MS_COUNT_LANE3 0x22e0
-#define A_MAC_PORT_BEAN_XNP_0_LANE3 0x22e4
-#define A_MAC_PORT_BEAN_XNP_1_LANE3 0x22e8
-#define A_MAC_PORT_BEAN_XNP_2_LANE3 0x22ec
-#define A_MAC_PORT_LP_BEAN_XNP_0_LANE3 0x22f0
-#define A_MAC_PORT_LP_BEAN_XNP_1_LANE3 0x22f4
-#define A_MAC_PORT_LP_BEAN_XNP_2_LANE3 0x22f8
-#define A_MAC_PORT_BEAN_ETH_STATUS_LANE3 0x22fc
-#define A_MAC_PORT_FEC_KR_CONTROL 0x2600
-
-#define S_ENABLE_TR 1
-#define V_ENABLE_TR(x) ((x) << S_ENABLE_TR)
-#define F_ENABLE_TR V_ENABLE_TR(1U)
-
-#define S_RESTART_TR 0
-#define V_RESTART_TR(x) ((x) << S_RESTART_TR)
-#define F_RESTART_TR V_RESTART_TR(1U)
-
-#define A_MAC_PORT_FEC_KR_STATUS 0x2604
-
-#define S_FECKRSIGDET 15
-#define V_FECKRSIGDET(x) ((x) << S_FECKRSIGDET)
-#define F_FECKRSIGDET V_FECKRSIGDET(1U)
-
-#define S_TRAIN_FAIL 3
-#define V_TRAIN_FAIL(x) ((x) << S_TRAIN_FAIL)
-#define F_TRAIN_FAIL V_TRAIN_FAIL(1U)
-
-#define S_STARTUP_STATUS 2
-#define V_STARTUP_STATUS(x) ((x) << S_STARTUP_STATUS)
-#define F_STARTUP_STATUS V_STARTUP_STATUS(1U)
-
-#define S_RX_STATUS 0
-#define V_RX_STATUS(x) ((x) << S_RX_STATUS)
-#define F_RX_STATUS V_RX_STATUS(1U)
-
-#define A_MAC_PORT_FEC_KR_LP_COEFF 0x2608
-
-#define S_PRESET 13
-#define V_PRESET(x) ((x) << S_PRESET)
-#define F_PRESET V_PRESET(1U)
-
-#define S_INITIALIZE 12
-#define V_INITIALIZE(x) ((x) << S_INITIALIZE)
-#define F_INITIALIZE V_INITIALIZE(1U)
-
-#define S_CP1_UPD 4
-#define M_CP1_UPD 0x3U
-#define V_CP1_UPD(x) ((x) << S_CP1_UPD)
-#define G_CP1_UPD(x) (((x) >> S_CP1_UPD) & M_CP1_UPD)
-
-#define S_C0_UPD 2
-#define M_C0_UPD 0x3U
-#define V_C0_UPD(x) ((x) << S_C0_UPD)
-#define G_C0_UPD(x) (((x) >> S_C0_UPD) & M_C0_UPD)
-
-#define S_CN1_UPD 0
-#define M_CN1_UPD 0x3U
-#define V_CN1_UPD(x) ((x) << S_CN1_UPD)
-#define G_CN1_UPD(x) (((x) >> S_CN1_UPD) & M_CN1_UPD)
-
-#define A_MAC_PORT_FEC_KR_LP_STAT 0x260c
-
-#define S_RX_READY 15
-#define V_RX_READY(x) ((x) << S_RX_READY)
-#define F_RX_READY V_RX_READY(1U)
-
-#define S_CP1_STAT 4
-#define M_CP1_STAT 0x3U
-#define V_CP1_STAT(x) ((x) << S_CP1_STAT)
-#define G_CP1_STAT(x) (((x) >> S_CP1_STAT) & M_CP1_STAT)
-
-#define S_C0_STAT 2
-#define M_C0_STAT 0x3U
-#define V_C0_STAT(x) ((x) << S_C0_STAT)
-#define G_C0_STAT(x) (((x) >> S_C0_STAT) & M_C0_STAT)
-
-#define S_CN1_STAT 0
-#define M_CN1_STAT 0x3U
-#define V_CN1_STAT(x) ((x) << S_CN1_STAT)
-#define G_CN1_STAT(x) (((x) >> S_CN1_STAT) & M_CN1_STAT)
-
-#define A_MAC_PORT_FEC_KR_LD_COEFF 0x2610
-#define A_MAC_PORT_FEC_KR_LD_STAT 0x2614
-#define A_MAC_PORT_FEC_ABILITY 0x2618
-
-#define S_FEC_IND_ABILITY 1
-#define V_FEC_IND_ABILITY(x) ((x) << S_FEC_IND_ABILITY)
-#define F_FEC_IND_ABILITY V_FEC_IND_ABILITY(1U)
-
-#define S_ABILITY 0
-#define V_ABILITY(x) ((x) << S_ABILITY)
-#define F_ABILITY V_ABILITY(1U)
-
-#define A_MAC_PORT_FEC_CONTROL 0x261c
-
-#define S_FEC_EN_ERR_IND 1
-#define V_FEC_EN_ERR_IND(x) ((x) << S_FEC_EN_ERR_IND)
-#define F_FEC_EN_ERR_IND V_FEC_EN_ERR_IND(1U)
-
-#define S_FEC_EN 0
-#define V_FEC_EN(x) ((x) << S_FEC_EN)
-#define F_FEC_EN V_FEC_EN(1U)
-
-#define A_MAC_PORT_FEC_STATUS 0x2620
-
-#define S_FEC_LOCKED_100 1
-#define V_FEC_LOCKED_100(x) ((x) << S_FEC_LOCKED_100)
-#define F_FEC_LOCKED_100 V_FEC_LOCKED_100(1U)
-
-#define S_FEC_LOCKED 0
-#define V_FEC_LOCKED(x) ((x) << S_FEC_LOCKED)
-#define F_FEC_LOCKED V_FEC_LOCKED(1U)
-
-#define A_MAC_PORT_FEC_CERR_CNT_0 0x2624
-
-#define S_FEC_CERR_CNT_0 0
-#define M_FEC_CERR_CNT_0 0xffffU
-#define V_FEC_CERR_CNT_0(x) ((x) << S_FEC_CERR_CNT_0)
-#define G_FEC_CERR_CNT_0(x) (((x) >> S_FEC_CERR_CNT_0) & M_FEC_CERR_CNT_0)
-
-#define A_MAC_PORT_FEC_CERR_CNT_1 0x2628
-
-#define S_FEC_CERR_CNT_1 0
-#define M_FEC_CERR_CNT_1 0xffffU
-#define V_FEC_CERR_CNT_1(x) ((x) << S_FEC_CERR_CNT_1)
-#define G_FEC_CERR_CNT_1(x) (((x) >> S_FEC_CERR_CNT_1) & M_FEC_CERR_CNT_1)
-
-#define A_MAC_PORT_FEC_NCERR_CNT_0 0x262c
-
-#define S_FEC_NCERR_CNT_0 0
-#define M_FEC_NCERR_CNT_0 0xffffU
-#define V_FEC_NCERR_CNT_0(x) ((x) << S_FEC_NCERR_CNT_0)
-#define G_FEC_NCERR_CNT_0(x) (((x) >> S_FEC_NCERR_CNT_0) & M_FEC_NCERR_CNT_0)
-
-#define A_MAC_PORT_FEC_NCERR_CNT_1 0x2630
-
-#define S_FEC_NCERR_CNT_1 0
-#define M_FEC_NCERR_CNT_1 0xffffU
-#define V_FEC_NCERR_CNT_1(x) ((x) << S_FEC_NCERR_CNT_1)
-#define G_FEC_NCERR_CNT_1(x) (((x) >> S_FEC_NCERR_CNT_1) & M_FEC_NCERR_CNT_1)
-
-#define A_MAC_PORT_AE_RX_COEF_REQ 0x2a00
-
-#define S_T5_RXREQ_C2 4
-#define M_T5_RXREQ_C2 0x3U
-#define V_T5_RXREQ_C2(x) ((x) << S_T5_RXREQ_C2)
-#define G_T5_RXREQ_C2(x) (((x) >> S_T5_RXREQ_C2) & M_T5_RXREQ_C2)
-
-#define S_T5_RXREQ_C1 2
-#define M_T5_RXREQ_C1 0x3U
-#define V_T5_RXREQ_C1(x) ((x) << S_T5_RXREQ_C1)
-#define G_T5_RXREQ_C1(x) (((x) >> S_T5_RXREQ_C1) & M_T5_RXREQ_C1)
-
-#define S_T5_RXREQ_C0 0
-#define M_T5_RXREQ_C0 0x3U
-#define V_T5_RXREQ_C0(x) ((x) << S_T5_RXREQ_C0)
-#define G_T5_RXREQ_C0(x) (((x) >> S_T5_RXREQ_C0) & M_T5_RXREQ_C0)
-
-#define A_MAC_PORT_AE_RX_COEF_STAT 0x2a04
-
-#define S_T5_AE0_RXSTAT_RDY 15
-#define V_T5_AE0_RXSTAT_RDY(x) ((x) << S_T5_AE0_RXSTAT_RDY)
-#define F_T5_AE0_RXSTAT_RDY V_T5_AE0_RXSTAT_RDY(1U)
-
-#define S_T5_AE0_RXSTAT_C2 4
-#define M_T5_AE0_RXSTAT_C2 0x3U
-#define V_T5_AE0_RXSTAT_C2(x) ((x) << S_T5_AE0_RXSTAT_C2)
-#define G_T5_AE0_RXSTAT_C2(x) (((x) >> S_T5_AE0_RXSTAT_C2) & M_T5_AE0_RXSTAT_C2)
-
-#define S_T5_AE0_RXSTAT_C1 2
-#define M_T5_AE0_RXSTAT_C1 0x3U
-#define V_T5_AE0_RXSTAT_C1(x) ((x) << S_T5_AE0_RXSTAT_C1)
-#define G_T5_AE0_RXSTAT_C1(x) (((x) >> S_T5_AE0_RXSTAT_C1) & M_T5_AE0_RXSTAT_C1)
-
-#define S_T5_AE0_RXSTAT_C0 0
-#define M_T5_AE0_RXSTAT_C0 0x3U
-#define V_T5_AE0_RXSTAT_C0(x) ((x) << S_T5_AE0_RXSTAT_C0)
-#define G_T5_AE0_RXSTAT_C0(x) (((x) >> S_T5_AE0_RXSTAT_C0) & M_T5_AE0_RXSTAT_C0)
-
-#define A_MAC_PORT_AE_TX_COEF_REQ 0x2a08
-
-#define S_T5_TXREQ_C2 4
-#define M_T5_TXREQ_C2 0x3U
-#define V_T5_TXREQ_C2(x) ((x) << S_T5_TXREQ_C2)
-#define G_T5_TXREQ_C2(x) (((x) >> S_T5_TXREQ_C2) & M_T5_TXREQ_C2)
-
-#define S_T5_TXREQ_C1 2
-#define M_T5_TXREQ_C1 0x3U
-#define V_T5_TXREQ_C1(x) ((x) << S_T5_TXREQ_C1)
-#define G_T5_TXREQ_C1(x) (((x) >> S_T5_TXREQ_C1) & M_T5_TXREQ_C1)
-
-#define S_T5_TXREQ_C0 0
-#define M_T5_TXREQ_C0 0x3U
-#define V_T5_TXREQ_C0(x) ((x) << S_T5_TXREQ_C0)
-#define G_T5_TXREQ_C0(x) (((x) >> S_T5_TXREQ_C0) & M_T5_TXREQ_C0)
-
-#define A_MAC_PORT_AE_TX_COEF_STAT 0x2a0c
-
-#define S_T5_TXSTAT_C2 4
-#define M_T5_TXSTAT_C2 0x3U
-#define V_T5_TXSTAT_C2(x) ((x) << S_T5_TXSTAT_C2)
-#define G_T5_TXSTAT_C2(x) (((x) >> S_T5_TXSTAT_C2) & M_T5_TXSTAT_C2)
-
-#define S_T5_TXSTAT_C1 2
-#define M_T5_TXSTAT_C1 0x3U
-#define V_T5_TXSTAT_C1(x) ((x) << S_T5_TXSTAT_C1)
-#define G_T5_TXSTAT_C1(x) (((x) >> S_T5_TXSTAT_C1) & M_T5_TXSTAT_C1)
-
-#define S_T5_TXSTAT_C0 0
-#define M_T5_TXSTAT_C0 0x3U
-#define V_T5_TXSTAT_C0(x) ((x) << S_T5_TXSTAT_C0)
-#define G_T5_TXSTAT_C0(x) (((x) >> S_T5_TXSTAT_C0) & M_T5_TXSTAT_C0)
-
-#define A_MAC_PORT_AE_REG_MODE 0x2a10
-
-#define S_AET_RSVD 7
-#define V_AET_RSVD(x) ((x) << S_AET_RSVD)
-#define F_AET_RSVD V_AET_RSVD(1U)
-
-#define S_AET_ENABLE 6
-#define V_AET_ENABLE(x) ((x) << S_AET_ENABLE)
-#define F_AET_ENABLE V_AET_ENABLE(1U)
-
-#define A_MAC_PORT_AE_PRBS_CTL 0x2a14
-#define A_MAC_PORT_AE_FSM_CTL 0x2a18
-
-#define S_CIN_ENABLE 15
-#define V_CIN_ENABLE(x) ((x) << S_CIN_ENABLE)
-#define F_CIN_ENABLE V_CIN_ENABLE(1U)
-
-#define A_MAC_PORT_AE_FSM_STATE 0x2a1c
-#define A_MAC_PORT_AE_RX_COEF_REQ_1 0x2a20
-#define A_MAC_PORT_AE_RX_COEF_STAT_1 0x2a24
-
-#define S_T5_AE1_RXSTAT_RDY 15
-#define V_T5_AE1_RXSTAT_RDY(x) ((x) << S_T5_AE1_RXSTAT_RDY)
-#define F_T5_AE1_RXSTAT_RDY V_T5_AE1_RXSTAT_RDY(1U)
-
-#define S_T5_AE1_RXSTAT_C2 4
-#define M_T5_AE1_RXSTAT_C2 0x3U
-#define V_T5_AE1_RXSTAT_C2(x) ((x) << S_T5_AE1_RXSTAT_C2)
-#define G_T5_AE1_RXSTAT_C2(x) (((x) >> S_T5_AE1_RXSTAT_C2) & M_T5_AE1_RXSTAT_C2)
-
-#define S_T5_AE1_RXSTAT_C1 2
-#define M_T5_AE1_RXSTAT_C1 0x3U
-#define V_T5_AE1_RXSTAT_C1(x) ((x) << S_T5_AE1_RXSTAT_C1)
-#define G_T5_AE1_RXSTAT_C1(x) (((x) >> S_T5_AE1_RXSTAT_C1) & M_T5_AE1_RXSTAT_C1)
-
-#define S_T5_AE1_RXSTAT_C0 0
-#define M_T5_AE1_RXSTAT_C0 0x3U
-#define V_T5_AE1_RXSTAT_C0(x) ((x) << S_T5_AE1_RXSTAT_C0)
-#define G_T5_AE1_RXSTAT_C0(x) (((x) >> S_T5_AE1_RXSTAT_C0) & M_T5_AE1_RXSTAT_C0)
-
-#define A_MAC_PORT_AE_TX_COEF_REQ_1 0x2a28
-#define A_MAC_PORT_AE_TX_COEF_STAT_1 0x2a2c
-#define A_MAC_PORT_AE_REG_MODE_1 0x2a30
-#define A_MAC_PORT_AE_PRBS_CTL_1 0x2a34
-#define A_MAC_PORT_AE_FSM_CTL_1 0x2a38
-#define A_MAC_PORT_AE_FSM_STATE_1 0x2a3c
-#define A_MAC_PORT_AE_RX_COEF_REQ_2 0x2a40
-#define A_MAC_PORT_AE_RX_COEF_STAT_2 0x2a44
-
-#define S_T5_AE2_RXSTAT_RDY 15
-#define V_T5_AE2_RXSTAT_RDY(x) ((x) << S_T5_AE2_RXSTAT_RDY)
-#define F_T5_AE2_RXSTAT_RDY V_T5_AE2_RXSTAT_RDY(1U)
-
-#define S_T5_AE2_RXSTAT_C2 4
-#define M_T5_AE2_RXSTAT_C2 0x3U
-#define V_T5_AE2_RXSTAT_C2(x) ((x) << S_T5_AE2_RXSTAT_C2)
-#define G_T5_AE2_RXSTAT_C2(x) (((x) >> S_T5_AE2_RXSTAT_C2) & M_T5_AE2_RXSTAT_C2)
-
-#define S_T5_AE2_RXSTAT_C1 2
-#define M_T5_AE2_RXSTAT_C1 0x3U
-#define V_T5_AE2_RXSTAT_C1(x) ((x) << S_T5_AE2_RXSTAT_C1)
-#define G_T5_AE2_RXSTAT_C1(x) (((x) >> S_T5_AE2_RXSTAT_C1) & M_T5_AE2_RXSTAT_C1)
-
-#define S_T5_AE2_RXSTAT_C0 0
-#define M_T5_AE2_RXSTAT_C0 0x3U
-#define V_T5_AE2_RXSTAT_C0(x) ((x) << S_T5_AE2_RXSTAT_C0)
-#define G_T5_AE2_RXSTAT_C0(x) (((x) >> S_T5_AE2_RXSTAT_C0) & M_T5_AE2_RXSTAT_C0)
-
-#define A_MAC_PORT_AE_TX_COEF_REQ_2 0x2a48
-#define A_MAC_PORT_AE_TX_COEF_STAT_2 0x2a4c
-#define A_MAC_PORT_AE_REG_MODE_2 0x2a50
-#define A_MAC_PORT_AE_PRBS_CTL_2 0x2a54
-#define A_MAC_PORT_AE_FSM_CTL_2 0x2a58
-#define A_MAC_PORT_AE_FSM_STATE_2 0x2a5c
-#define A_MAC_PORT_AE_RX_COEF_REQ_3 0x2a60
-#define A_MAC_PORT_AE_RX_COEF_STAT_3 0x2a64
-
-#define S_T5_AE3_RXSTAT_RDY 15
-#define V_T5_AE3_RXSTAT_RDY(x) ((x) << S_T5_AE3_RXSTAT_RDY)
-#define F_T5_AE3_RXSTAT_RDY V_T5_AE3_RXSTAT_RDY(1U)
-
-#define S_T5_AE3_RXSTAT_C2 4
-#define M_T5_AE3_RXSTAT_C2 0x3U
-#define V_T5_AE3_RXSTAT_C2(x) ((x) << S_T5_AE3_RXSTAT_C2)
-#define G_T5_AE3_RXSTAT_C2(x) (((x) >> S_T5_AE3_RXSTAT_C2) & M_T5_AE3_RXSTAT_C2)
-
-#define S_T5_AE3_RXSTAT_C1 2
-#define M_T5_AE3_RXSTAT_C1 0x3U
-#define V_T5_AE3_RXSTAT_C1(x) ((x) << S_T5_AE3_RXSTAT_C1)
-#define G_T5_AE3_RXSTAT_C1(x) (((x) >> S_T5_AE3_RXSTAT_C1) & M_T5_AE3_RXSTAT_C1)
-
-#define S_T5_AE3_RXSTAT_C0 0
-#define M_T5_AE3_RXSTAT_C0 0x3U
-#define V_T5_AE3_RXSTAT_C0(x) ((x) << S_T5_AE3_RXSTAT_C0)
-#define G_T5_AE3_RXSTAT_C0(x) (((x) >> S_T5_AE3_RXSTAT_C0) & M_T5_AE3_RXSTAT_C0)
-
-#define A_MAC_PORT_AE_TX_COEF_REQ_3 0x2a68
-#define A_MAC_PORT_AE_TX_COEF_STAT_3 0x2a6c
-#define A_MAC_PORT_AE_REG_MODE_3 0x2a70
-#define A_MAC_PORT_AE_PRBS_CTL_3 0x2a74
-#define A_MAC_PORT_AE_FSM_CTL_3 0x2a78
-#define A_MAC_PORT_AE_FSM_STATE_3 0x2a7c
-#define A_MAC_PORT_AE_TX_DIS 0x2a80
-#define A_MAC_PORT_AE_KR_CTRL 0x2a84
-#define A_MAC_PORT_AE_RX_SIGDET 0x2a88
-#define A_MAC_PORT_AE_KR_STATUS 0x2a8c
-#define A_MAC_PORT_AE_TX_DIS_1 0x2a90
-#define A_MAC_PORT_AE_KR_CTRL_1 0x2a94
-#define A_MAC_PORT_AE_RX_SIGDET_1 0x2a98
-#define A_MAC_PORT_AE_KR_STATUS_1 0x2a9c
-#define A_MAC_PORT_AE_TX_DIS_2 0x2aa0
-#define A_MAC_PORT_AE_KR_CTRL_2 0x2aa4
-#define A_MAC_PORT_AE_RX_SIGDET_2 0x2aa8
-#define A_MAC_PORT_AE_KR_STATUS_2 0x2aac
-#define A_MAC_PORT_AE_TX_DIS_3 0x2ab0
-#define A_MAC_PORT_AE_KR_CTRL_3 0x2ab4
-#define A_MAC_PORT_AE_RX_SIGDET_3 0x2ab8
-#define A_MAC_PORT_AE_KR_STATUS_3 0x2abc
-#define A_MAC_PORT_AET_STAGE_CONFIGURATION_0 0x2b00
-
-#define S_EN_HOLD_FAIL 14
-#define V_EN_HOLD_FAIL(x) ((x) << S_EN_HOLD_FAIL)
-#define F_EN_HOLD_FAIL V_EN_HOLD_FAIL(1U)
-
-#define S_INIT_METH 12
-#define M_INIT_METH 0x3U
-#define V_INIT_METH(x) ((x) << S_INIT_METH)
-#define G_INIT_METH(x) (((x) >> S_INIT_METH) & M_INIT_METH)
-
-#define S_CE_DECS 8
-#define M_CE_DECS 0xfU
-#define V_CE_DECS(x) ((x) << S_CE_DECS)
-#define G_CE_DECS(x) (((x) >> S_CE_DECS) & M_CE_DECS)
-
-#define S_EN_ZFE 7
-#define V_EN_ZFE(x) ((x) << S_EN_ZFE)
-#define F_EN_ZFE V_EN_ZFE(1U)
-
-#define S_EN_GAIN_TOG 6
-#define V_EN_GAIN_TOG(x) ((x) << S_EN_GAIN_TOG)
-#define F_EN_GAIN_TOG V_EN_GAIN_TOG(1U)
-
-#define S_EN_AI_C1 5
-#define V_EN_AI_C1(x) ((x) << S_EN_AI_C1)
-#define F_EN_AI_C1 V_EN_AI_C1(1U)
-
-#define S_EN_MAX_ST 4
-#define V_EN_MAX_ST(x) ((x) << S_EN_MAX_ST)
-#define F_EN_MAX_ST V_EN_MAX_ST(1U)
-
-#define S_EN_H1T_EQ 3
-#define V_EN_H1T_EQ(x) ((x) << S_EN_H1T_EQ)
-#define F_EN_H1T_EQ V_EN_H1T_EQ(1U)
-
-#define S_H1TEQ_GOAL 0
-#define M_H1TEQ_GOAL 0x7U
-#define V_H1TEQ_GOAL(x) ((x) << S_H1TEQ_GOAL)
-#define G_H1TEQ_GOAL(x) (((x) >> S_H1TEQ_GOAL) & M_H1TEQ_GOAL)
-
-#define A_MAC_PORT_AET_SIGNAL_LOSS_DETECTION_0 0x2b04
-
-#define S_GAIN_TH 6
-#define M_GAIN_TH 0x1fU
-#define V_GAIN_TH(x) ((x) << S_GAIN_TH)
-#define G_GAIN_TH(x) (((x) >> S_GAIN_TH) & M_GAIN_TH)
-
-#define S_EN_SD_TH 5
-#define V_EN_SD_TH(x) ((x) << S_EN_SD_TH)
-#define F_EN_SD_TH V_EN_SD_TH(1U)
-
-#define S_EN_AMIN_TH 4
-#define V_EN_AMIN_TH(x) ((x) << S_EN_AMIN_TH)
-#define F_EN_AMIN_TH V_EN_AMIN_TH(1U)
-
-#define S_AMIN_TH 0
-#define M_AMIN_TH 0xfU
-#define V_AMIN_TH(x) ((x) << S_AMIN_TH)
-#define G_AMIN_TH(x) (((x) >> S_AMIN_TH) & M_AMIN_TH)
-
-#define A_MAC_PORT_AET_ZFE_LIMITS_0 0x2b08
-
-#define S_ACC_LIM 8
-#define M_ACC_LIM 0xfU
-#define V_ACC_LIM(x) ((x) << S_ACC_LIM)
-#define G_ACC_LIM(x) (((x) >> S_ACC_LIM) & M_ACC_LIM)
-
-#define S_CNV_LIM 4
-#define M_CNV_LIM 0xfU
-#define V_CNV_LIM(x) ((x) << S_CNV_LIM)
-#define G_CNV_LIM(x) (((x) >> S_CNV_LIM) & M_CNV_LIM)
-
-#define S_TOG_LIM 0
-#define M_TOG_LIM 0xfU
-#define V_TOG_LIM(x) ((x) << S_TOG_LIM)
-#define G_TOG_LIM(x) (((x) >> S_TOG_LIM) & M_TOG_LIM)
-
-#define A_MAC_PORT_AET_BOOTSTRAP_LOOKUP_TABLE_0 0x2b0c
-
-#define S_BOOT_LUT7 12
-#define M_BOOT_LUT7 0xfU
-#define V_BOOT_LUT7(x) ((x) << S_BOOT_LUT7)
-#define G_BOOT_LUT7(x) (((x) >> S_BOOT_LUT7) & M_BOOT_LUT7)
-
-#define S_BOOT_LUT6 8
-#define M_BOOT_LUT6 0xfU
-#define V_BOOT_LUT6(x) ((x) << S_BOOT_LUT6)
-#define G_BOOT_LUT6(x) (((x) >> S_BOOT_LUT6) & M_BOOT_LUT6)
-
-#define S_BOOT_LUT45 4
-#define M_BOOT_LUT45 0xfU
-#define V_BOOT_LUT45(x) ((x) << S_BOOT_LUT45)
-#define G_BOOT_LUT45(x) (((x) >> S_BOOT_LUT45) & M_BOOT_LUT45)
-
-#define S_BOOT_LUT0123 2
-#define M_BOOT_LUT0123 0x3U
-#define V_BOOT_LUT0123(x) ((x) << S_BOOT_LUT0123)
-#define G_BOOT_LUT0123(x) (((x) >> S_BOOT_LUT0123) & M_BOOT_LUT0123)
-
-#define S_BOOT_DEC_C0 1
-#define V_BOOT_DEC_C0(x) ((x) << S_BOOT_DEC_C0)
-#define F_BOOT_DEC_C0 V_BOOT_DEC_C0(1U)
-
-#define A_MAC_PORT_AET_STATUS_0 0x2b10
-
-#define S_AET_STAT 9
-#define M_AET_STAT 0xfU
-#define V_AET_STAT(x) ((x) << S_AET_STAT)
-#define G_AET_STAT(x) (((x) >> S_AET_STAT) & M_AET_STAT)
-
-#define S_NEU_STATE 5
-#define M_NEU_STATE 0xfU
-#define V_NEU_STATE(x) ((x) << S_NEU_STATE)
-#define G_NEU_STATE(x) (((x) >> S_NEU_STATE) & M_NEU_STATE)
-
-#define S_CTRL_STATE 0
-#define M_CTRL_STATE 0x1fU
-#define V_CTRL_STATE(x) ((x) << S_CTRL_STATE)
-#define G_CTRL_STATE(x) (((x) >> S_CTRL_STATE) & M_CTRL_STATE)
-
-#define A_MAC_PORT_AET_STAGE_CONFIGURATION_1 0x2b20
-#define A_MAC_PORT_AET_SIGNAL_LOSS_DETECTION_1 0x2b24
-#define A_MAC_PORT_AET_ZFE_LIMITS_1 0x2b28
-#define A_MAC_PORT_AET_BOOTSTRAP_LOOKUP_TABLE_1 0x2b2c
-#define A_MAC_PORT_AET_STATUS_1 0x2b30
-#define A_MAC_PORT_AET_STAGE_CONFIGURATION_2 0x2b40
-#define A_MAC_PORT_AET_SIGNAL_LOSS_DETECTION_2 0x2b44
-#define A_MAC_PORT_AET_ZFE_LIMITS_2 0x2b48
-#define A_MAC_PORT_AET_BOOTSTRAP_LOOKUP_TABLE_2 0x2b4c
-#define A_MAC_PORT_AET_STATUS_2 0x2b50
-#define A_MAC_PORT_AET_STAGE_CONFIGURATION_3 0x2b60
-#define A_MAC_PORT_AET_SIGNAL_LOSS_DETECTION_3 0x2b64
-#define A_MAC_PORT_AET_ZFE_LIMITS_3 0x2b68
-#define A_MAC_PORT_AET_BOOTSTRAP_LOOKUP_TABLE_3 0x2b6c
-#define A_MAC_PORT_AET_STATUS_3 0x2b70
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_CONFIGURATION_MODE 0x3000
-
-#define S_T5_TX_LINKEN 15
-#define V_T5_TX_LINKEN(x) ((x) << S_T5_TX_LINKEN)
-#define F_T5_TX_LINKEN V_T5_TX_LINKEN(1U)
-
-#define S_T5_TX_LINKRST 14
-#define V_T5_TX_LINKRST(x) ((x) << S_T5_TX_LINKRST)
-#define F_T5_TX_LINKRST V_T5_TX_LINKRST(1U)
-
-#define S_T5_TX_CFGWRT 13
-#define V_T5_TX_CFGWRT(x) ((x) << S_T5_TX_CFGWRT)
-#define F_T5_TX_CFGWRT V_T5_TX_CFGWRT(1U)
-
-#define S_T5_TX_CFGPTR 11
-#define M_T5_TX_CFGPTR 0x3U
-#define V_T5_TX_CFGPTR(x) ((x) << S_T5_TX_CFGPTR)
-#define G_T5_TX_CFGPTR(x) (((x) >> S_T5_TX_CFGPTR) & M_T5_TX_CFGPTR)
-
-#define S_T5_TX_CFGEXT 10
-#define V_T5_TX_CFGEXT(x) ((x) << S_T5_TX_CFGEXT)
-#define F_T5_TX_CFGEXT V_T5_TX_CFGEXT(1U)
-
-#define S_T5_TX_CFGACT 9
-#define V_T5_TX_CFGACT(x) ((x) << S_T5_TX_CFGACT)
-#define F_T5_TX_CFGACT V_T5_TX_CFGACT(1U)
-
-#define S_T5_TX_RSYNCC 8
-#define V_T5_TX_RSYNCC(x) ((x) << S_T5_TX_RSYNCC)
-#define F_T5_TX_RSYNCC V_T5_TX_RSYNCC(1U)
-
-#define S_T5_TX_PLLSEL 6
-#define M_T5_TX_PLLSEL 0x3U
-#define V_T5_TX_PLLSEL(x) ((x) << S_T5_TX_PLLSEL)
-#define G_T5_TX_PLLSEL(x) (((x) >> S_T5_TX_PLLSEL) & M_T5_TX_PLLSEL)
-
-#define S_T5_TX_EXTC16 5
-#define V_T5_TX_EXTC16(x) ((x) << S_T5_TX_EXTC16)
-#define F_T5_TX_EXTC16 V_T5_TX_EXTC16(1U)
-
-#define S_T5_TX_DCKSEL 4
-#define V_T5_TX_DCKSEL(x) ((x) << S_T5_TX_DCKSEL)
-#define F_T5_TX_DCKSEL V_T5_TX_DCKSEL(1U)
-
-#define S_T5_TX_RXLOOP 3
-#define V_T5_TX_RXLOOP(x) ((x) << S_T5_TX_RXLOOP)
-#define F_T5_TX_RXLOOP V_T5_TX_RXLOOP(1U)
-
-#define S_T5_TX_BWSEL 2
-#define V_T5_TX_BWSEL(x) ((x) << S_T5_TX_BWSEL)
-#define F_T5_TX_BWSEL V_T5_TX_BWSEL(1U)
-
-#define S_T5_TX_RTSEL 0
-#define M_T5_TX_RTSEL 0x3U
-#define V_T5_TX_RTSEL(x) ((x) << S_T5_TX_RTSEL)
-#define G_T5_TX_RTSEL(x) (((x) >> S_T5_TX_RTSEL) & M_T5_TX_RTSEL)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TEST_CONTROL 0x3004
-
-#define S_SPSEL 11
-#define M_SPSEL 0x7U
-#define V_SPSEL(x) ((x) << S_SPSEL)
-#define G_SPSEL(x) (((x) >> S_SPSEL) & M_SPSEL)
-
-#define S_AFDWEN 7
-#define V_AFDWEN(x) ((x) << S_AFDWEN)
-#define F_AFDWEN V_AFDWEN(1U)
-
-#define S_TPGMD 3
-#define V_TPGMD(x) ((x) << S_TPGMD)
-#define F_TPGMD V_TPGMD(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_COEFFICIENT_CONTROL 0x3008
-
-#define S_ZCALOVRD 8
-#define V_ZCALOVRD(x) ((x) << S_ZCALOVRD)
-#define F_ZCALOVRD V_ZCALOVRD(1U)
-
-#define S_AMMODE 7
-#define V_AMMODE(x) ((x) << S_AMMODE)
-#define F_AMMODE V_AMMODE(1U)
-
-#define S_AEPOL 6
-#define V_AEPOL(x) ((x) << S_AEPOL)
-#define F_AEPOL V_AEPOL(1U)
-
-#define S_AESRC 5
-#define V_AESRC(x) ((x) << S_AESRC)
-#define F_AESRC V_AESRC(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DRIVER_MODE_CONTROL 0x300c
-
-#define S_T5DRVHIZ 5
-#define V_T5DRVHIZ(x) ((x) << S_T5DRVHIZ)
-#define F_T5DRVHIZ V_T5DRVHIZ(1U)
-
-#define S_T5SASIMP 4
-#define V_T5SASIMP(x) ((x) << S_T5SASIMP)
-#define F_T5SASIMP V_T5SASIMP(1U)
-
-#define S_T5SLEW 2
-#define M_T5SLEW 0x3U
-#define V_T5SLEW(x) ((x) << S_T5SLEW)
-#define G_T5SLEW(x) (((x) >> S_T5SLEW) & M_T5SLEW)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DRIVER_OVERRIDE_CONTROL 0x3010
-
-#define S_T5C2BUFDCEN 5
-#define V_T5C2BUFDCEN(x) ((x) << S_T5C2BUFDCEN)
-#define F_T5C2BUFDCEN V_T5C2BUFDCEN(1U)
-
-#define S_T5DCCEN 4
-#define V_T5DCCEN(x) ((x) << S_T5DCCEN)
-#define F_T5DCCEN V_T5DCCEN(1U)
-
-#define S_T5REGBYP 3
-#define V_T5REGBYP(x) ((x) << S_T5REGBYP)
-#define F_T5REGBYP V_T5REGBYP(1U)
-
-#define S_T5REGAEN 2
-#define V_T5REGAEN(x) ((x) << S_T5REGAEN)
-#define F_T5REGAEN V_T5REGAEN(1U)
-
-#define S_T5REGAMP 0
-#define M_T5REGAMP 0x3U
-#define V_T5REGAMP(x) ((x) << S_T5REGAMP)
-#define G_T5REGAMP(x) (((x) >> S_T5REGAMP) & M_T5REGAMP)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DCLK_ROTATOR_OVERRIDE 0x3014
-
-#define S_RSTEP 15
-#define V_RSTEP(x) ((x) << S_RSTEP)
-#define F_RSTEP V_RSTEP(1U)
-
-#define S_RLOCK 14
-#define V_RLOCK(x) ((x) << S_RLOCK)
-#define F_RLOCK V_RLOCK(1U)
-
-#define S_RPOS 8
-#define M_RPOS 0x3fU
-#define V_RPOS(x) ((x) << S_RPOS)
-#define G_RPOS(x) (((x) >> S_RPOS) & M_RPOS)
-
-#define S_DCLKSAM 7
-#define V_DCLKSAM(x) ((x) << S_DCLKSAM)
-#define F_DCLKSAM V_DCLKSAM(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_IMPEDANCE_CALIBRATION_OVERRIDE 0x3018
-
-#define S_CALSSTN 3
-#define M_CALSSTN 0x7U
-#define V_CALSSTN(x) ((x) << S_CALSSTN)
-#define G_CALSSTN(x) (((x) >> S_CALSSTN) & M_CALSSTN)
-
-#define S_CALSSTP 0
-#define M_CALSSTP 0x7U
-#define V_CALSSTP(x) ((x) << S_CALSSTP)
-#define G_CALSSTP(x) (((x) >> S_CALSSTP) & M_CALSSTP)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DCLK_DRIFT_TOLERANCE 0x301c
-
-#define S_DRTOL 0
-#define M_DRTOL 0x1fU
-#define V_DRTOL(x) ((x) << S_DRTOL)
-#define G_DRTOL(x) (((x) >> S_DRTOL) & M_DRTOL)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_0_COEFFICIENT 0x3020
-
-#define S_T5NXTT0 0
-#define M_T5NXTT0 0x1fU
-#define V_T5NXTT0(x) ((x) << S_T5NXTT0)
-#define G_T5NXTT0(x) (((x) >> S_T5NXTT0) & M_T5NXTT0)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_1_COEFFICIENT 0x3024
-
-#define S_T5NXTT1 0
-#define M_T5NXTT1 0x3fU
-#define V_T5NXTT1(x) ((x) << S_T5NXTT1)
-#define G_T5NXTT1(x) (((x) >> S_T5NXTT1) & M_T5NXTT1)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_2_COEFFICIENT 0x3028
-
-#define S_T5NXTT2 0
-#define M_T5NXTT2 0x3fU
-#define V_T5NXTT2(x) ((x) << S_T5NXTT2)
-#define G_T5NXTT2(x) (((x) >> S_T5NXTT2) & M_T5NXTT2)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_AMPLITUDE 0x3030
-
-#define S_T5TXPWR 0
-#define M_T5TXPWR 0x3fU
-#define V_T5TXPWR(x) ((x) << S_T5TXPWR)
-#define G_T5TXPWR(x) (((x) >> S_T5TXPWR) & M_T5TXPWR)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_POLARITY 0x3034
-
-#define S_NXTPOL 0
-#define M_NXTPOL 0x7U
-#define V_NXTPOL(x) ((x) << S_NXTPOL)
-#define G_NXTPOL(x) (((x) >> S_NXTPOL) & M_NXTPOL)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_COMMAND 0x3038
-
-#define S_CPREST 13
-#define V_CPREST(x) ((x) << S_CPREST)
-#define F_CPREST V_CPREST(1U)
-
-#define S_CINIT 12
-#define V_CINIT(x) ((x) << S_CINIT)
-#define F_CINIT V_CINIT(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_STATUS 0x303c
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_0_COEFFICIENT_OVERRIDE 0x3040
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_1_COEFFICIENT_OVERRIDE 0x3044
-
-#define S_T5NIDAC1 0
-#define M_T5NIDAC1 0x3fU
-#define V_T5NIDAC1(x) ((x) << S_T5NIDAC1)
-#define G_T5NIDAC1(x) (((x) >> S_T5NIDAC1) & M_T5NIDAC1)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_2_COEFFICIENT_OVERRIDE 0x3048
-
-#define S_T5NIDAC2 0
-#define M_T5NIDAC2 0x3fU
-#define V_T5NIDAC2(x) ((x) << S_T5NIDAC2)
-#define G_T5NIDAC2(x) (((x) >> S_T5NIDAC2) & M_T5NIDAC2)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_0_COEFFICIENT_APPLIED 0x3060
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_1_COEFFICIENT_APPLIED 0x3064
-
-#define S_T5AIDAC1 0
-#define M_T5AIDAC1 0x3fU
-#define V_T5AIDAC1(x) ((x) << S_T5AIDAC1)
-#define G_T5AIDAC1(x) (((x) >> S_T5AIDAC1) & M_T5AIDAC1)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_TAP_2_COEFFICIENT_APPLIED 0x3068
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_SEGMENT_DISABLE_APPLIED_1 0x3070
-
-#define S_MAINSC 6
-#define M_MAINSC 0x3fU
-#define V_MAINSC(x) ((x) << S_MAINSC)
-#define G_MAINSC(x) (((x) >> S_MAINSC) & M_MAINSC)
-
-#define S_POSTSC 0
-#define M_POSTSC 0x3fU
-#define V_POSTSC(x) ((x) << S_POSTSC)
-#define G_POSTSC(x) (((x) >> S_POSTSC) & M_POSTSC)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_SEGMENT_DISABLE_APPLIED_2 0x3074
-
-#define S_PRESC 0
-#define M_PRESC 0x1fU
-#define V_PRESC(x) ((x) << S_PRESC)
-#define G_PRESC(x) (((x) >> S_PRESC) & M_PRESC)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_EXTENDED_ADDRESS_DATA 0x3078
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_EXTENDED_ADDRESS_ADDR 0x307c
-
-#define S_T5XADDR 1
-#define M_T5XADDR 0x1fU
-#define V_T5XADDR(x) ((x) << S_T5XADDR)
-#define G_T5XADDR(x) (((x) >> S_T5XADDR) & M_T5XADDR)
-
-#define S_T5XWR 0
-#define V_T5XWR(x) ((x) << S_T5XWR)
-#define F_T5XWR V_T5XWR(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_PATTERN_BUFFER_BYTES_1_0 0x3080
-
-#define S_XDAT10 0
-#define M_XDAT10 0xffffU
-#define V_XDAT10(x) ((x) << S_XDAT10)
-#define G_XDAT10(x) (((x) >> S_XDAT10) & M_XDAT10)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_PATTERN_BUFFER_BYTES_3_2 0x3084
-
-#define S_XDAT32 0
-#define M_XDAT32 0xffffU
-#define V_XDAT32(x) ((x) << S_XDAT32)
-#define G_XDAT32(x) (((x) >> S_XDAT32) & M_XDAT32)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_PATTERN_BUFFER_BYTE_4 0x3088
-
-#define S_XDAT4 0
-#define M_XDAT4 0xffU
-#define V_XDAT4(x) ((x) << S_XDAT4)
-#define G_XDAT4(x) (((x) >> S_XDAT4) & M_XDAT4)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DCC_CONTROL 0x308c
-
-#define S_DCCTIMEDOUT 15
-#define V_DCCTIMEDOUT(x) ((x) << S_DCCTIMEDOUT)
-#define F_DCCTIMEDOUT V_DCCTIMEDOUT(1U)
-
-#define S_DCCTIMEEN 14
-#define V_DCCTIMEEN(x) ((x) << S_DCCTIMEEN)
-#define F_DCCTIMEEN V_DCCTIMEEN(1U)
-
-#define S_DCCLOCK 13
-#define V_DCCLOCK(x) ((x) << S_DCCLOCK)
-#define F_DCCLOCK V_DCCLOCK(1U)
-
-#define S_DCCOFFSET 8
-#define M_DCCOFFSET 0x1fU
-#define V_DCCOFFSET(x) ((x) << S_DCCOFFSET)
-#define G_DCCOFFSET(x) (((x) >> S_DCCOFFSET) & M_DCCOFFSET)
-
-#define S_DCCSTEP 6
-#define M_DCCSTEP 0x3U
-#define V_DCCSTEP(x) ((x) << S_DCCSTEP)
-#define G_DCCSTEP(x) (((x) >> S_DCCSTEP) & M_DCCSTEP)
-
-#define S_DCCASTEP 1
-#define M_DCCASTEP 0x1fU
-#define V_DCCASTEP(x) ((x) << S_DCCASTEP)
-#define G_DCCASTEP(x) (((x) >> S_DCCASTEP) & M_DCCASTEP)
-
-#define S_DCCAEN 0
-#define V_DCCAEN(x) ((x) << S_DCCAEN)
-#define F_DCCAEN V_DCCAEN(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DCC_OVERRIDE 0x3090
-
-#define S_DCCOUT 12
-#define V_DCCOUT(x) ((x) << S_DCCOUT)
-#define F_DCCOUT V_DCCOUT(1U)
-
-#define S_DCCCLK 11
-#define V_DCCCLK(x) ((x) << S_DCCCLK)
-#define F_DCCCLK V_DCCCLK(1U)
-
-#define S_DCCHOLD 10
-#define V_DCCHOLD(x) ((x) << S_DCCHOLD)
-#define F_DCCHOLD V_DCCHOLD(1U)
-
-#define S_DCCSIGN 8
-#define M_DCCSIGN 0x3U
-#define V_DCCSIGN(x) ((x) << S_DCCSIGN)
-#define G_DCCSIGN(x) (((x) >> S_DCCSIGN) & M_DCCSIGN)
-
-#define S_DCCAMP 1
-#define M_DCCAMP 0x7fU
-#define V_DCCAMP(x) ((x) << S_DCCAMP)
-#define G_DCCAMP(x) (((x) >> S_DCCAMP) & M_DCCAMP)
-
-#define S_DCCOEN 0
-#define V_DCCOEN(x) ((x) << S_DCCOEN)
-#define F_DCCOEN V_DCCOEN(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DCC_APPLIED 0x3094
-
-#define S_DCCASIGN 7
-#define M_DCCASIGN 0x3U
-#define V_DCCASIGN(x) ((x) << S_DCCASIGN)
-#define G_DCCASIGN(x) (((x) >> S_DCCASIGN) & M_DCCASIGN)
-
-#define S_DCCAAMP 0
-#define M_DCCAAMP 0x7fU
-#define V_DCCAAMP(x) ((x) << S_DCCAAMP)
-#define G_DCCAAMP(x) (((x) >> S_DCCAAMP) & M_DCCAAMP)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_DCC_TIME_OUT 0x3098
-
-#define S_DCCTIMEOUTVAL 0
-#define M_DCCTIMEOUTVAL 0xffffU
-#define V_DCCTIMEOUTVAL(x) ((x) << S_DCCTIMEOUTVAL)
-#define G_DCCTIMEOUTVAL(x) (((x) >> S_DCCTIMEOUTVAL) & M_DCCTIMEOUTVAL)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AZ_CONTROL 0x309c
-
-#define S_LPIDCLK 4
-#define V_LPIDCLK(x) ((x) << S_LPIDCLK)
-#define F_LPIDCLK V_LPIDCLK(1U)
-
-#define S_LPITERM 2
-#define M_LPITERM 0x3U
-#define V_LPITERM(x) ((x) << S_LPITERM)
-#define G_LPITERM(x) (((x) >> S_LPITERM) & M_LPITERM)
-
-#define S_LPIPRCD 0
-#define M_LPIPRCD 0x3U
-#define V_LPIPRCD(x) ((x) << S_LPIPRCD)
-#define G_LPIPRCD(x) (((x) >> S_LPIPRCD) & M_LPIPRCD)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_MACRO_TEST_CONTROL_4 0x30f0
-
-#define S_SDOVRDEN 8
-#define V_SDOVRDEN(x) ((x) << S_SDOVRDEN)
-#define F_SDOVRDEN V_SDOVRDEN(1U)
-
-#define S_SDOVRD 0
-#define M_SDOVRD 0xffU
-#define V_SDOVRD(x) ((x) << S_SDOVRD)
-#define G_SDOVRD(x) (((x) >> S_SDOVRD) & M_SDOVRD)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_MACRO_TEST_CONTROL_3 0x30f4
-
-#define S_SLEWCODE 1
-#define M_SLEWCODE 0x3U
-#define V_SLEWCODE(x) ((x) << S_SLEWCODE)
-#define G_SLEWCODE(x) (((x) >> S_SLEWCODE) & M_SLEWCODE)
-
-#define S_ASEGEN 0
-#define V_ASEGEN(x) ((x) << S_ASEGEN)
-#define F_ASEGEN V_ASEGEN(1U)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_MACRO_TEST_CONTROL_2 0x30f8
-
-#define S_AECMDVAL 14
-#define V_AECMDVAL(x) ((x) << S_AECMDVAL)
-#define F_AECMDVAL V_AECMDVAL(1U)
-
-#define S_AECMD1312 12
-#define M_AECMD1312 0x3U
-#define V_AECMD1312(x) ((x) << S_AECMD1312)
-#define G_AECMD1312(x) (((x) >> S_AECMD1312) & M_AECMD1312)
-
-#define S_AECMD70 0
-#define M_AECMD70 0xffU
-#define V_AECMD70(x) ((x) << S_AECMD70)
-#define G_AECMD70(x) (((x) >> S_AECMD70) & M_AECMD70)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_MACRO_TEST_CONTROL_1 0x30fc
-
-#define S_C48DIVCTL 12
-#define M_C48DIVCTL 0x7U
-#define V_C48DIVCTL(x) ((x) << S_C48DIVCTL)
-#define G_C48DIVCTL(x) (((x) >> S_C48DIVCTL) & M_C48DIVCTL)
-
-#define S_RATEDIVCTL 9
-#define M_RATEDIVCTL 0x7U
-#define V_RATEDIVCTL(x) ((x) << S_RATEDIVCTL)
-#define G_RATEDIVCTL(x) (((x) >> S_RATEDIVCTL) & M_RATEDIVCTL)
-
-#define S_ANLGFLSH 8
-#define V_ANLGFLSH(x) ((x) << S_ANLGFLSH)
-#define F_ANLGFLSH V_ANLGFLSH(1U)
-
-#define S_DCCTSTOUT 7
-#define V_DCCTSTOUT(x) ((x) << S_DCCTSTOUT)
-#define F_DCCTSTOUT V_DCCTSTOUT(1U)
-
-#define S_BSOUT 6
-#define V_BSOUT(x) ((x) << S_BSOUT)
-#define F_BSOUT V_BSOUT(1U)
-
-#define S_BSIN 5
-#define V_BSIN(x) ((x) << S_BSIN)
-#define F_BSIN V_BSIN(1U)
-
-#define S_JTAGAMPL 3
-#define M_JTAGAMPL 0x3U
-#define V_JTAGAMPL(x) ((x) << S_JTAGAMPL)
-#define G_JTAGAMPL(x) (((x) >> S_JTAGAMPL) & M_JTAGAMPL)
-
-#define S_JTAGTS 2
-#define V_JTAGTS(x) ((x) << S_JTAGTS)
-#define F_JTAGTS V_JTAGTS(1U)
-
-#define S_TS 1
-#define V_TS(x) ((x) << S_TS)
-#define F_TS V_TS(1U)
-
-#define S_OBS 0
-#define V_OBS(x) ((x) << S_OBS)
-#define F_OBS V_OBS(1U)
-
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_CONFIGURATION_MODE 0x3100
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TEST_CONTROL 0x3104
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_COEFFICIENT_CONTROL 0x3108
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DRIVER_MODE_CONTROL 0x310c
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DRIVER_OVERRIDE_CONTROL 0x3110
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DCLK_ROTATOR_OVERRIDE 0x3114
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_IMPEDANCE_CALIBRATION_OVERRIDE 0x3118
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DCLK_DRIFT_TOLERANCE 0x311c
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_0_COEFFICIENT 0x3120
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_1_COEFFICIENT 0x3124
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_2_COEFFICIENT 0x3128
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_AMPLITUDE 0x3130
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_POLARITY 0x3134
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_COMMAND 0x3138
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_STATUS 0x313c
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_0_COEFFICIENT_OVERRIDE 0x3140
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_1_COEFFICIENT_OVERRIDE 0x3144
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_2_COEFFICIENT_OVERRIDE 0x3148
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_0_COEFFICIENT_APPLIED 0x3160
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_1_COEFFICIENT_APPLIED 0x3164
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_TAP_2_COEFFICIENT_APPLIED 0x3168
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_SEGMENT_DISABLE_APPLIED_1 0x3170
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_SEGMENT_DISABLE_APPLIED_2 0x3174
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_EXTENDED_ADDRESS_DATA 0x3178
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_EXTENDED_ADDRESS_ADDR 0x317c
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_PATTERN_BUFFER_BYTES_1_0 0x3180
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_PATTERN_BUFFER_BYTES_3_2 0x3184
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_PATTERN_BUFFER_BYTE_4 0x3188
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DCC_CONTROL 0x318c
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DCC_OVERRIDE 0x3190
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DCC_APPLIED 0x3194
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_DCC_TIME_OUT 0x3198
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AZ_CONTROL 0x319c
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_MACRO_TEST_CONTROL_4 0x31f0
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_MACRO_TEST_CONTROL_3 0x31f4
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_MACRO_TEST_CONTROL_2 0x31f8
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_MACRO_TEST_CONTROL_1 0x31fc
-#define A_MAC_PORT_RX_LINKA_RECEIVER_CONFIGURATION_MODE 0x3200
-
-#define S_T5_RX_LINKEN 15
-#define V_T5_RX_LINKEN(x) ((x) << S_T5_RX_LINKEN)
-#define F_T5_RX_LINKEN V_T5_RX_LINKEN(1U)
-
-#define S_T5_RX_LINKRST 14
-#define V_T5_RX_LINKRST(x) ((x) << S_T5_RX_LINKRST)
-#define F_T5_RX_LINKRST V_T5_RX_LINKRST(1U)
-
-#define S_T5_RX_CFGWRT 13
-#define V_T5_RX_CFGWRT(x) ((x) << S_T5_RX_CFGWRT)
-#define F_T5_RX_CFGWRT V_T5_RX_CFGWRT(1U)
-
-#define S_T5_RX_CFGPTR 11
-#define M_T5_RX_CFGPTR 0x3U
-#define V_T5_RX_CFGPTR(x) ((x) << S_T5_RX_CFGPTR)
-#define G_T5_RX_CFGPTR(x) (((x) >> S_T5_RX_CFGPTR) & M_T5_RX_CFGPTR)
-
-#define S_T5_RX_CFGEXT 10
-#define V_T5_RX_CFGEXT(x) ((x) << S_T5_RX_CFGEXT)
-#define F_T5_RX_CFGEXT V_T5_RX_CFGEXT(1U)
-
-#define S_T5_RX_CFGACT 9
-#define V_T5_RX_CFGACT(x) ((x) << S_T5_RX_CFGACT)
-#define F_T5_RX_CFGACT V_T5_RX_CFGACT(1U)
-
-#define S_T5_RX_AUXCLK 8
-#define V_T5_RX_AUXCLK(x) ((x) << S_T5_RX_AUXCLK)
-#define F_T5_RX_AUXCLK V_T5_RX_AUXCLK(1U)
-
-#define S_T5_RX_PLLSEL 6
-#define M_T5_RX_PLLSEL 0x3U
-#define V_T5_RX_PLLSEL(x) ((x) << S_T5_RX_PLLSEL)
-#define G_T5_RX_PLLSEL(x) (((x) >> S_T5_RX_PLLSEL) & M_T5_RX_PLLSEL)
-
-#define S_T5_RX_DMSEL 4
-#define M_T5_RX_DMSEL 0x3U
-#define V_T5_RX_DMSEL(x) ((x) << S_T5_RX_DMSEL)
-#define G_T5_RX_DMSEL(x) (((x) >> S_T5_RX_DMSEL) & M_T5_RX_DMSEL)
-
-#define S_T5_RX_BWSEL 2
-#define M_T5_RX_BWSEL 0x3U
-#define V_T5_RX_BWSEL(x) ((x) << S_T5_RX_BWSEL)
-#define G_T5_RX_BWSEL(x) (((x) >> S_T5_RX_BWSEL) & M_T5_RX_BWSEL)
-
-#define S_T5_RX_RTSEL 0
-#define M_T5_RX_RTSEL 0x3U
-#define V_T5_RX_RTSEL(x) ((x) << S_T5_RX_RTSEL)
-#define G_T5_RX_RTSEL(x) (((x) >> S_T5_RX_RTSEL) & M_T5_RX_RTSEL)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_TEST_CONTROL 0x3204
-
-#define S_FERRST 10
-#define V_FERRST(x) ((x) << S_FERRST)
-#define F_FERRST V_FERRST(1U)
-
-#define S_ERRST 9
-#define V_ERRST(x) ((x) << S_ERRST)
-#define F_ERRST V_ERRST(1U)
-
-#define S_SYNCST 8
-#define V_SYNCST(x) ((x) << S_SYNCST)
-#define F_SYNCST V_SYNCST(1U)
-
-#define S_WRPSM 7
-#define V_WRPSM(x) ((x) << S_WRPSM)
-#define F_WRPSM V_WRPSM(1U)
-
-#define S_WPLPEN 6
-#define V_WPLPEN(x) ((x) << S_WPLPEN)
-#define F_WPLPEN V_WPLPEN(1U)
-
-#define S_WRPMD 5
-#define V_WRPMD(x) ((x) << S_WRPMD)
-#define F_WRPMD V_WRPMD(1U)
-
-#define S_PATSEL 0
-#define M_PATSEL 0x7U
-#define V_PATSEL(x) ((x) << S_PATSEL)
-#define G_PATSEL(x) (((x) >> S_PATSEL) & M_PATSEL)
-
-#define A_MAC_PORT_RX_LINKA_PHASE_ROTATOR_CONTROL 0x3208
-
-#define S_RSTUCK 3
-#define V_RSTUCK(x) ((x) << S_RSTUCK)
-#define F_RSTUCK V_RSTUCK(1U)
-
-#define S_FRZFW 2
-#define V_FRZFW(x) ((x) << S_FRZFW)
-#define F_FRZFW V_FRZFW(1U)
-
-#define S_RSTFW 1
-#define V_RSTFW(x) ((x) << S_RSTFW)
-#define F_RSTFW V_RSTFW(1U)
-
-#define S_SSCEN 0
-#define V_SSCEN(x) ((x) << S_SSCEN)
-#define F_SSCEN V_SSCEN(1U)
-
-#define A_MAC_PORT_RX_LINKA_PHASE_ROTATOR_OFFSET_CONTROL 0x320c
-#define A_MAC_PORT_RX_LINKA_PHASE_ROTATOR_POSITION_1 0x3210
-
-#define S_ROT00 0
-#define M_ROT00 0x3fU
-#define V_ROT00(x) ((x) << S_ROT00)
-#define G_ROT00(x) (((x) >> S_ROT00) & M_ROT00)
-
-#define A_MAC_PORT_RX_LINKA_PHASE_ROTATOR_POSITION_2 0x3214
-
-#define S_FREQFW 8
-#define M_FREQFW 0xffU
-#define V_FREQFW(x) ((x) << S_FREQFW)
-#define G_FREQFW(x) (((x) >> S_FREQFW) & M_FREQFW)
-
-#define S_FWSNAP 7
-#define V_FWSNAP(x) ((x) << S_FWSNAP)
-#define F_FWSNAP V_FWSNAP(1U)
-
-#define A_MAC_PORT_RX_LINKA_PHASE_ROTATOR_STATIC_PHASE_OFFSET_1 0x3218
-#define A_MAC_PORT_RX_LINKA_PHASE_ROTATOR_STATIC_PHASE_OFFSET_2 0x321c
-
-#define S_RBOOFF 10
-#define M_RBOOFF 0x1fU
-#define V_RBOOFF(x) ((x) << S_RBOOFF)
-#define G_RBOOFF(x) (((x) >> S_RBOOFF) & M_RBOOFF)
-
-#define S_RBEOFF 5
-#define M_RBEOFF 0x1fU
-#define V_RBEOFF(x) ((x) << S_RBEOFF)
-#define G_RBEOFF(x) (((x) >> S_RBEOFF) & M_RBEOFF)
-
-#define A_MAC_PORT_RX_LINKA_DFE_CONTROL 0x3220
-#define A_MAC_PORT_RX_LINKA_DFE_SAMPLE_SNAPSHOT_1 0x3224
-
-#define S_T5BYTE1 8
-#define M_T5BYTE1 0xffU
-#define V_T5BYTE1(x) ((x) << S_T5BYTE1)
-#define G_T5BYTE1(x) (((x) >> S_T5BYTE1) & M_T5BYTE1)
-
-#define S_T5BYTE0 0
-#define M_T5BYTE0 0xffU
-#define V_T5BYTE0(x) ((x) << S_T5BYTE0)
-#define G_T5BYTE0(x) (((x) >> S_T5BYTE0) & M_T5BYTE0)
-
-#define A_MAC_PORT_RX_LINKA_DFE_SAMPLE_SNAPSHOT_2 0x3228
-
-#define S_T5_RX_SMODE 8
-#define M_T5_RX_SMODE 0x7U
-#define V_T5_RX_SMODE(x) ((x) << S_T5_RX_SMODE)
-#define G_T5_RX_SMODE(x) (((x) >> S_T5_RX_SMODE) & M_T5_RX_SMODE)
-
-#define S_T5_RX_ADCORR 7
-#define V_T5_RX_ADCORR(x) ((x) << S_T5_RX_ADCORR)
-#define F_T5_RX_ADCORR V_T5_RX_ADCORR(1U)
-
-#define S_T5_RX_TRAINEN 6
-#define V_T5_RX_TRAINEN(x) ((x) << S_T5_RX_TRAINEN)
-#define F_T5_RX_TRAINEN V_T5_RX_TRAINEN(1U)
-
-#define S_T5_RX_ASAMPQ 3
-#define M_T5_RX_ASAMPQ 0x7U
-#define V_T5_RX_ASAMPQ(x) ((x) << S_T5_RX_ASAMPQ)
-#define G_T5_RX_ASAMPQ(x) (((x) >> S_T5_RX_ASAMPQ) & M_T5_RX_ASAMPQ)
-
-#define S_T5_RX_ASAMP 0
-#define M_T5_RX_ASAMP 0x7U
-#define V_T5_RX_ASAMP(x) ((x) << S_T5_RX_ASAMP)
-#define G_T5_RX_ASAMP(x) (((x) >> S_T5_RX_ASAMP) & M_T5_RX_ASAMP)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_VGA_CONTROL_1 0x322c
-#define A_MAC_PORT_RX_LINKA_RECEIVER_VGA_CONTROL_2 0x3230
-
-#define S_T5SHORTV 10
-#define V_T5SHORTV(x) ((x) << S_T5SHORTV)
-#define F_T5SHORTV V_T5SHORTV(1U)
-
-#define S_T5VGAIN 0
-#define M_T5VGAIN 0x1fU
-#define V_T5VGAIN(x) ((x) << S_T5VGAIN)
-#define G_T5VGAIN(x) (((x) >> S_T5VGAIN) & M_T5VGAIN)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_VGA_CONTROL_3 0x3234
-#define A_MAC_PORT_RX_LINKA_RECEIVER_DQCC_CONTROL_1 0x3238
-
-#define S_IQSEP 10
-#define M_IQSEP 0x1fU
-#define V_IQSEP(x) ((x) << S_IQSEP)
-#define G_IQSEP(x) (((x) >> S_IQSEP) & M_IQSEP)
-
-#define S_DUTYQ 5
-#define M_DUTYQ 0x1fU
-#define V_DUTYQ(x) ((x) << S_DUTYQ)
-#define G_DUTYQ(x) (((x) >> S_DUTYQ) & M_DUTYQ)
-
-#define S_DUTYI 0
-#define M_DUTYI 0x1fU
-#define V_DUTYI(x) ((x) << S_DUTYI)
-#define G_DUTYI(x) (((x) >> S_DUTYI) & M_DUTYI)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_DQCC_CONTROL_3 0x3240
-
-#define S_DTHR 8
-#define M_DTHR 0x3fU
-#define V_DTHR(x) ((x) << S_DTHR)
-#define G_DTHR(x) (((x) >> S_DTHR) & M_DTHR)
-
-#define S_SNUL 0
-#define M_SNUL 0x1fU
-#define V_SNUL(x) ((x) << S_SNUL)
-#define G_SNUL(x) (((x) >> S_SNUL) & M_SNUL)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_DACAP_AND_DACAN 0x3248
-#define A_MAC_PORT_RX_LINKA_RECEIVER_DACA_MIN_AND_DACAZ 0x324c
-#define A_MAC_PORT_RX_LINKA_RECEIVER_ADAC_CONTROL 0x3250
-
-#define S_ADSN_READWRITE 8
-#define V_ADSN_READWRITE(x) ((x) << S_ADSN_READWRITE)
-#define F_ADSN_READWRITE V_ADSN_READWRITE(1U)
-
-#define S_ADSN_READONLY 7
-#define V_ADSN_READONLY(x) ((x) << S_ADSN_READONLY)
-#define F_ADSN_READONLY V_ADSN_READONLY(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H1_LOCAL_OFFSET_ODD2_EVN2 0x325c
-
-#define S_H1O2 8
-#define M_H1O2 0x3fU
-#define V_H1O2(x) ((x) << S_H1O2)
-#define G_H1O2(x) (((x) >> S_H1O2) & M_H1O2)
-
-#define S_H1E2 0
-#define M_H1E2 0x3fU
-#define V_H1E2(x) ((x) << S_H1E2)
-#define G_H1E2(x) (((x) >> S_H1E2) & M_H1E2)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H1_LOCAL_OFFSET_ODD3_EVN3 0x3260
-
-#define S_H1O3 8
-#define M_H1O3 0x3fU
-#define V_H1O3(x) ((x) << S_H1O3)
-#define G_H1O3(x) (((x) >> S_H1O3) & M_H1O3)
-
-#define S_H1E3 0
-#define M_H1E3 0x3fU
-#define V_H1E3(x) ((x) << S_H1E3)
-#define G_H1E3(x) (((x) >> S_H1E3) & M_H1E3)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H1_LOCAL_OFFSET_ODD4_EVN4 0x3264
-
-#define S_H1O4 8
-#define M_H1O4 0x3fU
-#define V_H1O4(x) ((x) << S_H1O4)
-#define G_H1O4(x) (((x) >> S_H1O4) & M_H1O4)
-
-#define S_H1E4 0
-#define M_H1E4 0x3fU
-#define V_H1E4(x) ((x) << S_H1E4)
-#define G_H1E4(x) (((x) >> S_H1E4) & M_H1E4)
-
-#define A_MAC_PORT_RX_LINKA_DYNAMIC_AMPLITUDE_CENTERING_DAC_AND_DYNAMIC_PEAKING_CONTROL_DPC 0x3270
-
-#define S_DPCMD 14
-#define V_DPCMD(x) ((x) << S_DPCMD)
-#define F_DPCMD V_DPCMD(1U)
-
-#define A_MAC_PORT_RX_LINKA_DYNAMIC_DATA_CENTERING_DDC 0x3274
-#define A_MAC_PORT_RX_LINKA_RECEIVER_INTERNAL_STATUS 0x3278
-
-#define S_T5BER6VAL 15
-#define V_T5BER6VAL(x) ((x) << S_T5BER6VAL)
-#define F_T5BER6VAL V_T5BER6VAL(1U)
-
-#define S_T5BER6 14
-#define V_T5BER6(x) ((x) << S_T5BER6)
-#define F_T5BER6 V_T5BER6(1U)
-
-#define S_T5BER3VAL 13
-#define V_T5BER3VAL(x) ((x) << S_T5BER3VAL)
-#define F_T5BER3VAL V_T5BER3VAL(1U)
-
-#define S_T5TOOFAST 12
-#define V_T5TOOFAST(x) ((x) << S_T5TOOFAST)
-#define F_T5TOOFAST V_T5TOOFAST(1U)
-
-#define S_T5DPCCMP 9
-#define V_T5DPCCMP(x) ((x) << S_T5DPCCMP)
-#define F_T5DPCCMP V_T5DPCCMP(1U)
-
-#define S_T5DACCMP 8
-#define V_T5DACCMP(x) ((x) << S_T5DACCMP)
-#define F_T5DACCMP V_T5DACCMP(1U)
-
-#define S_T5DDCCMP 7
-#define V_T5DDCCMP(x) ((x) << S_T5DDCCMP)
-#define F_T5DDCCMP V_T5DDCCMP(1U)
-
-#define S_T5AERRFLG 6
-#define V_T5AERRFLG(x) ((x) << S_T5AERRFLG)
-#define F_T5AERRFLG V_T5AERRFLG(1U)
-
-#define S_T5WERRFLG 5
-#define V_T5WERRFLG(x) ((x) << S_T5WERRFLG)
-#define F_T5WERRFLG V_T5WERRFLG(1U)
-
-#define S_T5TRCMP 4
-#define V_T5TRCMP(x) ((x) << S_T5TRCMP)
-#define F_T5TRCMP V_T5TRCMP(1U)
-
-#define S_T5VLCKF 3
-#define V_T5VLCKF(x) ((x) << S_T5VLCKF)
-#define F_T5VLCKF V_T5VLCKF(1U)
-
-#define S_T5ROCCMP 2
-#define V_T5ROCCMP(x) ((x) << S_T5ROCCMP)
-#define F_T5ROCCMP V_T5ROCCMP(1U)
-
-#define S_T5DQCCCMP 1
-#define V_T5DQCCCMP(x) ((x) << S_T5DQCCCMP)
-#define F_T5DQCCCMP V_T5DQCCCMP(1U)
-
-#define S_T5OCCMP 0
-#define V_T5OCCMP(x) ((x) << S_T5OCCMP)
-#define F_T5OCCMP V_T5OCCMP(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_FUNCTION_CONTROL_1 0x327c
-
-#define S_FLOFF 1
-#define V_FLOFF(x) ((x) << S_FLOFF)
-#define F_FLOFF V_FLOFF(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_FUNCTION_CONTROL_2 0x3280
-
-#define S_H25SPC 15
-#define V_H25SPC(x) ((x) << S_H25SPC)
-#define F_H25SPC V_H25SPC(1U)
-
-#define S_FTOOFAST 8
-#define V_FTOOFAST(x) ((x) << S_FTOOFAST)
-#define F_FTOOFAST V_FTOOFAST(1U)
-
-#define S_FINTTRIM 7
-#define V_FINTTRIM(x) ((x) << S_FINTTRIM)
-#define F_FINTTRIM V_FINTTRIM(1U)
-
-#define S_FDINV 6
-#define V_FDINV(x) ((x) << S_FDINV)
-#define F_FDINV V_FDINV(1U)
-
-#define S_FHGS 5
-#define V_FHGS(x) ((x) << S_FHGS)
-#define F_FHGS V_FHGS(1U)
-
-#define S_FH6H12 4
-#define V_FH6H12(x) ((x) << S_FH6H12)
-#define F_FH6H12 V_FH6H12(1U)
-
-#define S_FH1CAL 3
-#define V_FH1CAL(x) ((x) << S_FH1CAL)
-#define F_FH1CAL V_FH1CAL(1U)
-
-#define S_FINTCAL 2
-#define V_FINTCAL(x) ((x) << S_FINTCAL)
-#define F_FINTCAL V_FINTCAL(1U)
-
-#define S_FDCA 1
-#define V_FDCA(x) ((x) << S_FDCA)
-#define F_FDCA V_FDCA(1U)
-
-#define S_FDQCC 0
-#define V_FDQCC(x) ((x) << S_FDQCC)
-#define F_FDQCC V_FDQCC(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_OFFSET_EVN1_EVN2 0x3284
-
-#define S_LOFE2S_READWRITE 16
-#define V_LOFE2S_READWRITE(x) ((x) << S_LOFE2S_READWRITE)
-#define F_LOFE2S_READWRITE V_LOFE2S_READWRITE(1U)
-
-#define S_LOFE2S_READONLY 14
-#define M_LOFE2S_READONLY 0x3U
-#define V_LOFE2S_READONLY(x) ((x) << S_LOFE2S_READONLY)
-#define G_LOFE2S_READONLY(x) (((x) >> S_LOFE2S_READONLY) & M_LOFE2S_READONLY)
-
-#define S_LOFE2 8
-#define M_LOFE2 0x3fU
-#define V_LOFE2(x) ((x) << S_LOFE2)
-#define G_LOFE2(x) (((x) >> S_LOFE2) & M_LOFE2)
-
-#define S_LOFE1S_READWRITE 7
-#define V_LOFE1S_READWRITE(x) ((x) << S_LOFE1S_READWRITE)
-#define F_LOFE1S_READWRITE V_LOFE1S_READWRITE(1U)
-
-#define S_LOFE1S_READONLY 6
-#define V_LOFE1S_READONLY(x) ((x) << S_LOFE1S_READONLY)
-#define F_LOFE1S_READONLY V_LOFE1S_READONLY(1U)
-
-#define S_LOFE1 0
-#define M_LOFE1 0x3fU
-#define V_LOFE1(x) ((x) << S_LOFE1)
-#define G_LOFE1(x) (((x) >> S_LOFE1) & M_LOFE1)
-
-#define A_MAC_PORT_RX_LINKA_DFE_OFFSET_ODD1_ODD2 0x3288
-
-#define S_LOFO2S_READWRITE 15
-#define V_LOFO2S_READWRITE(x) ((x) << S_LOFO2S_READWRITE)
-#define F_LOFO2S_READWRITE V_LOFO2S_READWRITE(1U)
-
-#define S_LOFO2S_READONLY 14
-#define V_LOFO2S_READONLY(x) ((x) << S_LOFO2S_READONLY)
-#define F_LOFO2S_READONLY V_LOFO2S_READONLY(1U)
-
-#define S_LOFO2 8
-#define M_LOFO2 0x3fU
-#define V_LOFO2(x) ((x) << S_LOFO2)
-#define G_LOFO2(x) (((x) >> S_LOFO2) & M_LOFO2)
-
-#define S_LOFO1S_READWRITE 7
-#define V_LOFO1S_READWRITE(x) ((x) << S_LOFO1S_READWRITE)
-#define F_LOFO1S_READWRITE V_LOFO1S_READWRITE(1U)
-
-#define S_LOFO1S_READONLY 6
-#define V_LOFO1S_READONLY(x) ((x) << S_LOFO1S_READONLY)
-#define F_LOFO1S_READONLY V_LOFO1S_READONLY(1U)
-
-#define S_LOFO1 0
-#define M_LOFO1 0x3fU
-#define V_LOFO1(x) ((x) << S_LOFO1)
-#define G_LOFO1(x) (((x) >> S_LOFO1) & M_LOFO1)
-
-#define A_MAC_PORT_RX_LINKA_DFE_OFFSET_EVN3_EVN4 0x328c
-
-#define S_LOFE4S_READWRITE 15
-#define V_LOFE4S_READWRITE(x) ((x) << S_LOFE4S_READWRITE)
-#define F_LOFE4S_READWRITE V_LOFE4S_READWRITE(1U)
-
-#define S_LOFE4S_READONLY 14
-#define V_LOFE4S_READONLY(x) ((x) << S_LOFE4S_READONLY)
-#define F_LOFE4S_READONLY V_LOFE4S_READONLY(1U)
-
-#define S_LOFE 8
-#define M_LOFE 0x3fU
-#define V_LOFE(x) ((x) << S_LOFE)
-#define G_LOFE(x) (((x) >> S_LOFE) & M_LOFE)
-
-#define S_LOFE3S_READWRITE 7
-#define V_LOFE3S_READWRITE(x) ((x) << S_LOFE3S_READWRITE)
-#define F_LOFE3S_READWRITE V_LOFE3S_READWRITE(1U)
-
-#define S_LOFE3S_READONLY 6
-#define V_LOFE3S_READONLY(x) ((x) << S_LOFE3S_READONLY)
-#define F_LOFE3S_READONLY V_LOFE3S_READONLY(1U)
-
-#define S_LOFE3 0
-#define M_LOFE3 0x3fU
-#define V_LOFE3(x) ((x) << S_LOFE3)
-#define G_LOFE3(x) (((x) >> S_LOFE3) & M_LOFE3)
-
-#define A_MAC_PORT_RX_LINKA_DFE_OFFSET_ODD3_ODD4 0x3290
-
-#define S_LOFO4S_READWRITE 15
-#define V_LOFO4S_READWRITE(x) ((x) << S_LOFO4S_READWRITE)
-#define F_LOFO4S_READWRITE V_LOFO4S_READWRITE(1U)
-
-#define S_LOFO4S_READONLY 14
-#define V_LOFO4S_READONLY(x) ((x) << S_LOFO4S_READONLY)
-#define F_LOFO4S_READONLY V_LOFO4S_READONLY(1U)
-
-#define S_LOFO4 8
-#define M_LOFO4 0x3fU
-#define V_LOFO4(x) ((x) << S_LOFO4)
-#define G_LOFO4(x) (((x) >> S_LOFO4) & M_LOFO4)
-
-#define S_LOFO3S_READWRITE 7
-#define V_LOFO3S_READWRITE(x) ((x) << S_LOFO3S_READWRITE)
-#define F_LOFO3S_READWRITE V_LOFO3S_READWRITE(1U)
-
-#define S_LOFO3S_READONLY 6
-#define V_LOFO3S_READONLY(x) ((x) << S_LOFO3S_READONLY)
-#define F_LOFO3S_READONLY V_LOFO3S_READONLY(1U)
-
-#define S_LOFO3 0
-#define M_LOFO3 0x3fU
-#define V_LOFO3(x) ((x) << S_LOFO3)
-#define G_LOFO3(x) (((x) >> S_LOFO3) & M_LOFO3)
-
-#define A_MAC_PORT_RX_LINKA_DFE_E0_AND_E1_OFFSET 0x3294
-
-#define S_T5E1SN_READWRITE 15
-#define V_T5E1SN_READWRITE(x) ((x) << S_T5E1SN_READWRITE)
-#define F_T5E1SN_READWRITE V_T5E1SN_READWRITE(1U)
-
-#define S_T5E1SN_READONLY 14
-#define V_T5E1SN_READONLY(x) ((x) << S_T5E1SN_READONLY)
-#define F_T5E1SN_READONLY V_T5E1SN_READONLY(1U)
-
-#define S_T5E1AMP 8
-#define M_T5E1AMP 0x3fU
-#define V_T5E1AMP(x) ((x) << S_T5E1AMP)
-#define G_T5E1AMP(x) (((x) >> S_T5E1AMP) & M_T5E1AMP)
-
-#define S_T5E0SN_READWRITE 7
-#define V_T5E0SN_READWRITE(x) ((x) << S_T5E0SN_READWRITE)
-#define F_T5E0SN_READWRITE V_T5E0SN_READWRITE(1U)
-
-#define S_T5E0SN_READONLY 6
-#define V_T5E0SN_READONLY(x) ((x) << S_T5E0SN_READONLY)
-#define F_T5E0SN_READONLY V_T5E0SN_READONLY(1U)
-
-#define S_T5E0AMP 0
-#define M_T5E0AMP 0x3fU
-#define V_T5E0AMP(x) ((x) << S_T5E0AMP)
-#define G_T5E0AMP(x) (((x) >> S_T5E0AMP) & M_T5E0AMP)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_LOFF_CONTROL 0x3298
-
-#define S_T5LFREG 12
-#define V_T5LFREG(x) ((x) << S_T5LFREG)
-#define F_T5LFREG V_T5LFREG(1U)
-
-#define S_T5LFRC 11
-#define V_T5LFRC(x) ((x) << S_T5LFRC)
-#define F_T5LFRC V_T5LFRC(1U)
-
-#define S_T5LFSEL 8
-#define M_T5LFSEL 0x7U
-#define V_T5LFSEL(x) ((x) << S_T5LFSEL)
-#define G_T5LFSEL(x) (((x) >> S_T5LFSEL) & M_T5LFSEL)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_SIGDET_CONTROL 0x329c
-
-#define S_OFFSN_READWRITE 14
-#define V_OFFSN_READWRITE(x) ((x) << S_OFFSN_READWRITE)
-#define F_OFFSN_READWRITE V_OFFSN_READWRITE(1U)
-
-#define S_OFFSN_READONLY 13
-#define V_OFFSN_READONLY(x) ((x) << S_OFFSN_READONLY)
-#define F_OFFSN_READONLY V_OFFSN_READONLY(1U)
-
-#define S_OFFAMP 8
-#define M_OFFAMP 0x1fU
-#define V_OFFAMP(x) ((x) << S_OFFAMP)
-#define G_OFFAMP(x) (((x) >> S_OFFAMP) & M_OFFAMP)
-
-#define S_SDACDC 7
-#define V_SDACDC(x) ((x) << S_SDACDC)
-#define F_SDACDC V_SDACDC(1U)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_ANALOG_CONTROL_SWITCH 0x32a0
-
-#define S_T5_RX_SETHDIS 7
-#define V_T5_RX_SETHDIS(x) ((x) << S_T5_RX_SETHDIS)
-#define F_T5_RX_SETHDIS V_T5_RX_SETHDIS(1U)
-
-#define S_T5_RX_PDTERM 6
-#define V_T5_RX_PDTERM(x) ((x) << S_T5_RX_PDTERM)
-#define F_T5_RX_PDTERM V_T5_RX_PDTERM(1U)
-
-#define S_T5_RX_BYPASS 5
-#define V_T5_RX_BYPASS(x) ((x) << S_T5_RX_BYPASS)
-#define F_T5_RX_BYPASS V_T5_RX_BYPASS(1U)
-
-#define S_T5_RX_LPFEN 4
-#define V_T5_RX_LPFEN(x) ((x) << S_T5_RX_LPFEN)
-#define F_T5_RX_LPFEN V_T5_RX_LPFEN(1U)
-
-#define S_T5_RX_VGABOD 3
-#define V_T5_RX_VGABOD(x) ((x) << S_T5_RX_VGABOD)
-#define F_T5_RX_VGABOD V_T5_RX_VGABOD(1U)
-
-#define S_T5_RX_VTBYP 2
-#define V_T5_RX_VTBYP(x) ((x) << S_T5_RX_VTBYP)
-#define F_T5_RX_VTBYP V_T5_RX_VTBYP(1U)
-
-#define S_T5_RX_VTERM 0
-#define M_T5_RX_VTERM 0x3U
-#define V_T5_RX_VTERM(x) ((x) << S_T5_RX_VTERM)
-#define G_T5_RX_VTERM(x) (((x) >> S_T5_RX_VTERM) & M_T5_RX_VTERM)
-
-#define A_MAC_PORT_RX_LINKA_INTEGRATOR_DAC_OFFSET 0x32a4
-
-#define S_ISTRIMS 14
-#define M_ISTRIMS 0x3U
-#define V_ISTRIMS(x) ((x) << S_ISTRIMS)
-#define G_ISTRIMS(x) (((x) >> S_ISTRIMS) & M_ISTRIMS)
-
-#define S_ISTRIM 8
-#define M_ISTRIM 0x3fU
-#define V_ISTRIM(x) ((x) << S_ISTRIM)
-#define G_ISTRIM(x) (((x) >> S_ISTRIM) & M_ISTRIM)
-
-#define S_HALF1 7
-#define V_HALF1(x) ((x) << S_HALF1)
-#define F_HALF1 V_HALF1(1U)
-
-#define S_HALF2 6
-#define V_HALF2(x) ((x) << S_HALF2)
-#define F_HALF2 V_HALF2(1U)
-
-#define S_INTDAC 0
-#define M_INTDAC 0x3fU
-#define V_INTDAC(x) ((x) << S_INTDAC)
-#define G_INTDAC(x) (((x) >> S_INTDAC) & M_INTDAC)
-
-#define A_MAC_PORT_RX_LINKA_DIGITAL_EYE_CONTROL 0x32a8
-
-#define S_MINWDTH 5
-#define M_MINWDTH 0x1fU
-#define V_MINWDTH(x) ((x) << S_MINWDTH)
-#define G_MINWDTH(x) (((x) >> S_MINWDTH) & M_MINWDTH)
-
-#define A_MAC_PORT_RX_LINKA_DIGITAL_EYE_METRICS 0x32ac
-
-#define S_T5SMQM 13
-#define M_T5SMQM 0x7U
-#define V_T5SMQM(x) ((x) << S_T5SMQM)
-#define G_T5SMQM(x) (((x) >> S_T5SMQM) & M_T5SMQM)
-
-#define S_T5SMQ 5
-#define M_T5SMQ 0xffU
-#define V_T5SMQ(x) ((x) << S_T5SMQ)
-#define G_T5SMQ(x) (((x) >> S_T5SMQ) & M_T5SMQ)
-
-#define S_T5EMMD 3
-#define M_T5EMMD 0x3U
-#define V_T5EMMD(x) ((x) << S_T5EMMD)
-#define G_T5EMMD(x) (((x) >> S_T5EMMD) & M_T5EMMD)
-
-#define S_T5EMBRDY 2
-#define V_T5EMBRDY(x) ((x) << S_T5EMBRDY)
-#define F_T5EMBRDY V_T5EMBRDY(1U)
-
-#define S_T5EMBUMP 1
-#define V_T5EMBUMP(x) ((x) << S_T5EMBUMP)
-#define F_T5EMBUMP V_T5EMBUMP(1U)
-
-#define S_T5EMEN 0
-#define V_T5EMEN(x) ((x) << S_T5EMEN)
-#define F_T5EMEN V_T5EMEN(1U)
-
-#define A_MAC_PORT_RX_LINKA_DIGITAL_EYE_METRICS_ERROR_COUNT 0x32b0
-
-#define S_EMF8 15
-#define V_EMF8(x) ((x) << S_EMF8)
-#define F_EMF8 V_EMF8(1U)
-
-#define S_EMCNT 4
-#define M_EMCNT 0xffU
-#define V_EMCNT(x) ((x) << S_EMCNT)
-#define G_EMCNT(x) (((x) >> S_EMCNT) & M_EMCNT)
-
-#define S_EMOFLO 2
-#define V_EMOFLO(x) ((x) << S_EMOFLO)
-#define F_EMOFLO V_EMOFLO(1U)
-
-#define S_EMCRST 1
-#define V_EMCRST(x) ((x) << S_EMCRST)
-#define F_EMCRST V_EMCRST(1U)
-
-#define S_EMCEN 0
-#define V_EMCEN(x) ((x) << S_EMCEN)
-#define F_EMCEN V_EMCEN(1U)
-
-#define A_MAC_PORT_RX_LINKA_DIGITAL_EYE_METRICS_PDF_EYE_COUNT 0x32b4
-
-#define S_SM2RDY 15
-#define V_SM2RDY(x) ((x) << S_SM2RDY)
-#define F_SM2RDY V_SM2RDY(1U)
-
-#define S_SM2RST 14
-#define V_SM2RST(x) ((x) << S_SM2RST)
-#define F_SM2RST V_SM2RST(1U)
-
-#define S_APDF 0
-#define M_APDF 0xfffU
-#define V_APDF(x) ((x) << S_APDF)
-#define G_APDF(x) (((x) >> S_APDF) & M_APDF)
-
-#define A_MAC_PORT_RX_LINKA_DIGITAL_EYE_METRICS_PATTERN_LENGTH 0x32b8
-
-#define S_SM0LEN 0
-#define M_SM0LEN 0x7fffU
-#define V_SM0LEN(x) ((x) << S_SM0LEN)
-#define G_SM0LEN(x) (((x) >> S_SM0LEN) & M_SM0LEN)
-
-#define A_MAC_PORT_RX_LINKA_DFE_TAP_ENABLE 0x32c0
-
-#define S_H_EN 1
-#define M_H_EN 0xfffU
-#define V_H_EN(x) ((x) << S_H_EN)
-#define G_H_EN(x) (((x) >> S_H_EN) & M_H_EN)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H1 0x32c4
-#define A_MAC_PORT_RX_LINKA_DFE_H2 0x32c8
-
-#define S_H2OSN_READWRITE 14
-#define V_H2OSN_READWRITE(x) ((x) << S_H2OSN_READWRITE)
-#define F_H2OSN_READWRITE V_H2OSN_READWRITE(1U)
-
-#define S_H2OSN_READONLY 13
-#define V_H2OSN_READONLY(x) ((x) << S_H2OSN_READONLY)
-#define F_H2OSN_READONLY V_H2OSN_READONLY(1U)
-
-#define S_H2ESN_READWRITE 6
-#define V_H2ESN_READWRITE(x) ((x) << S_H2ESN_READWRITE)
-#define F_H2ESN_READWRITE V_H2ESN_READWRITE(1U)
-
-#define S_H2ESN_READONLY 5
-#define V_H2ESN_READONLY(x) ((x) << S_H2ESN_READONLY)
-#define F_H2ESN_READONLY V_H2ESN_READONLY(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H3 0x32cc
-
-#define S_H3OSN_READWRITE 13
-#define V_H3OSN_READWRITE(x) ((x) << S_H3OSN_READWRITE)
-#define F_H3OSN_READWRITE V_H3OSN_READWRITE(1U)
-
-#define S_H3OSN_READONLY 12
-#define V_H3OSN_READONLY(x) ((x) << S_H3OSN_READONLY)
-#define F_H3OSN_READONLY V_H3OSN_READONLY(1U)
-
-#define S_H3ESN_READWRITE 5
-#define V_H3ESN_READWRITE(x) ((x) << S_H3ESN_READWRITE)
-#define F_H3ESN_READWRITE V_H3ESN_READWRITE(1U)
-
-#define S_H3ESN_READONLY 4
-#define V_H3ESN_READONLY(x) ((x) << S_H3ESN_READONLY)
-#define F_H3ESN_READONLY V_H3ESN_READONLY(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H4 0x32d0
-
-#define S_H4OGS 14
-#define M_H4OGS 0x3U
-#define V_H4OGS(x) ((x) << S_H4OGS)
-#define G_H4OGS(x) (((x) >> S_H4OGS) & M_H4OGS)
-
-#define S_H4OSN_READWRITE 13
-#define V_H4OSN_READWRITE(x) ((x) << S_H4OSN_READWRITE)
-#define F_H4OSN_READWRITE V_H4OSN_READWRITE(1U)
-
-#define S_H4OSN_READONLY 12
-#define V_H4OSN_READONLY(x) ((x) << S_H4OSN_READONLY)
-#define F_H4OSN_READONLY V_H4OSN_READONLY(1U)
-
-#define S_H4EGS 6
-#define M_H4EGS 0x3U
-#define V_H4EGS(x) ((x) << S_H4EGS)
-#define G_H4EGS(x) (((x) >> S_H4EGS) & M_H4EGS)
-
-#define S_H4ESN_READWRITE 5
-#define V_H4ESN_READWRITE(x) ((x) << S_H4ESN_READWRITE)
-#define F_H4ESN_READWRITE V_H4ESN_READWRITE(1U)
-
-#define S_H4ESN_READONLY 4
-#define V_H4ESN_READONLY(x) ((x) << S_H4ESN_READONLY)
-#define F_H4ESN_READONLY V_H4ESN_READONLY(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H5 0x32d4
-
-#define S_H5OGS 14
-#define M_H5OGS 0x3U
-#define V_H5OGS(x) ((x) << S_H5OGS)
-#define G_H5OGS(x) (((x) >> S_H5OGS) & M_H5OGS)
-
-#define S_H5OSN_READWRITE 13
-#define V_H5OSN_READWRITE(x) ((x) << S_H5OSN_READWRITE)
-#define F_H5OSN_READWRITE V_H5OSN_READWRITE(1U)
-
-#define S_H5OSN_READONLY 12
-#define V_H5OSN_READONLY(x) ((x) << S_H5OSN_READONLY)
-#define F_H5OSN_READONLY V_H5OSN_READONLY(1U)
-
-#define S_H5EGS 6
-#define M_H5EGS 0x3U
-#define V_H5EGS(x) ((x) << S_H5EGS)
-#define G_H5EGS(x) (((x) >> S_H5EGS) & M_H5EGS)
-
-#define S_H5ESN_READWRITE 5
-#define V_H5ESN_READWRITE(x) ((x) << S_H5ESN_READWRITE)
-#define F_H5ESN_READWRITE V_H5ESN_READWRITE(1U)
-
-#define S_H5ESN_READONLY 4
-#define V_H5ESN_READONLY(x) ((x) << S_H5ESN_READONLY)
-#define F_H5ESN_READONLY V_H5ESN_READONLY(1U)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H6_AND_H7 0x32d8
-
-#define S_H7GS 14
-#define M_H7GS 0x3U
-#define V_H7GS(x) ((x) << S_H7GS)
-#define G_H7GS(x) (((x) >> S_H7GS) & M_H7GS)
-
-#define S_H7SN_READWRITE 13
-#define V_H7SN_READWRITE(x) ((x) << S_H7SN_READWRITE)
-#define F_H7SN_READWRITE V_H7SN_READWRITE(1U)
-
-#define S_H7SN_READONLY 12
-#define V_H7SN_READONLY(x) ((x) << S_H7SN_READONLY)
-#define F_H7SN_READONLY V_H7SN_READONLY(1U)
-
-#define S_H7MAG 8
-#define M_H7MAG 0xfU
-#define V_H7MAG(x) ((x) << S_H7MAG)
-#define G_H7MAG(x) (((x) >> S_H7MAG) & M_H7MAG)
-
-#define S_H6GS 6
-#define M_H6GS 0x3U
-#define V_H6GS(x) ((x) << S_H6GS)
-#define G_H6GS(x) (((x) >> S_H6GS) & M_H6GS)
-
-#define S_H6SN_READWRITE 5
-#define V_H6SN_READWRITE(x) ((x) << S_H6SN_READWRITE)
-#define F_H6SN_READWRITE V_H6SN_READWRITE(1U)
-
-#define S_H6SN_READONLY 4
-#define V_H6SN_READONLY(x) ((x) << S_H6SN_READONLY)
-#define F_H6SN_READONLY V_H6SN_READONLY(1U)
-
-#define S_H6MAG 0
-#define M_H6MAG 0xfU
-#define V_H6MAG(x) ((x) << S_H6MAG)
-#define G_H6MAG(x) (((x) >> S_H6MAG) & M_H6MAG)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H8_AND_H9 0x32dc
-
-#define S_H9GS 14
-#define M_H9GS 0x3U
-#define V_H9GS(x) ((x) << S_H9GS)
-#define G_H9GS(x) (((x) >> S_H9GS) & M_H9GS)
-
-#define S_H9SN_READWRITE 13
-#define V_H9SN_READWRITE(x) ((x) << S_H9SN_READWRITE)
-#define F_H9SN_READWRITE V_H9SN_READWRITE(1U)
-
-#define S_H9SN_READONLY 12
-#define V_H9SN_READONLY(x) ((x) << S_H9SN_READONLY)
-#define F_H9SN_READONLY V_H9SN_READONLY(1U)
-
-#define S_H9MAG 8
-#define M_H9MAG 0xfU
-#define V_H9MAG(x) ((x) << S_H9MAG)
-#define G_H9MAG(x) (((x) >> S_H9MAG) & M_H9MAG)
-
-#define S_H8GS 6
-#define M_H8GS 0x3U
-#define V_H8GS(x) ((x) << S_H8GS)
-#define G_H8GS(x) (((x) >> S_H8GS) & M_H8GS)
-
-#define S_H8SN_READWRITE 5
-#define V_H8SN_READWRITE(x) ((x) << S_H8SN_READWRITE)
-#define F_H8SN_READWRITE V_H8SN_READWRITE(1U)
-
-#define S_H8SN_READONLY 4
-#define V_H8SN_READONLY(x) ((x) << S_H8SN_READONLY)
-#define F_H8SN_READONLY V_H8SN_READONLY(1U)
-
-#define S_H8MAG 0
-#define M_H8MAG 0xfU
-#define V_H8MAG(x) ((x) << S_H8MAG)
-#define G_H8MAG(x) (((x) >> S_H8MAG) & M_H8MAG)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H10_AND_H11 0x32e0
-
-#define S_H11GS 14
-#define M_H11GS 0x3U
-#define V_H11GS(x) ((x) << S_H11GS)
-#define G_H11GS(x) (((x) >> S_H11GS) & M_H11GS)
-
-#define S_H11SN_READWRITE 13
-#define V_H11SN_READWRITE(x) ((x) << S_H11SN_READWRITE)
-#define F_H11SN_READWRITE V_H11SN_READWRITE(1U)
-
-#define S_H11SN_READONLY 12
-#define V_H11SN_READONLY(x) ((x) << S_H11SN_READONLY)
-#define F_H11SN_READONLY V_H11SN_READONLY(1U)
-
-#define S_H11MAG 8
-#define M_H11MAG 0xfU
-#define V_H11MAG(x) ((x) << S_H11MAG)
-#define G_H11MAG(x) (((x) >> S_H11MAG) & M_H11MAG)
-
-#define S_H10GS 6
-#define M_H10GS 0x3U
-#define V_H10GS(x) ((x) << S_H10GS)
-#define G_H10GS(x) (((x) >> S_H10GS) & M_H10GS)
-
-#define S_H10SN_READWRITE 5
-#define V_H10SN_READWRITE(x) ((x) << S_H10SN_READWRITE)
-#define F_H10SN_READWRITE V_H10SN_READWRITE(1U)
-
-#define S_H10SN_READONLY 4
-#define V_H10SN_READONLY(x) ((x) << S_H10SN_READONLY)
-#define F_H10SN_READONLY V_H10SN_READONLY(1U)
-
-#define S_H10MAG 0
-#define M_H10MAG 0xfU
-#define V_H10MAG(x) ((x) << S_H10MAG)
-#define G_H10MAG(x) (((x) >> S_H10MAG) & M_H10MAG)
-
-#define A_MAC_PORT_RX_LINKA_DFE_H12 0x32e4
-
-#define S_H12GS 6
-#define M_H12GS 0x3U
-#define V_H12GS(x) ((x) << S_H12GS)
-#define G_H12GS(x) (((x) >> S_H12GS) & M_H12GS)
-
-#define S_H12SN_READWRITE 5
-#define V_H12SN_READWRITE(x) ((x) << S_H12SN_READWRITE)
-#define F_H12SN_READWRITE V_H12SN_READWRITE(1U)
-
-#define S_H12SN_READONLY 4
-#define V_H12SN_READONLY(x) ((x) << S_H12SN_READONLY)
-#define F_H12SN_READONLY V_H12SN_READONLY(1U)
-
-#define S_H12MAG 0
-#define M_H12MAG 0xfU
-#define V_H12MAG(x) ((x) << S_H12MAG)
-#define G_H12MAG(x) (((x) >> S_H12MAG) & M_H12MAG)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_MACRO_TEST_CONTROL_2 0x32f8
-
-#define S_DFEDACLSSD 6
-#define V_DFEDACLSSD(x) ((x) << S_DFEDACLSSD)
-#define F_DFEDACLSSD V_DFEDACLSSD(1U)
-
-#define S_SDLSSD 5
-#define V_SDLSSD(x) ((x) << S_SDLSSD)
-#define F_SDLSSD V_SDLSSD(1U)
-
-#define S_DFEOBSBIAS 4
-#define V_DFEOBSBIAS(x) ((x) << S_DFEOBSBIAS)
-#define F_DFEOBSBIAS V_DFEOBSBIAS(1U)
-
-#define S_GBOFSTLSSD 3
-#define V_GBOFSTLSSD(x) ((x) << S_GBOFSTLSSD)
-#define F_GBOFSTLSSD V_GBOFSTLSSD(1U)
-
-#define S_RXDOBS 2
-#define V_RXDOBS(x) ((x) << S_RXDOBS)
-#define F_RXDOBS V_RXDOBS(1U)
-
-#define S_ACJZPT 1
-#define V_ACJZPT(x) ((x) << S_ACJZPT)
-#define F_ACJZPT V_ACJZPT(1U)
-
-#define S_ACJZNT 0
-#define V_ACJZNT(x) ((x) << S_ACJZNT)
-#define F_ACJZNT V_ACJZNT(1U)
-
-#define A_MAC_PORT_RX_LINKA_RECEIVER_MACRO_TEST_CONTROL_1 0x32fc
-
-#define S_PHSLOCK 10
-#define V_PHSLOCK(x) ((x) << S_PHSLOCK)
-#define F_PHSLOCK V_PHSLOCK(1U)
-
-#define S_TESTMODE 9
-#define V_TESTMODE(x) ((x) << S_TESTMODE)
-#define F_TESTMODE V_TESTMODE(1U)
-
-#define S_CALMODE 8
-#define V_CALMODE(x) ((x) << S_CALMODE)
-#define F_CALMODE V_CALMODE(1U)
-
-#define S_AMPSEL 7
-#define V_AMPSEL(x) ((x) << S_AMPSEL)
-#define F_AMPSEL V_AMPSEL(1U)
-
-#define S_WHICHNRZ 6
-#define V_WHICHNRZ(x) ((x) << S_WHICHNRZ)
-#define F_WHICHNRZ V_WHICHNRZ(1U)
-
-#define S_BANKA 5
-#define V_BANKA(x) ((x) << S_BANKA)
-#define F_BANKA V_BANKA(1U)
-
-#define S_BANKB 4
-#define V_BANKB(x) ((x) << S_BANKB)
-#define F_BANKB V_BANKB(1U)
-
-#define S_ACJPDP 3
-#define V_ACJPDP(x) ((x) << S_ACJPDP)
-#define F_ACJPDP V_ACJPDP(1U)
-
-#define S_ACJPDN 2
-#define V_ACJPDN(x) ((x) << S_ACJPDN)
-#define F_ACJPDN V_ACJPDN(1U)
-
-#define S_LSSDT 1
-#define V_LSSDT(x) ((x) << S_LSSDT)
-#define F_LSSDT V_LSSDT(1U)
-
-#define S_MTHOLD 0
-#define V_MTHOLD(x) ((x) << S_MTHOLD)
-#define F_MTHOLD V_MTHOLD(1U)
-
-#define A_MAC_PORT_RX_LINKB_RECEIVER_CONFIGURATION_MODE 0x3300
-#define A_MAC_PORT_RX_LINKB_RECEIVER_TEST_CONTROL 0x3304
-#define A_MAC_PORT_RX_LINKB_PHASE_ROTATOR_CONTROL 0x3308
-#define A_MAC_PORT_RX_LINKB_PHASE_ROTATOR_OFFSET_CONTROL 0x330c
-#define A_MAC_PORT_RX_LINKB_PHASE_ROTATOR_POSITION_1 0x3310
-#define A_MAC_PORT_RX_LINKB_PHASE_ROTATOR_POSITION_2 0x3314
-#define A_MAC_PORT_RX_LINKB_PHASE_ROTATOR_STATIC_PHASE_OFFSET_1 0x3318
-#define A_MAC_PORT_RX_LINKB_PHASE_ROTATOR_STATIC_PHASE_OFFSET_2 0x331c
-#define A_MAC_PORT_RX_LINKB_DFE_CONTROL 0x3320
-#define A_MAC_PORT_RX_LINKB_DFE_SAMPLE_SNAPSHOT_1 0x3324
-#define A_MAC_PORT_RX_LINKB_DFE_SAMPLE_SNAPSHOT_2 0x3328
-#define A_MAC_PORT_RX_LINKB_RECEIVER_VGA_CONTROL_1 0x332c
-#define A_MAC_PORT_RX_LINKB_RECEIVER_VGA_CONTROL_2 0x3330
-#define A_MAC_PORT_RX_LINKB_RECEIVER_VGA_CONTROL_3 0x3334
-#define A_MAC_PORT_RX_LINKB_RECEIVER_DQCC_CONTROL_1 0x3338
-#define A_MAC_PORT_RX_LINKB_RECEIVER_DQCC_CONTROL_3 0x3340
-#define A_MAC_PORT_RX_LINKB_RECEIVER_DACAP_AND_DACAN 0x3348
-#define A_MAC_PORT_RX_LINKB_RECEIVER_DACA_MIN_AND_DACAZ 0x334c
-#define A_MAC_PORT_RX_LINKB_RECEIVER_ADAC_CONTROL 0x3350
-#define A_MAC_PORT_RX_LINKB_DFE_H1_LOCAL_OFFSET_ODD2_EVN2 0x335c
-#define A_MAC_PORT_RX_LINKB_DFE_H1_LOCAL_OFFSET_ODD3_EVN3 0x3360
-#define A_MAC_PORT_RX_LINKB_DFE_H1_LOCAL_OFFSET_ODD4_EVN4 0x3364
-#define A_MAC_PORT_RX_LINKB_DYNAMIC_AMPLITUDE_CENTERING_DAC_AND_DYNAMIC_PEAKING_CONTROL_DPC 0x3370
-#define A_MAC_PORT_RX_LINKB_DYNAMIC_DATA_CENTERING_DDC 0x3374
-#define A_MAC_PORT_RX_LINKB_RECEIVER_INTERNAL_STATUS 0x3378
-#define A_MAC_PORT_RX_LINKB_DFE_FUNCTION_CONTROL_1 0x337c
-#define A_MAC_PORT_RX_LINKB_DFE_FUNCTION_CONTROL_2 0x3380
-#define A_MAC_PORT_RX_LINKB_DFE_OFFSET_EVN1_EVN2 0x3384
-#define A_MAC_PORT_RX_LINKB_DFE_OFFSET_ODD1_ODD2 0x3388
-#define A_MAC_PORT_RX_LINKB_DFE_OFFSET_EVN3_EVN4 0x338c
-#define A_MAC_PORT_RX_LINKB_DFE_OFFSET_ODD3_ODD4 0x3390
-#define A_MAC_PORT_RX_LINKB_DFE_E0_AND_E1_OFFSET 0x3394
-#define A_MAC_PORT_RX_LINKB_RECEIVER_LOFF_CONTROL 0x3398
-#define A_MAC_PORT_RX_LINKB_RECEIVER_SIGDET_CONTROL 0x339c
-#define A_MAC_PORT_RX_LINKB_RECEIVER_ANALOG_CONTROL_SWITCH 0x33a0
-#define A_MAC_PORT_RX_LINKB_INTEGRATOR_DAC_OFFSET 0x33a4
-#define A_MAC_PORT_RX_LINKB_DIGITAL_EYE_CONTROL 0x33a8
-#define A_MAC_PORT_RX_LINKB_DIGITAL_EYE_METRICS 0x33ac
-#define A_MAC_PORT_RX_LINKB_DIGITAL_EYE_METRICS_ERROR_COUNT 0x33b0
-#define A_MAC_PORT_RX_LINKB_DIGITAL_EYE_METRICS_PDF_EYE_COUNT 0x33b4
-#define A_MAC_PORT_RX_LINKB_DIGITAL_EYE_METRICS_PATTERN_LENGTH 0x33b8
-#define A_MAC_PORT_RX_LINKB_DFE_TAP_ENABLE 0x33c0
-#define A_MAC_PORT_RX_LINKB_DFE_H1 0x33c4
-#define A_MAC_PORT_RX_LINKB_DFE_H2 0x33c8
-#define A_MAC_PORT_RX_LINKB_DFE_H3 0x33cc
-#define A_MAC_PORT_RX_LINKB_DFE_H4 0x33d0
-#define A_MAC_PORT_RX_LINKB_DFE_H5 0x33d4
-#define A_MAC_PORT_RX_LINKB_DFE_H6_AND_H7 0x33d8
-#define A_MAC_PORT_RX_LINKB_DFE_H8_AND_H9 0x33dc
-#define A_MAC_PORT_RX_LINKB_DFE_H10_AND_H11 0x33e0
-#define A_MAC_PORT_RX_LINKB_DFE_H12 0x33e4
-#define A_MAC_PORT_RX_LINKB_RECEIVER_MACRO_TEST_CONTROL_2 0x33f8
-#define A_MAC_PORT_RX_LINKB_RECEIVER_MACRO_TEST_CONTROL_1 0x33fc
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_CONFIGURATION_MODE 0x3400
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TEST_CONTROL 0x3404
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_COEFFICIENT_CONTROL 0x3408
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DRIVER_MODE_CONTROL 0x340c
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DRIVER_OVERRIDE_CONTROL 0x3410
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DCLK_ROTATOR_OVERRIDE 0x3414
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_IMPEDANCE_CALIBRATION_OVERRIDE 0x3418
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DCLK_DRIFT_TOLERANCE 0x341c
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_0_COEFFICIENT 0x3420
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_1_COEFFICIENT 0x3424
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_2_COEFFICIENT 0x3428
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_AMPLITUDE 0x3430
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_POLARITY 0x3434
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_COMMAND 0x3438
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_STATUS 0x343c
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_0_COEFFICIENT_OVERRIDE 0x3440
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_1_COEFFICIENT_OVERRIDE 0x3444
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_2_COEFFICIENT_OVERRIDE 0x3448
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_0_COEFFICIENT_APPLIED 0x3460
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_1_COEFFICIENT_APPLIED 0x3464
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_TAP_2_COEFFICIENT_APPLIED 0x3468
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_SEGMENT_DISABLE_APPLIED_1 0x3470
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_SEGMENT_DISABLE_APPLIED_2 0x3474
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_EXTENDED_ADDRESS_DATA 0x3478
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_EXTENDED_ADDRESS_ADDR 0x347c
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_PATTERN_BUFFER_BYTES_1_0 0x3480
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_PATTERN_BUFFER_BYTES_3_2 0x3484
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_PATTERN_BUFFER_BYTE_4 0x3488
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DCC_CONTROL 0x348c
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DCC_OVERRIDE 0x3490
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DCC_APPLIED 0x3494
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_DCC_TIME_OUT 0x3498
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AZ_CONTROL 0x349c
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_MACRO_TEST_CONTROL_4 0x34f0
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_MACRO_TEST_CONTROL_3 0x34f4
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_MACRO_TEST_CONTROL_2 0x34f8
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_MACRO_TEST_CONTROL_1 0x34fc
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_CONFIGURATION_MODE 0x3500
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TEST_CONTROL 0x3504
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_COEFFICIENT_CONTROL 0x3508
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DRIVER_MODE_CONTROL 0x350c
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DRIVER_OVERRIDE_CONTROL 0x3510
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DCLK_ROTATOR_OVERRIDE 0x3514
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_IMPEDANCE_CALIBRATION_OVERRIDE 0x3518
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DCLK_DRIFT_TOLERANCE 0x351c
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_0_COEFFICIENT 0x3520
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_1_COEFFICIENT 0x3524
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_2_COEFFICIENT 0x3528
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_AMPLITUDE 0x3530
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_POLARITY 0x3534
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_COMMAND 0x3538
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_STATUS 0x353c
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_0_COEFFICIENT_OVERRIDE 0x3540
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_1_COEFFICIENT_OVERRIDE 0x3544
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_2_COEFFICIENT_OVERRIDE 0x3548
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_0_COEFFICIENT_APPLIED 0x3560
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_1_COEFFICIENT_APPLIED 0x3564
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_TAP_2_COEFFICIENT_APPLIED 0x3568
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_SEGMENT_DISABLE_APPLIED_1 0x3570
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_SEGMENT_DISABLE_APPLIED_2 0x3574
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_EXTENDED_ADDRESS_DATA 0x3578
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_EXTENDED_ADDRESS_ADDR 0x357c
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_PATTERN_BUFFER_BYTES_1_0 0x3580
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_PATTERN_BUFFER_BYTES_3_2 0x3584
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_PATTERN_BUFFER_BYTE_4 0x3588
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DCC_CONTROL 0x358c
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DCC_OVERRIDE 0x3590
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DCC_APPLIED 0x3594
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_DCC_TIME_OUT 0x3598
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AZ_CONTROL 0x359c
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_MACRO_TEST_CONTROL_4 0x35f0
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_MACRO_TEST_CONTROL_3 0x35f4
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_MACRO_TEST_CONTROL_2 0x35f8
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_MACRO_TEST_CONTROL_1 0x35fc
-#define A_MAC_PORT_RX_LINKC_RECEIVER_CONFIGURATION_MODE 0x3600
-#define A_MAC_PORT_RX_LINKC_RECEIVER_TEST_CONTROL 0x3604
-#define A_MAC_PORT_RX_LINKC_PHASE_ROTATOR_CONTROL 0x3608
-#define A_MAC_PORT_RX_LINKC_PHASE_ROTATOR_OFFSET_CONTROL 0x360c
-#define A_MAC_PORT_RX_LINKC_PHASE_ROTATOR_POSITION_1 0x3610
-#define A_MAC_PORT_RX_LINKC_PHASE_ROTATOR_POSITION_2 0x3614
-#define A_MAC_PORT_RX_LINKC_PHASE_ROTATOR_STATIC_PHASE_OFFSET_1 0x3618
-#define A_MAC_PORT_RX_LINKC_PHASE_ROTATOR_STATIC_PHASE_OFFSET_2 0x361c
-#define A_MAC_PORT_RX_LINKC_DFE_CONTROL 0x3620
-#define A_MAC_PORT_RX_LINKC_DFE_SAMPLE_SNAPSHOT_1 0x3624
-#define A_MAC_PORT_RX_LINKC_DFE_SAMPLE_SNAPSHOT_2 0x3628
-#define A_MAC_PORT_RX_LINKC_RECEIVER_VGA_CONTROL_1 0x362c
-#define A_MAC_PORT_RX_LINKC_RECEIVER_VGA_CONTROL_2 0x3630
-#define A_MAC_PORT_RX_LINKC_RECEIVER_VGA_CONTROL_3 0x3634
-#define A_MAC_PORT_RX_LINKC_RECEIVER_DQCC_CONTROL_1 0x3638
-#define A_MAC_PORT_RX_LINKC_RECEIVER_DQCC_CONTROL_3 0x3640
-#define A_MAC_PORT_RX_LINKC_RECEIVER_DACAP_AND_DACAN 0x3648
-#define A_MAC_PORT_RX_LINKC_RECEIVER_DACA_MIN_AND_DACAZ 0x364c
-#define A_MAC_PORT_RX_LINKC_RECEIVER_ADAC_CONTROL 0x3650
-#define A_MAC_PORT_RX_LINKC_DFE_H1_LOCAL_OFFSET_ODD2_EVN2 0x365c
-#define A_MAC_PORT_RX_LINKC_DFE_H1_LOCAL_OFFSET_ODD3_EVN3 0x3660
-#define A_MAC_PORT_RX_LINKC_DFE_H1_LOCAL_OFFSET_ODD4_EVN4 0x3664
-#define A_MAC_PORT_RX_LINKC_DYNAMIC_AMPLITUDE_CENTERING_DAC_AND_DYNAMIC_PEAKING_CONTROL_DPC 0x3670
-#define A_MAC_PORT_RX_LINKC_DYNAMIC_DATA_CENTERING_DDC 0x3674
-#define A_MAC_PORT_RX_LINKC_RECEIVER_INTERNAL_STATUS 0x3678
-#define A_MAC_PORT_RX_LINKC_DFE_FUNCTION_CONTROL_1 0x367c
-#define A_MAC_PORT_RX_LINKC_DFE_FUNCTION_CONTROL_2 0x3680
-#define A_MAC_PORT_RX_LINKC_DFE_OFFSET_EVN1_EVN2 0x3684
-#define A_MAC_PORT_RX_LINKC_DFE_OFFSET_ODD1_ODD2 0x3688
-#define A_MAC_PORT_RX_LINKC_DFE_OFFSET_EVN3_EVN4 0x368c
-#define A_MAC_PORT_RX_LINKC_DFE_OFFSET_ODD3_ODD4 0x3690
-#define A_MAC_PORT_RX_LINKC_DFE_E0_AND_E1_OFFSET 0x3694
-#define A_MAC_PORT_RX_LINKC_RECEIVER_LOFF_CONTROL 0x3698
-#define A_MAC_PORT_RX_LINKC_RECEIVER_SIGDET_CONTROL 0x369c
-#define A_MAC_PORT_RX_LINKC_RECEIVER_ANALOG_CONTROL_SWITCH 0x36a0
-#define A_MAC_PORT_RX_LINKC_INTEGRATOR_DAC_OFFSET 0x36a4
-#define A_MAC_PORT_RX_LINKC_DIGITAL_EYE_CONTROL 0x36a8
-#define A_MAC_PORT_RX_LINKC_DIGITAL_EYE_METRICS 0x36ac
-#define A_MAC_PORT_RX_LINKC_DIGITAL_EYE_METRICS_ERROR_COUNT 0x36b0
-#define A_MAC_PORT_RX_LINKC_DIGITAL_EYE_METRICS_PDF_EYE_COUNT 0x36b4
-#define A_MAC_PORT_RX_LINKC_DIGITAL_EYE_METRICS_PATTERN_LENGTH 0x36b8
-#define A_MAC_PORT_RX_LINKC_DFE_TAP_ENABLE 0x36c0
-#define A_MAC_PORT_RX_LINKC_DFE_H1 0x36c4
-#define A_MAC_PORT_RX_LINKC_DFE_H2 0x36c8
-#define A_MAC_PORT_RX_LINKC_DFE_H3 0x36cc
-#define A_MAC_PORT_RX_LINKC_DFE_H4 0x36d0
-#define A_MAC_PORT_RX_LINKC_DFE_H5 0x36d4
-#define A_MAC_PORT_RX_LINKC_DFE_H6_AND_H7 0x36d8
-#define A_MAC_PORT_RX_LINKC_DFE_H8_AND_H9 0x36dc
-#define A_MAC_PORT_RX_LINKC_DFE_H10_AND_H11 0x36e0
-#define A_MAC_PORT_RX_LINKC_DFE_H12 0x36e4
-#define A_MAC_PORT_RX_LINKC_RECEIVER_MACRO_TEST_CONTROL_2 0x36f8
-#define A_MAC_PORT_RX_LINKC_RECEIVER_MACRO_TEST_CONTROL_1 0x36fc
-#define A_MAC_PORT_RX_LINKD_RECEIVER_CONFIGURATION_MODE 0x3700
-#define A_MAC_PORT_RX_LINKD_RECEIVER_TEST_CONTROL 0x3704
-#define A_MAC_PORT_RX_LINKD_PHASE_ROTATOR_CONTROL 0x3708
-#define A_MAC_PORT_RX_LINKD_PHASE_ROTATOR_OFFSET_CONTROL 0x370c
-#define A_MAC_PORT_RX_LINKD_PHASE_ROTATOR_POSITION_1 0x3710
-#define A_MAC_PORT_RX_LINKD_PHASE_ROTATOR_POSITION_2 0x3714
-#define A_MAC_PORT_RX_LINKD_PHASE_ROTATOR_STATIC_PHASE_OFFSET_1 0x3718
-#define A_MAC_PORT_RX_LINKD_PHASE_ROTATOR_STATIC_PHASE_OFFSET_2 0x371c
-#define A_MAC_PORT_RX_LINKD_DFE_CONTROL 0x3720
-#define A_MAC_PORT_RX_LINKD_DFE_SAMPLE_SNAPSHOT_1 0x3724
-#define A_MAC_PORT_RX_LINKD_DFE_SAMPLE_SNAPSHOT_2 0x3728
-#define A_MAC_PORT_RX_LINKD_RECEIVER_VGA_CONTROL_1 0x372c
-#define A_MAC_PORT_RX_LINKD_RECEIVER_VGA_CONTROL_2 0x3730
-#define A_MAC_PORT_RX_LINKD_RECEIVER_VGA_CONTROL_3 0x3734
-#define A_MAC_PORT_RX_LINKD_RECEIVER_DQCC_CONTROL_1 0x3738
-#define A_MAC_PORT_RX_LINKD_RECEIVER_DQCC_CONTROL_3 0x3740
-#define A_MAC_PORT_RX_LINKD_RECEIVER_DACAP_AND_DACAN 0x3748
-#define A_MAC_PORT_RX_LINKD_RECEIVER_DACA_MIN_AND_DACAZ 0x374c
-#define A_MAC_PORT_RX_LINKD_RECEIVER_ADAC_CONTROL 0x3750
-#define A_MAC_PORT_RX_LINKD_DFE_H1_LOCAL_OFFSET_ODD2_EVN2 0x375c
-#define A_MAC_PORT_RX_LINKD_DFE_H1_LOCAL_OFFSET_ODD3_EVN3 0x3760
-#define A_MAC_PORT_RX_LINKD_DFE_H1_LOCAL_OFFSET_ODD4_EVN4 0x3764
-#define A_MAC_PORT_RX_LINKD_DYNAMIC_AMPLITUDE_CENTERING_DAC_AND_DYNAMIC_PEAKING_CONTROL_DPC 0x3770
-#define A_MAC_PORT_RX_LINKD_DYNAMIC_DATA_CENTERING_DDC 0x3774
-#define A_MAC_PORT_RX_LINKD_RECEIVER_INTERNAL_STATUS 0x3778
-#define A_MAC_PORT_RX_LINKD_DFE_FUNCTION_CONTROL_1 0x377c
-#define A_MAC_PORT_RX_LINKD_DFE_FUNCTION_CONTROL_2 0x3780
-#define A_MAC_PORT_RX_LINKD_DFE_OFFSET_EVN1_EVN2 0x3784
-#define A_MAC_PORT_RX_LINKD_DFE_OFFSET_ODD1_ODD2 0x3788
-#define A_MAC_PORT_RX_LINKD_DFE_OFFSET_EVN3_EVN4 0x378c
-#define A_MAC_PORT_RX_LINKD_DFE_OFFSET_ODD3_ODD4 0x3790
-#define A_MAC_PORT_RX_LINKD_DFE_E0_AND_E1_OFFSET 0x3794
-#define A_MAC_PORT_RX_LINKD_RECEIVER_LOFF_CONTROL 0x3798
-#define A_MAC_PORT_RX_LINKD_RECEIVER_SIGDET_CONTROL 0x379c
-#define A_MAC_PORT_RX_LINKD_RECEIVER_ANALOG_CONTROL_SWITCH 0x37a0
-#define A_MAC_PORT_RX_LINKD_INTEGRATOR_DAC_OFFSET 0x37a4
-#define A_MAC_PORT_RX_LINKD_DIGITAL_EYE_CONTROL 0x37a8
-#define A_MAC_PORT_RX_LINKD_DIGITAL_EYE_METRICS 0x37ac
-#define A_MAC_PORT_RX_LINKD_DIGITAL_EYE_METRICS_ERROR_COUNT 0x37b0
-#define A_MAC_PORT_RX_LINKD_DIGITAL_EYE_METRICS_PDF_EYE_COUNT 0x37b4
-#define A_MAC_PORT_RX_LINKD_DIGITAL_EYE_METRICS_PATTERN_LENGTH 0x37b8
-#define A_MAC_PORT_RX_LINKD_DFE_TAP_ENABLE 0x37c0
-#define A_MAC_PORT_RX_LINKD_DFE_H1 0x37c4
-#define A_MAC_PORT_RX_LINKD_DFE_H2 0x37c8
-#define A_MAC_PORT_RX_LINKD_DFE_H3 0x37cc
-#define A_MAC_PORT_RX_LINKD_DFE_H4 0x37d0
-#define A_MAC_PORT_RX_LINKD_DFE_H5 0x37d4
-#define A_MAC_PORT_RX_LINKD_DFE_H6_AND_H7 0x37d8
-#define A_MAC_PORT_RX_LINKD_DFE_H8_AND_H9 0x37dc
-#define A_MAC_PORT_RX_LINKD_DFE_H10_AND_H11 0x37e0
-#define A_MAC_PORT_RX_LINKD_DFE_H12 0x37e4
-#define A_MAC_PORT_RX_LINKD_RECEIVER_MACRO_TEST_CONTROL_2 0x37f8
-#define A_MAC_PORT_RX_LINKD_RECEIVER_MACRO_TEST_CONTROL_1 0x37fc
-#define A_MAC_PORT_ANALOG_TEST_MUX 0x3814
-#define A_MAC_PORT_BANDGAP_CONTROL 0x382c
-
-#define S_T5BGCTL 0
-#define M_T5BGCTL 0xfU
-#define V_T5BGCTL(x) ((x) << S_T5BGCTL)
-#define G_T5BGCTL(x) (((x) >> S_T5BGCTL) & M_T5BGCTL)
-
-#define A_MAC_PORT_RESISTOR_CALIBRATION_CONTROL 0x3880
-
-#define S_RCCTL1 5
-#define V_RCCTL1(x) ((x) << S_RCCTL1)
-#define F_RCCTL1 V_RCCTL1(1U)
-
-#define S_RCCTL0 4
-#define V_RCCTL0(x) ((x) << S_RCCTL0)
-#define F_RCCTL0 V_RCCTL0(1U)
-
-#define S_RCAMP1 3
-#define V_RCAMP1(x) ((x) << S_RCAMP1)
-#define F_RCAMP1 V_RCAMP1(1U)
-
-#define S_RCAMP0 2
-#define V_RCAMP0(x) ((x) << S_RCAMP0)
-#define F_RCAMP0 V_RCAMP0(1U)
-
-#define S_RCAMPEN 1
-#define V_RCAMPEN(x) ((x) << S_RCAMPEN)
-#define F_RCAMPEN V_RCAMPEN(1U)
-
-#define S_RCRST 0
-#define V_RCRST(x) ((x) << S_RCRST)
-#define F_RCRST V_RCRST(1U)
-
-#define A_MAC_PORT_RESISTOR_CALIBRATION_STATUS_1 0x3884
-
-#define S_RCERR 1
-#define V_RCERR(x) ((x) << S_RCERR)
-#define F_RCERR V_RCERR(1U)
-
-#define S_RCCOMP 0
-#define V_RCCOMP(x) ((x) << S_RCCOMP)
-#define F_RCCOMP V_RCCOMP(1U)
-
-#define A_MAC_PORT_RESISTOR_CALIBRATION_STATUS_2 0x3888
-
-#define S_RESREG2 0
-#define M_RESREG2 0xffU
-#define V_RESREG2(x) ((x) << S_RESREG2)
-#define G_RESREG2(x) (((x) >> S_RESREG2) & M_RESREG2)
-
-#define A_MAC_PORT_RESISTOR_CALIBRATION_STATUS_3 0x388c
-
-#define S_RESREG3 0
-#define M_RESREG3 0xffU
-#define V_RESREG3(x) ((x) << S_RESREG3)
-#define G_RESREG3(x) (((x) >> S_RESREG3) & M_RESREG3)
-
-#define A_MAC_PORT_MACRO_TEST_CONTROL_6 0x38e8
-
-#define S_LBIST 7
-#define V_LBIST(x) ((x) << S_LBIST)
-#define F_LBIST V_LBIST(1U)
-
-#define S_LOGICTEST 6
-#define V_LOGICTEST(x) ((x) << S_LOGICTEST)
-#define F_LOGICTEST V_LOGICTEST(1U)
-
-#define S_MAVDHI 5
-#define V_MAVDHI(x) ((x) << S_MAVDHI)
-#define F_MAVDHI V_MAVDHI(1U)
-
-#define S_AUXEN 4
-#define V_AUXEN(x) ((x) << S_AUXEN)
-#define F_AUXEN V_AUXEN(1U)
-
-#define S_JTAGMD 3
-#define V_JTAGMD(x) ((x) << S_JTAGMD)
-#define F_JTAGMD V_JTAGMD(1U)
-
-#define S_RXACMODE 2
-#define V_RXACMODE(x) ((x) << S_RXACMODE)
-#define F_RXACMODE V_RXACMODE(1U)
-
-#define S_HSSACJPC 1
-#define V_HSSACJPC(x) ((x) << S_HSSACJPC)
-#define F_HSSACJPC V_HSSACJPC(1U)
-
-#define S_HSSACJAC 0
-#define V_HSSACJAC(x) ((x) << S_HSSACJAC)
-#define F_HSSACJAC V_HSSACJAC(1U)
-
-#define A_MAC_PORT_MACRO_TEST_CONTROL_5 0x38ec
-
-#define S_REFVALIDD 6
-#define V_REFVALIDD(x) ((x) << S_REFVALIDD)
-#define F_REFVALIDD V_REFVALIDD(1U)
-
-#define S_REFVALIDC 5
-#define V_REFVALIDC(x) ((x) << S_REFVALIDC)
-#define F_REFVALIDC V_REFVALIDC(1U)
-
-#define S_REFVALIDB 4
-#define V_REFVALIDB(x) ((x) << S_REFVALIDB)
-#define F_REFVALIDB V_REFVALIDB(1U)
-
-#define S_REFVALIDA 3
-#define V_REFVALIDA(x) ((x) << S_REFVALIDA)
-#define F_REFVALIDA V_REFVALIDA(1U)
-
-#define S_REFSELRESET 2
-#define V_REFSELRESET(x) ((x) << S_REFSELRESET)
-#define F_REFSELRESET V_REFSELRESET(1U)
-
-#define S_SOFTRESET 1
-#define V_SOFTRESET(x) ((x) << S_SOFTRESET)
-#define F_SOFTRESET V_SOFTRESET(1U)
-
-#define S_MACROTEST 0
-#define V_MACROTEST(x) ((x) << S_MACROTEST)
-#define F_MACROTEST V_MACROTEST(1U)
-
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_CONFIGURATION_MODE 0x3900
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TEST_CONTROL 0x3904
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_COEFFICIENT_CONTROL 0x3908
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DRIVER_MODE_CONTROL 0x390c
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DRIVER_OVERRIDE_CONTROL 0x3910
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DCLK_ROTATOR_OVERRIDE 0x3914
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_IMPEDANCE_CALIBRATION_OVERRIDE 0x3918
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DCLK_DRIFT_TOLERANCE 0x391c
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_0_COEFFICIENT 0x3920
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_1_COEFFICIENT 0x3924
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_2_COEFFICIENT 0x3928
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_AMPLITUDE 0x3930
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_POLARITY 0x3934
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_COMMAND 0x3938
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_ADAPTIVE_EQUALIZATION_STATUS 0x393c
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_0_COEFFICIENT_OVERRIDE 0x3940
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_1_COEFFICIENT_OVERRIDE 0x3944
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_2_COEFFICIENT_OVERRIDE 0x3948
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_0_COEFFICIENT_APPLIED 0x3960
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_1_COEFFICIENT_APPLIED 0x3964
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_TAP_2_COEFFICIENT_APPLIED 0x3968
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_SEGMENT_DISABLE_APPLIED_1 0x3970
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_SEGMENT_DISABLE_APPLIED_2 0x3974
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_EXTENDED_ADDRESS_DATA 0x3978
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_EXTENDED_ADDRESS_ADDR 0x397c
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_PATTERN_BUFFER_BYTES_1_0 0x3980
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_PATTERN_BUFFER_BYTES_3_2 0x3984
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_PATTERN_BUFFER_BYTE_4 0x3988
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DCC_CONTROL 0x398c
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DCC_OVERRIDE 0x3990
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DCC_APPLIED 0x3994
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_DCC_TIME_OUT 0x3998
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AZ_CONTROL 0x399c
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_MACRO_TEST_CONTROL_4 0x39f0
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_MACRO_TEST_CONTROL_3 0x39f4
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_MACRO_TEST_CONTROL_2 0x39f8
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_MACRO_TEST_CONTROL_1 0x39fc
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_CONFIGURATION_MODE 0x3a00
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_TEST_CONTROL 0x3a04
-#define A_MAC_PORT_RX_LINK_BCST_PHASE_ROTATOR_CONTROL 0x3a08
-#define A_MAC_PORT_RX_LINK_BCST_PHASE_ROTATOR_OFFSET_CONTROL 0x3a0c
-#define A_MAC_PORT_RX_LINK_BCST_PHASE_ROTATOR_POSITION_1 0x3a10
-#define A_MAC_PORT_RX_LINK_BCST_PHASE_ROTATOR_POSITION_2 0x3a14
-#define A_MAC_PORT_RX_LINK_BCST_PHASE_ROTATOR_STATIC_PHASE_OFFSET_1 0x3a18
-#define A_MAC_PORT_RX_LINK_BCST_PHASE_ROTATOR_STATIC_PHASE_OFFSET_2 0x3a1c
-#define A_MAC_PORT_RX_LINK_BCST_DFE_CONTROL 0x3a20
-#define A_MAC_PORT_RX_LINK_BCST_DFE_SAMPLE_SNAPSHOT_1 0x3a24
-#define A_MAC_PORT_RX_LINK_BCST_DFE_SAMPLE_SNAPSHOT_2 0x3a28
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_VGA_CONTROL_1 0x3a2c
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_VGA_CONTROL_2 0x3a30
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_VGA_CONTROL_3 0x3a34
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_DQCC_CONTROL_1 0x3a38
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_DQCC_CONTROL_3 0x3a40
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_DACAP_AND_DACAN 0x3a48
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_DACA_MIN_AND_DACAZ 0x3a4c
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_ADAC_CONTROL 0x3a50
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H1_LOCAL_OFFSET_ODD2_EVN2 0x3a5c
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H1_LOCAL_OFFSET_ODD3_EVN3 0x3a60
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H1_LOCAL_OFFSET_ODD4_EVN4 0x3a64
-#define A_MAC_PORT_RX_LINK_BCST_DYNAMIC_AMPLITUDE_CENTERING_DAC_AND_DYNAMIC_PEAKING_CONTROL_DPC 0x3a70
-#define A_MAC_PORT_RX_LINK_BCST_DYNAMIC_DATA_CENTERING_DDC 0x3a74
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_INTERNAL_STATUS 0x3a78
-#define A_MAC_PORT_RX_LINK_BCST_DFE_FUNCTION_CONTROL_1 0x3a7c
-#define A_MAC_PORT_RX_LINK_BCST_DFE_FUNCTION_CONTROL_2 0x3a80
-#define A_MAC_PORT_RX_LINK_BCST_DFE_OFFSET_EVN1_EVN2 0x3a84
-#define A_MAC_PORT_RX_LINK_BCST_DFE_OFFSET_ODD1_ODD2 0x3a88
-#define A_MAC_PORT_RX_LINK_BCST_DFE_OFFSET_EVN3_EVN4 0x3a8c
-#define A_MAC_PORT_RX_LINK_BCST_DFE_OFFSET_ODD3_ODD4 0x3a90
-#define A_MAC_PORT_RX_LINK_BCST_DFE_E0_AND_E1_OFFSET 0x3a94
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_LOFF_CONTROL 0x3a98
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_SIGDET_CONTROL 0x3a9c
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_ANALOG_CONTROL_SWITCH 0x3aa0
-#define A_MAC_PORT_RX_LINK_BCST_INTEGRATOR_DAC_OFFSET 0x3aa4
-#define A_MAC_PORT_RX_LINK_BCST_DIGITAL_EYE_CONTROL 0x3aa8
-#define A_MAC_PORT_RX_LINK_BCST_DIGITAL_EYE_METRICS 0x3aac
-#define A_MAC_PORT_RX_LINK_BCST_DIGITAL_EYE_METRICS_ERROR_COUNT 0x3ab0
-#define A_MAC_PORT_RX_LINK_BCST_DIGITAL_EYE_METRICS_PDF_EYE_COUNT 0x3ab4
-#define A_MAC_PORT_RX_LINK_BCST_DIGITAL_EYE_METRICS_PATTERN_LENGTH 0x3ab8
-#define A_MAC_PORT_RX_LINK_BCST_DFE_TAP_ENABLE 0x3ac0
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H1 0x3ac4
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H2 0x3ac8
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H3 0x3acc
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H4 0x3ad0
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H5 0x3ad4
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H6_AND_H7 0x3ad8
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H8_AND_H9 0x3adc
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H10_AND_H11 0x3ae0
-#define A_MAC_PORT_RX_LINK_BCST_DFE_H12 0x3ae4
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_MACRO_TEST_CONTROL_2 0x3af8
-#define A_MAC_PORT_RX_LINK_BCST_RECEIVER_MACRO_TEST_CONTROL_1 0x3afc
-#define A_MAC_PORT_PLLA_VCO_COARSE_CALIBRATION_0 0x3b00
-#define A_MAC_PORT_PLLA_VCO_COARSE_CALIBRATION_1 0x3b04
-#define A_MAC_PORT_PLLA_VCO_COARSE_CALIBRATION_2 0x3b08
-#define A_MAC_PORT_PLLA_VCO_COARSE_CALIBRATION_3 0x3b0c
-#define A_MAC_PORT_PLLA_VCO_COARSE_CALIBRATION_4 0x3b10
-#define A_MAC_PORT_PLLA_CHARGE_PUMP_CONTROL 0x3b28
-
-#define S_T5CPISEL 0
-#define M_T5CPISEL 0x7U
-#define V_T5CPISEL(x) ((x) << S_T5CPISEL)
-#define G_T5CPISEL(x) (((x) >> S_T5CPISEL) & M_T5CPISEL)
-
-#define A_MAC_PORT_PLLA_PCLK_CONTROL 0x3b3c
-
-#define S_SPEDIV 3
-#define M_SPEDIV 0x1fU
-#define V_SPEDIV(x) ((x) << S_SPEDIV)
-#define G_SPEDIV(x) (((x) >> S_SPEDIV) & M_SPEDIV)
-
-#define S_PCKSEL 0
-#define M_PCKSEL 0x7U
-#define V_PCKSEL(x) ((x) << S_PCKSEL)
-#define G_PCKSEL(x) (((x) >> S_PCKSEL) & M_PCKSEL)
-
-#define A_MAC_PORT_PLLA_EYE_METRICS_INTERVAL_CONTROL 0x3b40
-
-#define S_EMIL 2
-#define V_EMIL(x) ((x) << S_EMIL)
-#define F_EMIL V_EMIL(1U)
-
-#define S_EMID 1
-#define V_EMID(x) ((x) << S_EMID)
-#define F_EMID V_EMID(1U)
-
-#define S_EMIS 0
-#define V_EMIS(x) ((x) << S_EMIS)
-#define F_EMIS V_EMIS(1U)
-
-#define A_MAC_PORT_PLLA_EYE_METRICS_INTERVAL_LIMIT_1 0x3b44
-
-#define S_EMIL1 0
-#define M_EMIL1 0xffU
-#define V_EMIL1(x) ((x) << S_EMIL1)
-#define G_EMIL1(x) (((x) >> S_EMIL1) & M_EMIL1)
-
-#define A_MAC_PORT_PLLA_EYE_METRICS_INTERVAL_LIMIT_2 0x3b48
-
-#define S_EMIL2 0
-#define M_EMIL2 0xffU
-#define V_EMIL2(x) ((x) << S_EMIL2)
-#define G_EMIL2(x) (((x) >> S_EMIL2) & M_EMIL2)
-
-#define A_MAC_PORT_PLLA_EYE_METRICS_INTERVAL_LIMIT_3 0x3b4c
-
-#define S_EMIL3 0
-#define M_EMIL3 0xffU
-#define V_EMIL3(x) ((x) << S_EMIL3)
-#define G_EMIL3(x) (((x) >> S_EMIL3) & M_EMIL3)
-
-#define A_MAC_PORT_PLLA_EYE_METRICS_INTERVAL_LIMIT_4 0x3b50
-
-#define S_EMIL4 0
-#define M_EMIL4 0xffU
-#define V_EMIL4(x) ((x) << S_EMIL4)
-#define G_EMIL4(x) (((x) >> S_EMIL4) & M_EMIL4)
-
-#define A_MAC_PORT_PLLA_MACRO_TEST_CONTROL_4 0x3bf0
-
-#define S_VBST 1
-#define M_VBST 0x7U
-#define V_VBST(x) ((x) << S_VBST)
-#define G_VBST(x) (((x) >> S_VBST) & M_VBST)
-
-#define A_MAC_PORT_PLLA_MACRO_TEST_CONTROL_3 0x3bf4
-
-#define S_RESYNC 6
-#define V_RESYNC(x) ((x) << S_RESYNC)
-#define F_RESYNC V_RESYNC(1U)
-
-#define S_RXCLKSEL 5
-#define V_RXCLKSEL(x) ((x) << S_RXCLKSEL)
-#define F_RXCLKSEL V_RXCLKSEL(1U)
-
-#define S_FRCBAND 4
-#define V_FRCBAND(x) ((x) << S_FRCBAND)
-#define F_FRCBAND V_FRCBAND(1U)
-
-#define S_PLLBYP 3
-#define V_PLLBYP(x) ((x) << S_PLLBYP)
-#define F_PLLBYP V_PLLBYP(1U)
-
-#define S_PDWNP 2
-#define V_PDWNP(x) ((x) << S_PDWNP)
-#define F_PDWNP V_PDWNP(1U)
-
-#define S_VCOSEL 1
-#define V_VCOSEL(x) ((x) << S_VCOSEL)
-#define F_VCOSEL V_VCOSEL(1U)
-
-#define S_DIVSEL8 0
-#define V_DIVSEL8(x) ((x) << S_DIVSEL8)
-#define F_DIVSEL8 V_DIVSEL8(1U)
-
-#define A_MAC_PORT_PLLA_MACRO_TEST_CONTROL_2 0x3bf8
-
-#define S_DIVSEL 0
-#define M_DIVSEL 0xffU
-#define V_DIVSEL(x) ((x) << S_DIVSEL)
-#define G_DIVSEL(x) (((x) >> S_DIVSEL) & M_DIVSEL)
-
-#define A_MAC_PORT_PLLA_MACRO_TEST_CONTROL_1 0x3bfc
-
-#define S_CONFIG 0
-#define M_CONFIG 0xffU
-#define V_CONFIG(x) ((x) << S_CONFIG)
-#define G_CONFIG(x) (((x) >> S_CONFIG) & M_CONFIG)
-
-#define A_MAC_PORT_PLLB_VCO_COARSE_CALIBRATION_0 0x3c00
-#define A_MAC_PORT_PLLB_VCO_COARSE_CALIBRATION_1 0x3c04
-#define A_MAC_PORT_PLLB_VCO_COARSE_CALIBRATION_2 0x3c08
-#define A_MAC_PORT_PLLB_VCO_COARSE_CALIBRATION_3 0x3c0c
-#define A_MAC_PORT_PLLB_VCO_COARSE_CALIBRATION_4 0x3c10
-#define A_MAC_PORT_PLLB_CHARGE_PUMP_CONTROL 0x3c28
-#define A_MAC_PORT_PLLB_PCLK_CONTROL 0x3c3c
-#define A_MAC_PORT_PLLB_EYE_METRICS_INTERVAL_CONTROL 0x3c40
-#define A_MAC_PORT_PLLB_EYE_METRICS_INTERVAL_LIMIT_1 0x3c44
-#define A_MAC_PORT_PLLB_EYE_METRICS_INTERVAL_LIMIT_2 0x3c48
-#define A_MAC_PORT_PLLB_EYE_METRICS_INTERVAL_LIMIT_3 0x3c4c
-#define A_MAC_PORT_PLLB_EYE_METRICS_INTERVAL_LIMIT_4 0x3c50
-#define A_MAC_PORT_PLLB_MACRO_TEST_CONTROL_4 0x3cf0
-#define A_MAC_PORT_PLLB_MACRO_TEST_CONTROL_3 0x3cf4
-#define A_MAC_PORT_PLLB_MACRO_TEST_CONTROL_2 0x3cf8
-#define A_MAC_PORT_PLLB_MACRO_TEST_CONTROL_1 0x3cfc
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_STEP_SIZE_EXTENDED 0x0
-
-#define S_STEP 0
-#define M_STEP 0x7U
-#define V_STEP(x) ((x) << S_STEP)
-#define G_STEP(x) (((x) >> S_STEP) & M_STEP)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_C0_INIT_EXTENDED 0x8
-
-#define S_C0INIT 0
-#define M_C0INIT 0x1fU
-#define V_C0INIT(x) ((x) << S_C0INIT)
-#define G_C0INIT(x) (((x) >> S_C0INIT) & M_C0INIT)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_C0_LIMIT_EXTENDED 0x10
-
-#define S_C0MAX 8
-#define M_C0MAX 0x1fU
-#define V_C0MAX(x) ((x) << S_C0MAX)
-#define G_C0MAX(x) (((x) >> S_C0MAX) & M_C0MAX)
-
-#define S_C0MIN 0
-#define M_C0MIN 0x1fU
-#define V_C0MIN(x) ((x) << S_C0MIN)
-#define G_C0MIN(x) (((x) >> S_C0MIN) & M_C0MIN)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_C1_INIT_EXTENDED 0x18
-
-#define S_C1INIT 0
-#define M_C1INIT 0x7fU
-#define V_C1INIT(x) ((x) << S_C1INIT)
-#define G_C1INIT(x) (((x) >> S_C1INIT) & M_C1INIT)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_C1_LIMIT_EXTENDED 0x20
-
-#define S_C1MAX 8
-#define M_C1MAX 0x7fU
-#define V_C1MAX(x) ((x) << S_C1MAX)
-#define G_C1MAX(x) (((x) >> S_C1MAX) & M_C1MAX)
-
-#define S_C1MIN 0
-#define M_C1MIN 0x7fU
-#define V_C1MIN(x) ((x) << S_C1MIN)
-#define G_C1MIN(x) (((x) >> S_C1MIN) & M_C1MIN)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_C2_INIT_EXTENDED 0x28
-
-#define S_C2INIT 0
-#define M_C2INIT 0x3fU
-#define V_C2INIT(x) ((x) << S_C2INIT)
-#define G_C2INIT(x) (((x) >> S_C2INIT) & M_C2INIT)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_C2_LIMIT_EXTENDED 0x30
-
-#define S_C2MAX 8
-#define M_C2MAX 0x3fU
-#define V_C2MAX(x) ((x) << S_C2MAX)
-#define G_C2MAX(x) (((x) >> S_C2MAX) & M_C2MAX)
-
-#define S_C2MIN 0
-#define M_C2MIN 0x3fU
-#define V_C2MIN(x) ((x) << S_C2MIN)
-#define G_C2MIN(x) (((x) >> S_C2MIN) & M_C2MIN)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_VM_LIMIT_EXTENDED 0x38
-
-#define S_VMMAX 0
-#define M_VMMAX 0x7fU
-#define V_VMMAX(x) ((x) << S_VMMAX)
-#define G_VMMAX(x) (((x) >> S_VMMAX) & M_VMMAX)
-
-#define A_MAC_PORT_TX_LINKA_TRANSMIT_802_3AP_V2_LIMIT_EXTENDED 0x40
-
-#define S_V2MIN 0
-#define M_V2MIN 0x7fU
-#define V_V2MIN(x) ((x) << S_V2MIN)
-#define G_V2MIN(x) (((x) >> S_V2MIN) & M_V2MIN)
-
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_STEP_SIZE_EXTENDED 0x0
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_C0_INIT_EXTENDED 0x8
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_C0_LIMIT_EXTENDED 0x10
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_C1_INIT_EXTENDED 0x18
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_C1_LIMIT_EXTENDED 0x20
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_C2_INIT_EXTENDED 0x28
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_C2_LIMIT_EXTENDED 0x30
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_VM_LIMIT_EXTENDED 0x38
-#define A_MAC_PORT_TX_LINKB_TRANSMIT_802_3AP_V2_LIMIT_EXTENDED 0x40
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_STEP_SIZE_EXTENDED 0x0
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_C0_INIT_EXTENDED 0x8
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_C0_LIMIT_EXTENDED 0x10
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_C1_INIT_EXTENDED 0x18
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_C1_LIMIT_EXTENDED 0x20
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_C2_INIT_EXTENDED 0x28
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_C2_LIMIT_EXTENDED 0x30
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_VM_LIMIT_EXTENDED 0x38
-#define A_MAC_PORT_TX_LINKC_TRANSMIT_802_3AP_V2_LIMIT_EXTENDED 0x40
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_STEP_SIZE_EXTENDED 0x0
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_C0_INIT_EXTENDED 0x8
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_C0_LIMIT_EXTENDED 0x10
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_C1_INIT_EXTENDED 0x18
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_C1_LIMIT_EXTENDED 0x20
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_C2_INIT_EXTENDED 0x28
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_C2_LIMIT_EXTENDED 0x30
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_VM_LIMIT_EXTENDED 0x38
-#define A_MAC_PORT_TX_LINKD_TRANSMIT_802_3AP_V2_LIMIT_EXTENDED 0x40
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_STEP_SIZE_EXTENDED 0x0
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_C0_INIT_EXTENDED 0x8
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_C0_LIMIT_EXTENDED 0x10
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_C1_INIT_EXTENDED 0x18
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_C1_LIMIT_EXTENDED 0x20
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_C2_INIT_EXTENDED 0x28
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_C2_LIMIT_EXTENDED 0x30
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_VM_LIMIT_EXTENDED 0x38
-#define A_MAC_PORT_TX_LINK_BCST_TRANSMIT_802_3AP_V2_LIMIT_EXTENDED 0x40
-
-/* registers for module MC_0 */
-#define MC_0_BASE_ADDR 0x40000
-
-#define A_MC_UPCTL_SCFG 0x40000
-
-#define S_BBFLAGS_TIMING 8
-#define M_BBFLAGS_TIMING 0xfU
-#define V_BBFLAGS_TIMING(x) ((x) << S_BBFLAGS_TIMING)
-#define G_BBFLAGS_TIMING(x) (((x) >> S_BBFLAGS_TIMING) & M_BBFLAGS_TIMING)
-
-#define S_NFIFO_NIF1_DIS 6
-#define V_NFIFO_NIF1_DIS(x) ((x) << S_NFIFO_NIF1_DIS)
-#define F_NFIFO_NIF1_DIS V_NFIFO_NIF1_DIS(1U)
-
-#define A_MC_UPCTL_SCTL 0x40004
-#define A_MC_UPCTL_STAT 0x40008
-
-#define S_LP_TRIG 4
-#define M_LP_TRIG 0x7U
-#define V_LP_TRIG(x) ((x) << S_LP_TRIG)
-#define G_LP_TRIG(x) (((x) >> S_LP_TRIG) & M_LP_TRIG)
-
-#define A_MC_UPCTL_INTRSTAT 0x4000c
-
-#define S_PARITY_INTR 1
-#define V_PARITY_INTR(x) ((x) << S_PARITY_INTR)
-#define F_PARITY_INTR V_PARITY_INTR(1U)
-
-#define S_ECC_INTR 0
-#define V_ECC_INTR(x) ((x) << S_ECC_INTR)
-#define F_ECC_INTR V_ECC_INTR(1U)
-
-#define A_MC_UPCTL_MCMD 0x40040
-
-#define S_CMD_OPCODE0 0
-#define M_CMD_OPCODE0 0xfU
-#define V_CMD_OPCODE0(x) ((x) << S_CMD_OPCODE0)
-#define G_CMD_OPCODE0(x) (((x) >> S_CMD_OPCODE0) & M_CMD_OPCODE0)
-
-#define A_MC_UPCTL_POWCTL 0x40044
-#define A_MC_UPCTL_POWSTAT 0x40048
-#define A_MC_UPCTL_CMDTSTAT 0x4004c
-
-#define S_CMD_TSTAT 0
-#define V_CMD_TSTAT(x) ((x) << S_CMD_TSTAT)
-#define F_CMD_TSTAT V_CMD_TSTAT(1U)
-
-#define A_MC_UPCTL_CMDTSTATEN 0x40050
-
-#define S_CMD_TSTAT_EN 0
-#define V_CMD_TSTAT_EN(x) ((x) << S_CMD_TSTAT_EN)
-#define F_CMD_TSTAT_EN V_CMD_TSTAT_EN(1U)
-
-#define A_MC_UPCTL_MRRCFG0 0x40060
-
-#define S_MRR_BYTE_SEL 0
-#define M_MRR_BYTE_SEL 0xfU
-#define V_MRR_BYTE_SEL(x) ((x) << S_MRR_BYTE_SEL)
-#define G_MRR_BYTE_SEL(x) (((x) >> S_MRR_BYTE_SEL) & M_MRR_BYTE_SEL)
-
-#define A_MC_UPCTL_MRRSTAT0 0x40064
-
-#define S_MRRSTAT_BEAT3 24
-#define M_MRRSTAT_BEAT3 0xffU
-#define V_MRRSTAT_BEAT3(x) ((x) << S_MRRSTAT_BEAT3)
-#define G_MRRSTAT_BEAT3(x) (((x) >> S_MRRSTAT_BEAT3) & M_MRRSTAT_BEAT3)
-
-#define S_MRRSTAT_BEAT2 16
-#define M_MRRSTAT_BEAT2 0xffU
-#define V_MRRSTAT_BEAT2(x) ((x) << S_MRRSTAT_BEAT2)
-#define G_MRRSTAT_BEAT2(x) (((x) >> S_MRRSTAT_BEAT2) & M_MRRSTAT_BEAT2)
-
-#define S_MRRSTAT_BEAT1 8
-#define M_MRRSTAT_BEAT1 0xffU
-#define V_MRRSTAT_BEAT1(x) ((x) << S_MRRSTAT_BEAT1)
-#define G_MRRSTAT_BEAT1(x) (((x) >> S_MRRSTAT_BEAT1) & M_MRRSTAT_BEAT1)
-
-#define S_MRRSTAT_BEAT0 0
-#define M_MRRSTAT_BEAT0 0xffU
-#define V_MRRSTAT_BEAT0(x) ((x) << S_MRRSTAT_BEAT0)
-#define G_MRRSTAT_BEAT0(x) (((x) >> S_MRRSTAT_BEAT0) & M_MRRSTAT_BEAT0)
-
-#define A_MC_UPCTL_MRRSTAT1 0x40068
-
-#define S_MRRSTAT_BEAT7 24
-#define M_MRRSTAT_BEAT7 0xffU
-#define V_MRRSTAT_BEAT7(x) ((x) << S_MRRSTAT_BEAT7)
-#define G_MRRSTAT_BEAT7(x) (((x) >> S_MRRSTAT_BEAT7) & M_MRRSTAT_BEAT7)
-
-#define S_MRRSTAT_BEAT6 16
-#define M_MRRSTAT_BEAT6 0xffU
-#define V_MRRSTAT_BEAT6(x) ((x) << S_MRRSTAT_BEAT6)
-#define G_MRRSTAT_BEAT6(x) (((x) >> S_MRRSTAT_BEAT6) & M_MRRSTAT_BEAT6)
-
-#define S_MRRSTAT_BEAT5 8
-#define M_MRRSTAT_BEAT5 0xffU
-#define V_MRRSTAT_BEAT5(x) ((x) << S_MRRSTAT_BEAT5)
-#define G_MRRSTAT_BEAT5(x) (((x) >> S_MRRSTAT_BEAT5) & M_MRRSTAT_BEAT5)
-
-#define S_MRRSTAT_BEAT4 0
-#define M_MRRSTAT_BEAT4 0xffU
-#define V_MRRSTAT_BEAT4(x) ((x) << S_MRRSTAT_BEAT4)
-#define G_MRRSTAT_BEAT4(x) (((x) >> S_MRRSTAT_BEAT4) & M_MRRSTAT_BEAT4)
-
-#define A_MC_UPCTL_MCFG1 0x4007c
-
-#define S_HW_EXIT_IDLE_EN 31
-#define V_HW_EXIT_IDLE_EN(x) ((x) << S_HW_EXIT_IDLE_EN)
-#define F_HW_EXIT_IDLE_EN V_HW_EXIT_IDLE_EN(1U)
-
-#define S_HW_IDLE 16
-#define M_HW_IDLE 0xffU
-#define V_HW_IDLE(x) ((x) << S_HW_IDLE)
-#define G_HW_IDLE(x) (((x) >> S_HW_IDLE) & M_HW_IDLE)
-
-#define S_SR_IDLE 0
-#define M_SR_IDLE 0xffU
-#define V_SR_IDLE(x) ((x) << S_SR_IDLE)
-#define G_SR_IDLE(x) (((x) >> S_SR_IDLE) & M_SR_IDLE)
-
-#define A_MC_UPCTL_MCFG 0x40080
-
-#define S_MDDR_LPDDR2_CLK_STOP_IDLE 24
-#define M_MDDR_LPDDR2_CLK_STOP_IDLE 0xffU
-#define V_MDDR_LPDDR2_CLK_STOP_IDLE(x) ((x) << S_MDDR_LPDDR2_CLK_STOP_IDLE)
-#define G_MDDR_LPDDR2_CLK_STOP_IDLE(x) (((x) >> S_MDDR_LPDDR2_CLK_STOP_IDLE) & M_MDDR_LPDDR2_CLK_STOP_IDLE)
-
-#define S_MDDR_LPDDR2_EN 22
-#define M_MDDR_LPDDR2_EN 0x3U
-#define V_MDDR_LPDDR2_EN(x) ((x) << S_MDDR_LPDDR2_EN)
-#define G_MDDR_LPDDR2_EN(x) (((x) >> S_MDDR_LPDDR2_EN) & M_MDDR_LPDDR2_EN)
-
-#define S_MDDR_LPDDR2_BL 20
-#define M_MDDR_LPDDR2_BL 0x3U
-#define V_MDDR_LPDDR2_BL(x) ((x) << S_MDDR_LPDDR2_BL)
-#define G_MDDR_LPDDR2_BL(x) (((x) >> S_MDDR_LPDDR2_BL) & M_MDDR_LPDDR2_BL)
-
-#define S_LPDDR2_S4 6
-#define V_LPDDR2_S4(x) ((x) << S_LPDDR2_S4)
-#define F_LPDDR2_S4 V_LPDDR2_S4(1U)
-
-#define S_STAGGER_CS 4
-#define V_STAGGER_CS(x) ((x) << S_STAGGER_CS)
-#define F_STAGGER_CS V_STAGGER_CS(1U)
-
-#define S_CKE_OR_EN 1
-#define V_CKE_OR_EN(x) ((x) << S_CKE_OR_EN)
-#define F_CKE_OR_EN V_CKE_OR_EN(1U)
-
-#define A_MC_UPCTL_PPCFG 0x40084
-#define A_MC_UPCTL_MSTAT 0x40088
-
-#define S_SELF_REFRESH 2
-#define V_SELF_REFRESH(x) ((x) << S_SELF_REFRESH)
-#define F_SELF_REFRESH V_SELF_REFRESH(1U)
-
-#define S_CLOCK_STOP 1
-#define V_CLOCK_STOP(x) ((x) << S_CLOCK_STOP)
-#define F_CLOCK_STOP V_CLOCK_STOP(1U)
-
-#define A_MC_UPCTL_LPDDR2ZQCFG 0x4008c
-
-#define S_ZQCL_OP 24
-#define M_ZQCL_OP 0xffU
-#define V_ZQCL_OP(x) ((x) << S_ZQCL_OP)
-#define G_ZQCL_OP(x) (((x) >> S_ZQCL_OP) & M_ZQCL_OP)
-
-#define S_ZQCL_MA 16
-#define M_ZQCL_MA 0xffU
-#define V_ZQCL_MA(x) ((x) << S_ZQCL_MA)
-#define G_ZQCL_MA(x) (((x) >> S_ZQCL_MA) & M_ZQCL_MA)
-
-#define S_ZQCS_OP 8
-#define M_ZQCS_OP 0xffU
-#define V_ZQCS_OP(x) ((x) << S_ZQCS_OP)
-#define G_ZQCS_OP(x) (((x) >> S_ZQCS_OP) & M_ZQCS_OP)
-
-#define S_ZQCS_MA 0
-#define M_ZQCS_MA 0xffU
-#define V_ZQCS_MA(x) ((x) << S_ZQCS_MA)
-#define G_ZQCS_MA(x) (((x) >> S_ZQCS_MA) & M_ZQCS_MA)
-
-#define A_MC_UPCTL_DTUPDES 0x40094
-
-#define S_DTU_ERR_B7 7
-#define V_DTU_ERR_B7(x) ((x) << S_DTU_ERR_B7)
-#define F_DTU_ERR_B7 V_DTU_ERR_B7(1U)
-
-#define A_MC_UPCTL_DTUNA 0x40098
-#define A_MC_UPCTL_DTUNE 0x4009c
-#define A_MC_UPCTL_DTUPRD0 0x400a0
-#define A_MC_UPCTL_DTUPRD1 0x400a4
-#define A_MC_UPCTL_DTUPRD2 0x400a8
-#define A_MC_UPCTL_DTUPRD3 0x400ac
-#define A_MC_UPCTL_DTUAWDT 0x400b0
-#define A_MC_UPCTL_TOGCNT1U 0x400c0
-#define A_MC_UPCTL_TINIT 0x400c4
-#define A_MC_UPCTL_TRSTH 0x400c8
-#define A_MC_UPCTL_TOGCNT100N 0x400cc
-#define A_MC_UPCTL_TREFI 0x400d0
-#define A_MC_UPCTL_TMRD 0x400d4
-#define A_MC_UPCTL_TRFC 0x400d8
-
-#define S_T_RFC0 0
-#define M_T_RFC0 0x1ffU
-#define V_T_RFC0(x) ((x) << S_T_RFC0)
-#define G_T_RFC0(x) (((x) >> S_T_RFC0) & M_T_RFC0)
-
-#define A_MC_UPCTL_TRP 0x400dc
-
-#define S_PREA_EXTRA 16
-#define M_PREA_EXTRA 0x3U
-#define V_PREA_EXTRA(x) ((x) << S_PREA_EXTRA)
-#define G_PREA_EXTRA(x) (((x) >> S_PREA_EXTRA) & M_PREA_EXTRA)
-
-#define A_MC_UPCTL_TRTW 0x400e0
-
-#define S_T_RTW0 0
-#define M_T_RTW0 0xfU
-#define V_T_RTW0(x) ((x) << S_T_RTW0)
-#define G_T_RTW0(x) (((x) >> S_T_RTW0) & M_T_RTW0)
-
-#define A_MC_UPCTL_TAL 0x400e4
-#define A_MC_UPCTL_TCL 0x400e8
-#define A_MC_UPCTL_TCWL 0x400ec
-#define A_MC_UPCTL_TRAS 0x400f0
-#define A_MC_UPCTL_TRC 0x400f4
-#define A_MC_UPCTL_TRCD 0x400f8
-#define A_MC_UPCTL_TRRD 0x400fc
-#define A_MC_UPCTL_TRTP 0x40100
-
-#define S_T_RTP0 0
-#define M_T_RTP0 0xfU
-#define V_T_RTP0(x) ((x) << S_T_RTP0)
-#define G_T_RTP0(x) (((x) >> S_T_RTP0) & M_T_RTP0)
-
-#define A_MC_UPCTL_TWR 0x40104
-
-#define S_U_T_WR 0
-#define M_U_T_WR 0x1fU
-#define V_U_T_WR(x) ((x) << S_U_T_WR)
-#define G_U_T_WR(x) (((x) >> S_U_T_WR) & M_U_T_WR)
-
-#define A_MC_UPCTL_TWTR 0x40108
-
-#define S_T_WTR0 0
-#define M_T_WTR0 0xfU
-#define V_T_WTR0(x) ((x) << S_T_WTR0)
-#define G_T_WTR0(x) (((x) >> S_T_WTR0) & M_T_WTR0)
-
-#define A_MC_UPCTL_TEXSR 0x4010c
-#define A_MC_UPCTL_TXP 0x40110
-#define A_MC_UPCTL_TXPDLL 0x40114
-#define A_MC_UPCTL_TZQCS 0x40118
-#define A_MC_UPCTL_TZQCSI 0x4011c
-#define A_MC_UPCTL_TDQS 0x40120
-#define A_MC_UPCTL_TCKSRE 0x40124
-
-#define S_T_CKSRE0 0
-#define M_T_CKSRE0 0x1fU
-#define V_T_CKSRE0(x) ((x) << S_T_CKSRE0)
-#define G_T_CKSRE0(x) (((x) >> S_T_CKSRE0) & M_T_CKSRE0)
-
-#define A_MC_UPCTL_TCKSRX 0x40128
-
-#define S_T_CKSRX0 0
-#define M_T_CKSRX0 0x1fU
-#define V_T_CKSRX0(x) ((x) << S_T_CKSRX0)
-#define G_T_CKSRX0(x) (((x) >> S_T_CKSRX0) & M_T_CKSRX0)
-
-#define A_MC_UPCTL_TCKE 0x4012c
-#define A_MC_UPCTL_TMOD 0x40130
-
-#define S_T_MOD0 0
-#define M_T_MOD0 0x1fU
-#define V_T_MOD0(x) ((x) << S_T_MOD0)
-#define G_T_MOD0(x) (((x) >> S_T_MOD0) & M_T_MOD0)
-
-#define A_MC_UPCTL_TRSTL 0x40134
-
-#define S_T_RSTL 0
-#define M_T_RSTL 0x7fU
-#define V_T_RSTL(x) ((x) << S_T_RSTL)
-#define G_T_RSTL(x) (((x) >> S_T_RSTL) & M_T_RSTL)
-
-#define A_MC_UPCTL_TZQCL 0x40138
-#define A_MC_UPCTL_TMRR 0x4013c
-
-#define S_T_MRR 0
-#define M_T_MRR 0xffU
-#define V_T_MRR(x) ((x) << S_T_MRR)
-#define G_T_MRR(x) (((x) >> S_T_MRR) & M_T_MRR)
-
-#define A_MC_UPCTL_TCKESR 0x40140
-
-#define S_T_CKESR 0
-#define M_T_CKESR 0xfU
-#define V_T_CKESR(x) ((x) << S_T_CKESR)
-#define G_T_CKESR(x) (((x) >> S_T_CKESR) & M_T_CKESR)
-
-#define A_MC_UPCTL_TDPD 0x40144
-
-#define S_T_DPD 0
-#define M_T_DPD 0x3ffU
-#define V_T_DPD(x) ((x) << S_T_DPD)
-#define G_T_DPD(x) (((x) >> S_T_DPD) & M_T_DPD)
-
-#define A_MC_UPCTL_ECCCFG 0x40180
-#define A_MC_UPCTL_ECCTST 0x40184
-
-#define S_ECC_TEST_MASK0 0
-#define M_ECC_TEST_MASK0 0x7fU
-#define V_ECC_TEST_MASK0(x) ((x) << S_ECC_TEST_MASK0)
-#define G_ECC_TEST_MASK0(x) (((x) >> S_ECC_TEST_MASK0) & M_ECC_TEST_MASK0)
-
-#define A_MC_UPCTL_ECCCLR 0x40188
-#define A_MC_UPCTL_ECCLOG 0x4018c
-#define A_MC_UPCTL_DTUWACTL 0x40200
-
-#define S_DTU_WR_ROW0 13
-#define M_DTU_WR_ROW0 0xffffU
-#define V_DTU_WR_ROW0(x) ((x) << S_DTU_WR_ROW0)
-#define G_DTU_WR_ROW0(x) (((x) >> S_DTU_WR_ROW0) & M_DTU_WR_ROW0)
-
-#define A_MC_UPCTL_DTURACTL 0x40204
-
-#define S_DTU_RD_ROW0 13
-#define M_DTU_RD_ROW0 0xffffU
-#define V_DTU_RD_ROW0(x) ((x) << S_DTU_RD_ROW0)
-#define G_DTU_RD_ROW0(x) (((x) >> S_DTU_RD_ROW0) & M_DTU_RD_ROW0)
-
-#define A_MC_UPCTL_DTUCFG 0x40208
-#define A_MC_UPCTL_DTUECTL 0x4020c
-#define A_MC_UPCTL_DTUWD0 0x40210
-#define A_MC_UPCTL_DTUWD1 0x40214
-#define A_MC_UPCTL_DTUWD2 0x40218
-#define A_MC_UPCTL_DTUWD3 0x4021c
-#define A_MC_UPCTL_DTUWDM 0x40220
-#define A_MC_UPCTL_DTURD0 0x40224
-#define A_MC_UPCTL_DTURD1 0x40228
-#define A_MC_UPCTL_DTURD2 0x4022c
-#define A_MC_UPCTL_DTURD3 0x40230
-#define A_MC_UPCTL_DTULFSRWD 0x40234
-#define A_MC_UPCTL_DTULFSRRD 0x40238
-#define A_MC_UPCTL_DTUEAF 0x4023c
-
-#define S_EA_ROW0 13
-#define M_EA_ROW0 0xffffU
-#define V_EA_ROW0(x) ((x) << S_EA_ROW0)
-#define G_EA_ROW0(x) (((x) >> S_EA_ROW0) & M_EA_ROW0)
-
-#define A_MC_UPCTL_DFITCTRLDELAY 0x40240
-
-#define S_TCTRL_DELAY 0
-#define M_TCTRL_DELAY 0xfU
-#define V_TCTRL_DELAY(x) ((x) << S_TCTRL_DELAY)
-#define G_TCTRL_DELAY(x) (((x) >> S_TCTRL_DELAY) & M_TCTRL_DELAY)
-
-#define A_MC_UPCTL_DFIODTCFG 0x40244
-
-#define S_RANK3_ODT_WRITE_NSEL 26
-#define V_RANK3_ODT_WRITE_NSEL(x) ((x) << S_RANK3_ODT_WRITE_NSEL)
-#define F_RANK3_ODT_WRITE_NSEL V_RANK3_ODT_WRITE_NSEL(1U)
-
-#define A_MC_UPCTL_DFIODTCFG1 0x40248
-
-#define S_ODT_LEN_B8_R 24
-#define M_ODT_LEN_B8_R 0x7U
-#define V_ODT_LEN_B8_R(x) ((x) << S_ODT_LEN_B8_R)
-#define G_ODT_LEN_B8_R(x) (((x) >> S_ODT_LEN_B8_R) & M_ODT_LEN_B8_R)
-
-#define S_ODT_LEN_BL8_W 16
-#define M_ODT_LEN_BL8_W 0x7U
-#define V_ODT_LEN_BL8_W(x) ((x) << S_ODT_LEN_BL8_W)
-#define G_ODT_LEN_BL8_W(x) (((x) >> S_ODT_LEN_BL8_W) & M_ODT_LEN_BL8_W)
-
-#define S_ODT_LAT_R 8
-#define M_ODT_LAT_R 0x1fU
-#define V_ODT_LAT_R(x) ((x) << S_ODT_LAT_R)
-#define G_ODT_LAT_R(x) (((x) >> S_ODT_LAT_R) & M_ODT_LAT_R)
-
-#define S_ODT_LAT_W 0
-#define M_ODT_LAT_W 0x1fU
-#define V_ODT_LAT_W(x) ((x) << S_ODT_LAT_W)
-#define G_ODT_LAT_W(x) (((x) >> S_ODT_LAT_W) & M_ODT_LAT_W)
-
-#define A_MC_UPCTL_DFIODTRANKMAP 0x4024c
-
-#define S_ODT_RANK_MAP3 12
-#define M_ODT_RANK_MAP3 0xfU
-#define V_ODT_RANK_MAP3(x) ((x) << S_ODT_RANK_MAP3)
-#define G_ODT_RANK_MAP3(x) (((x) >> S_ODT_RANK_MAP3) & M_ODT_RANK_MAP3)
-
-#define S_ODT_RANK_MAP2 8
-#define M_ODT_RANK_MAP2 0xfU
-#define V_ODT_RANK_MAP2(x) ((x) << S_ODT_RANK_MAP2)
-#define G_ODT_RANK_MAP2(x) (((x) >> S_ODT_RANK_MAP2) & M_ODT_RANK_MAP2)
-
-#define S_ODT_RANK_MAP1 4
-#define M_ODT_RANK_MAP1 0xfU
-#define V_ODT_RANK_MAP1(x) ((x) << S_ODT_RANK_MAP1)
-#define G_ODT_RANK_MAP1(x) (((x) >> S_ODT_RANK_MAP1) & M_ODT_RANK_MAP1)
-
-#define S_ODT_RANK_MAP0 0
-#define M_ODT_RANK_MAP0 0xfU
-#define V_ODT_RANK_MAP0(x) ((x) << S_ODT_RANK_MAP0)
-#define G_ODT_RANK_MAP0(x) (((x) >> S_ODT_RANK_MAP0) & M_ODT_RANK_MAP0)
-
-#define A_MC_UPCTL_DFITPHYWRDATA 0x40250
-
-#define S_TPHY_WRDATA 0
-#define M_TPHY_WRDATA 0x1fU
-#define V_TPHY_WRDATA(x) ((x) << S_TPHY_WRDATA)
-#define G_TPHY_WRDATA(x) (((x) >> S_TPHY_WRDATA) & M_TPHY_WRDATA)
-
-#define A_MC_UPCTL_DFITPHYWRLAT 0x40254
-
-#define S_TPHY_WRLAT 0
-#define M_TPHY_WRLAT 0x1fU
-#define V_TPHY_WRLAT(x) ((x) << S_TPHY_WRLAT)
-#define G_TPHY_WRLAT(x) (((x) >> S_TPHY_WRLAT) & M_TPHY_WRLAT)
-
-#define A_MC_UPCTL_DFITRDDATAEN 0x40260
-
-#define S_TRDDATA_EN 0
-#define M_TRDDATA_EN 0x1fU
-#define V_TRDDATA_EN(x) ((x) << S_TRDDATA_EN)
-#define G_TRDDATA_EN(x) (((x) >> S_TRDDATA_EN) & M_TRDDATA_EN)
-
-#define A_MC_UPCTL_DFITPHYRDLAT 0x40264
-
-#define S_TPHY_RDLAT 0
-#define M_TPHY_RDLAT 0x3fU
-#define V_TPHY_RDLAT(x) ((x) << S_TPHY_RDLAT)
-#define G_TPHY_RDLAT(x) (((x) >> S_TPHY_RDLAT) & M_TPHY_RDLAT)
-
-#define A_MC_UPCTL_DFITPHYUPDTYPE0 0x40270
-
-#define S_TPHYUPD_TYPE0 0
-#define M_TPHYUPD_TYPE0 0xfffU
-#define V_TPHYUPD_TYPE0(x) ((x) << S_TPHYUPD_TYPE0)
-#define G_TPHYUPD_TYPE0(x) (((x) >> S_TPHYUPD_TYPE0) & M_TPHYUPD_TYPE0)
-
-#define A_MC_UPCTL_DFITPHYUPDTYPE1 0x40274
-
-#define S_TPHYUPD_TYPE1 0
-#define M_TPHYUPD_TYPE1 0xfffU
-#define V_TPHYUPD_TYPE1(x) ((x) << S_TPHYUPD_TYPE1)
-#define G_TPHYUPD_TYPE1(x) (((x) >> S_TPHYUPD_TYPE1) & M_TPHYUPD_TYPE1)
-
-#define A_MC_UPCTL_DFITPHYUPDTYPE2 0x40278
-
-#define S_TPHYUPD_TYPE2 0
-#define M_TPHYUPD_TYPE2 0xfffU
-#define V_TPHYUPD_TYPE2(x) ((x) << S_TPHYUPD_TYPE2)
-#define G_TPHYUPD_TYPE2(x) (((x) >> S_TPHYUPD_TYPE2) & M_TPHYUPD_TYPE2)
-
-#define A_MC_UPCTL_DFITPHYUPDTYPE3 0x4027c
-
-#define S_TPHYUPD_TYPE3 0
-#define M_TPHYUPD_TYPE3 0xfffU
-#define V_TPHYUPD_TYPE3(x) ((x) << S_TPHYUPD_TYPE3)
-#define G_TPHYUPD_TYPE3(x) (((x) >> S_TPHYUPD_TYPE3) & M_TPHYUPD_TYPE3)
-
-#define A_MC_UPCTL_DFITCTRLUPDMIN 0x40280
-
-#define S_TCTRLUPD_MIN 0
-#define M_TCTRLUPD_MIN 0xffffU
-#define V_TCTRLUPD_MIN(x) ((x) << S_TCTRLUPD_MIN)
-#define G_TCTRLUPD_MIN(x) (((x) >> S_TCTRLUPD_MIN) & M_TCTRLUPD_MIN)
-
-#define A_MC_UPCTL_DFITCTRLUPDMAX 0x40284
-
-#define S_TCTRLUPD_MAX 0
-#define M_TCTRLUPD_MAX 0xffffU
-#define V_TCTRLUPD_MAX(x) ((x) << S_TCTRLUPD_MAX)
-#define G_TCTRLUPD_MAX(x) (((x) >> S_TCTRLUPD_MAX) & M_TCTRLUPD_MAX)
-
-#define A_MC_UPCTL_DFITCTRLUPDDLY 0x40288
-
-#define S_TCTRLUPD_DLY 0
-#define M_TCTRLUPD_DLY 0xfU
-#define V_TCTRLUPD_DLY(x) ((x) << S_TCTRLUPD_DLY)
-#define G_TCTRLUPD_DLY(x) (((x) >> S_TCTRLUPD_DLY) & M_TCTRLUPD_DLY)
-
-#define A_MC_UPCTL_DFIUPDCFG 0x40290
-
-#define S_DFI_PHYUPD_EN 1
-#define V_DFI_PHYUPD_EN(x) ((x) << S_DFI_PHYUPD_EN)
-#define F_DFI_PHYUPD_EN V_DFI_PHYUPD_EN(1U)
-
-#define S_DFI_CTRLUPD_EN 0
-#define V_DFI_CTRLUPD_EN(x) ((x) << S_DFI_CTRLUPD_EN)
-#define F_DFI_CTRLUPD_EN V_DFI_CTRLUPD_EN(1U)
-
-#define A_MC_UPCTL_DFITREFMSKI 0x40294
-
-#define S_TREFMSKI 0
-#define M_TREFMSKI 0xffU
-#define V_TREFMSKI(x) ((x) << S_TREFMSKI)
-#define G_TREFMSKI(x) (((x) >> S_TREFMSKI) & M_TREFMSKI)
-
-#define A_MC_UPCTL_DFITCTRLUPDI 0x40298
-#define A_MC_UPCTL_DFITRCFG0 0x402ac
-
-#define S_DFI_WRLVL_RANK_SEL 16
-#define M_DFI_WRLVL_RANK_SEL 0xfU
-#define V_DFI_WRLVL_RANK_SEL(x) ((x) << S_DFI_WRLVL_RANK_SEL)
-#define G_DFI_WRLVL_RANK_SEL(x) (((x) >> S_DFI_WRLVL_RANK_SEL) & M_DFI_WRLVL_RANK_SEL)
-
-#define S_DFI_RDLVL_EDGE 4
-#define M_DFI_RDLVL_EDGE 0x1ffU
-#define V_DFI_RDLVL_EDGE(x) ((x) << S_DFI_RDLVL_EDGE)
-#define G_DFI_RDLVL_EDGE(x) (((x) >> S_DFI_RDLVL_EDGE) & M_DFI_RDLVL_EDGE)
-
-#define S_DFI_RDLVL_RANK_SEL 0
-#define M_DFI_RDLVL_RANK_SEL 0xfU
-#define V_DFI_RDLVL_RANK_SEL(x) ((x) << S_DFI_RDLVL_RANK_SEL)
-#define G_DFI_RDLVL_RANK_SEL(x) (((x) >> S_DFI_RDLVL_RANK_SEL) & M_DFI_RDLVL_RANK_SEL)
-
-#define A_MC_UPCTL_DFITRSTAT0 0x402b0
-
-#define S_DFI_WRLVL_MODE 16
-#define M_DFI_WRLVL_MODE 0x3U
-#define V_DFI_WRLVL_MODE(x) ((x) << S_DFI_WRLVL_MODE)
-#define G_DFI_WRLVL_MODE(x) (((x) >> S_DFI_WRLVL_MODE) & M_DFI_WRLVL_MODE)
-
-#define S_DFI_RDLVL_GATE_MODE 8
-#define M_DFI_RDLVL_GATE_MODE 0x3U
-#define V_DFI_RDLVL_GATE_MODE(x) ((x) << S_DFI_RDLVL_GATE_MODE)
-#define G_DFI_RDLVL_GATE_MODE(x) (((x) >> S_DFI_RDLVL_GATE_MODE) & M_DFI_RDLVL_GATE_MODE)
-
-#define S_DFI_RDLVL_MODE 0
-#define M_DFI_RDLVL_MODE 0x3U
-#define V_DFI_RDLVL_MODE(x) ((x) << S_DFI_RDLVL_MODE)
-#define G_DFI_RDLVL_MODE(x) (((x) >> S_DFI_RDLVL_MODE) & M_DFI_RDLVL_MODE)
-
-#define A_MC_UPCTL_DFITRWRLVLEN 0x402b4
-
-#define S_DFI_WRLVL_EN 0
-#define M_DFI_WRLVL_EN 0x1ffU
-#define V_DFI_WRLVL_EN(x) ((x) << S_DFI_WRLVL_EN)
-#define G_DFI_WRLVL_EN(x) (((x) >> S_DFI_WRLVL_EN) & M_DFI_WRLVL_EN)
-
-#define A_MC_UPCTL_DFITRRDLVLEN 0x402b8
-
-#define S_DFI_RDLVL_EN 0
-#define M_DFI_RDLVL_EN 0x1ffU
-#define V_DFI_RDLVL_EN(x) ((x) << S_DFI_RDLVL_EN)
-#define G_DFI_RDLVL_EN(x) (((x) >> S_DFI_RDLVL_EN) & M_DFI_RDLVL_EN)
-
-#define A_MC_UPCTL_DFITRRDLVLGATEEN 0x402bc
-
-#define S_DFI_RDLVL_GATE_EN 0
-#define M_DFI_RDLVL_GATE_EN 0x1ffU
-#define V_DFI_RDLVL_GATE_EN(x) ((x) << S_DFI_RDLVL_GATE_EN)
-#define G_DFI_RDLVL_GATE_EN(x) (((x) >> S_DFI_RDLVL_GATE_EN) & M_DFI_RDLVL_GATE_EN)
-
-#define A_MC_UPCTL_DFISTSTAT0 0x402c0
-
-#define S_DFI_DATA_BYTE_DISABLE 16
-#define M_DFI_DATA_BYTE_DISABLE 0x1ffU
-#define V_DFI_DATA_BYTE_DISABLE(x) ((x) << S_DFI_DATA_BYTE_DISABLE)
-#define G_DFI_DATA_BYTE_DISABLE(x) (((x) >> S_DFI_DATA_BYTE_DISABLE) & M_DFI_DATA_BYTE_DISABLE)
-
-#define S_DFI_FREQ_RATIO 4
-#define M_DFI_FREQ_RATIO 0x3U
-#define V_DFI_FREQ_RATIO(x) ((x) << S_DFI_FREQ_RATIO)
-#define G_DFI_FREQ_RATIO(x) (((x) >> S_DFI_FREQ_RATIO) & M_DFI_FREQ_RATIO)
-
-#define S_DFI_INIT_START0 1
-#define V_DFI_INIT_START0(x) ((x) << S_DFI_INIT_START0)
-#define F_DFI_INIT_START0 V_DFI_INIT_START0(1U)
-
-#define S_DFI_INIT_COMPLETE 0
-#define V_DFI_INIT_COMPLETE(x) ((x) << S_DFI_INIT_COMPLETE)
-#define F_DFI_INIT_COMPLETE V_DFI_INIT_COMPLETE(1U)
-
-#define A_MC_UPCTL_DFISTCFG0 0x402c4
-
-#define S_DFI_DATA_BYTE_DISABLE_EN 2
-#define V_DFI_DATA_BYTE_DISABLE_EN(x) ((x) << S_DFI_DATA_BYTE_DISABLE_EN)
-#define F_DFI_DATA_BYTE_DISABLE_EN V_DFI_DATA_BYTE_DISABLE_EN(1U)
-
-#define S_DFI_FREQ_RATIO_EN 1
-#define V_DFI_FREQ_RATIO_EN(x) ((x) << S_DFI_FREQ_RATIO_EN)
-#define F_DFI_FREQ_RATIO_EN V_DFI_FREQ_RATIO_EN(1U)
-
-#define S_DFI_INIT_START 0
-#define V_DFI_INIT_START(x) ((x) << S_DFI_INIT_START)
-#define F_DFI_INIT_START V_DFI_INIT_START(1U)
-
-#define A_MC_UPCTL_DFISTCFG1 0x402c8
-
-#define S_DFI_DRAM_CLK_DISABLE_EN_DPD 1
-#define V_DFI_DRAM_CLK_DISABLE_EN_DPD(x) ((x) << S_DFI_DRAM_CLK_DISABLE_EN_DPD)
-#define F_DFI_DRAM_CLK_DISABLE_EN_DPD V_DFI_DRAM_CLK_DISABLE_EN_DPD(1U)
-
-#define S_DFI_DRAM_CLK_DISABLE_EN 0
-#define V_DFI_DRAM_CLK_DISABLE_EN(x) ((x) << S_DFI_DRAM_CLK_DISABLE_EN)
-#define F_DFI_DRAM_CLK_DISABLE_EN V_DFI_DRAM_CLK_DISABLE_EN(1U)
-
-#define A_MC_UPCTL_DFITDRAMCLKEN 0x402d0
-
-#define S_TDRAM_CLK_ENABLE 0
-#define M_TDRAM_CLK_ENABLE 0xfU
-#define V_TDRAM_CLK_ENABLE(x) ((x) << S_TDRAM_CLK_ENABLE)
-#define G_TDRAM_CLK_ENABLE(x) (((x) >> S_TDRAM_CLK_ENABLE) & M_TDRAM_CLK_ENABLE)
-
-#define A_MC_UPCTL_DFITDRAMCLKDIS 0x402d4
-
-#define S_TDRAM_CLK_DISABLE 0
-#define M_TDRAM_CLK_DISABLE 0xfU
-#define V_TDRAM_CLK_DISABLE(x) ((x) << S_TDRAM_CLK_DISABLE)
-#define G_TDRAM_CLK_DISABLE(x) (((x) >> S_TDRAM_CLK_DISABLE) & M_TDRAM_CLK_DISABLE)
-
-#define A_MC_UPCTL_DFISTCFG2 0x402d8
-
-#define S_PARITY_EN 1
-#define V_PARITY_EN(x) ((x) << S_PARITY_EN)
-#define F_PARITY_EN V_PARITY_EN(1U)
-
-#define S_PARITY_INTR_EN 0
-#define V_PARITY_INTR_EN(x) ((x) << S_PARITY_INTR_EN)
-#define F_PARITY_INTR_EN V_PARITY_INTR_EN(1U)
-
-#define A_MC_UPCTL_DFISTPARCLR 0x402dc
-
-#define S_PARITY_LOG_CLR 1
-#define V_PARITY_LOG_CLR(x) ((x) << S_PARITY_LOG_CLR)
-#define F_PARITY_LOG_CLR V_PARITY_LOG_CLR(1U)
-
-#define S_PARITY_INTR_CLR 0
-#define V_PARITY_INTR_CLR(x) ((x) << S_PARITY_INTR_CLR)
-#define F_PARITY_INTR_CLR V_PARITY_INTR_CLR(1U)
-
-#define A_MC_UPCTL_DFISTPARLOG 0x402e0
-#define A_MC_UPCTL_DFILPCFG0 0x402f0
-
-#define S_DFI_LP_WAKEUP_DPD 28
-#define M_DFI_LP_WAKEUP_DPD 0xfU
-#define V_DFI_LP_WAKEUP_DPD(x) ((x) << S_DFI_LP_WAKEUP_DPD)
-#define G_DFI_LP_WAKEUP_DPD(x) (((x) >> S_DFI_LP_WAKEUP_DPD) & M_DFI_LP_WAKEUP_DPD)
-
-#define S_DFI_LP_EN_DPD 24
-#define V_DFI_LP_EN_DPD(x) ((x) << S_DFI_LP_EN_DPD)
-#define F_DFI_LP_EN_DPD V_DFI_LP_EN_DPD(1U)
-
-#define S_DFI_TLP_RESP 16
-#define M_DFI_TLP_RESP 0xfU
-#define V_DFI_TLP_RESP(x) ((x) << S_DFI_TLP_RESP)
-#define G_DFI_TLP_RESP(x) (((x) >> S_DFI_TLP_RESP) & M_DFI_TLP_RESP)
-
-#define S_DFI_LP_EN_SR 8
-#define V_DFI_LP_EN_SR(x) ((x) << S_DFI_LP_EN_SR)
-#define F_DFI_LP_EN_SR V_DFI_LP_EN_SR(1U)
-
-#define S_DFI_LP_WAKEUP_PD 4
-#define M_DFI_LP_WAKEUP_PD 0xfU
-#define V_DFI_LP_WAKEUP_PD(x) ((x) << S_DFI_LP_WAKEUP_PD)
-#define G_DFI_LP_WAKEUP_PD(x) (((x) >> S_DFI_LP_WAKEUP_PD) & M_DFI_LP_WAKEUP_PD)
-
-#define S_DFI_LP_EN_PD 0
-#define V_DFI_LP_EN_PD(x) ((x) << S_DFI_LP_EN_PD)
-#define F_DFI_LP_EN_PD V_DFI_LP_EN_PD(1U)
-
-#define A_MC_UPCTL_DFITRWRLVLRESP0 0x40300
-#define A_MC_UPCTL_DFITRWRLVLRESP1 0x40304
-#define A_MC_UPCTL_DFITRWRLVLRESP2 0x40308
-
-#define S_DFI_WRLVL_RESP2 0
-#define M_DFI_WRLVL_RESP2 0xffU
-#define V_DFI_WRLVL_RESP2(x) ((x) << S_DFI_WRLVL_RESP2)
-#define G_DFI_WRLVL_RESP2(x) (((x) >> S_DFI_WRLVL_RESP2) & M_DFI_WRLVL_RESP2)
-
-#define A_MC_UPCTL_DFITRRDLVLRESP0 0x4030c
-#define A_MC_UPCTL_DFITRRDLVLRESP1 0x40310
-#define A_MC_UPCTL_DFITRRDLVLRESP2 0x40314
-
-#define S_DFI_RDLVL_RESP2 0
-#define M_DFI_RDLVL_RESP2 0xffU
-#define V_DFI_RDLVL_RESP2(x) ((x) << S_DFI_RDLVL_RESP2)
-#define G_DFI_RDLVL_RESP2(x) (((x) >> S_DFI_RDLVL_RESP2) & M_DFI_RDLVL_RESP2)
-
-#define A_MC_UPCTL_DFITRWRLVLDELAY0 0x40318
-#define A_MC_UPCTL_DFITRWRLVLDELAY1 0x4031c
-#define A_MC_UPCTL_DFITRWRLVLDELAY2 0x40320
-
-#define S_DFI_WRLVL_DELAY2 0
-#define M_DFI_WRLVL_DELAY2 0xffU
-#define V_DFI_WRLVL_DELAY2(x) ((x) << S_DFI_WRLVL_DELAY2)
-#define G_DFI_WRLVL_DELAY2(x) (((x) >> S_DFI_WRLVL_DELAY2) & M_DFI_WRLVL_DELAY2)
-
-#define A_MC_UPCTL_DFITRRDLVLDELAY0 0x40324
-#define A_MC_UPCTL_DFITRRDLVLDELAY1 0x40328
-#define A_MC_UPCTL_DFITRRDLVLDELAY2 0x4032c
-
-#define S_DFI_RDLVL_DELAY2 0
-#define M_DFI_RDLVL_DELAY2 0xffU
-#define V_DFI_RDLVL_DELAY2(x) ((x) << S_DFI_RDLVL_DELAY2)
-#define G_DFI_RDLVL_DELAY2(x) (((x) >> S_DFI_RDLVL_DELAY2) & M_DFI_RDLVL_DELAY2)
-
-#define A_MC_UPCTL_DFITRRDLVLGATEDELAY0 0x40330
-#define A_MC_UPCTL_DFITRRDLVLGATEDELAY1 0x40334
-#define A_MC_UPCTL_DFITRRDLVLGATEDELAY2 0x40338
-
-#define S_DFI_RDLVL_GATE_DELAY2 0
-#define M_DFI_RDLVL_GATE_DELAY2 0xffU
-#define V_DFI_RDLVL_GATE_DELAY2(x) ((x) << S_DFI_RDLVL_GATE_DELAY2)
-#define G_DFI_RDLVL_GATE_DELAY2(x) (((x) >> S_DFI_RDLVL_GATE_DELAY2) & M_DFI_RDLVL_GATE_DELAY2)
-
-#define A_MC_UPCTL_DFITRCMD 0x4033c
-
-#define S_DFITRCMD_START 31
-#define V_DFITRCMD_START(x) ((x) << S_DFITRCMD_START)
-#define F_DFITRCMD_START V_DFITRCMD_START(1U)
-
-#define S_DFITRCMD_EN 4
-#define M_DFITRCMD_EN 0x1ffU
-#define V_DFITRCMD_EN(x) ((x) << S_DFITRCMD_EN)
-#define G_DFITRCMD_EN(x) (((x) >> S_DFITRCMD_EN) & M_DFITRCMD_EN)
-
-#define S_DFITRCMD_OPCODE 0
-#define M_DFITRCMD_OPCODE 0x3U
-#define V_DFITRCMD_OPCODE(x) ((x) << S_DFITRCMD_OPCODE)
-#define G_DFITRCMD_OPCODE(x) (((x) >> S_DFITRCMD_OPCODE) & M_DFITRCMD_OPCODE)
-
-#define A_MC_UPCTL_IPVR 0x403f8
-#define A_MC_UPCTL_IPTR 0x403fc
-#define A_MC_P_DDRPHY_RST_CTRL 0x41300
-
-#define S_PHY_DRAM_WL 17
-#define M_PHY_DRAM_WL 0x1fU
-#define V_PHY_DRAM_WL(x) ((x) << S_PHY_DRAM_WL)
-#define G_PHY_DRAM_WL(x) (((x) >> S_PHY_DRAM_WL) & M_PHY_DRAM_WL)
-
-#define S_PHY_CALIB_DONE 5
-#define V_PHY_CALIB_DONE(x) ((x) << S_PHY_CALIB_DONE)
-#define F_PHY_CALIB_DONE V_PHY_CALIB_DONE(1U)
-
-#define S_CTL_CAL_REQ 4
-#define V_CTL_CAL_REQ(x) ((x) << S_CTL_CAL_REQ)
-#define F_CTL_CAL_REQ V_CTL_CAL_REQ(1U)
-
-#define S_CTL_CKE 3
-#define V_CTL_CKE(x) ((x) << S_CTL_CKE)
-#define F_CTL_CKE V_CTL_CKE(1U)
-
-#define S_CTL_RST_N 2
-#define V_CTL_RST_N(x) ((x) << S_CTL_RST_N)
-#define F_CTL_RST_N V_CTL_RST_N(1U)
-
-#define A_MC_P_PERFORMANCE_CTRL 0x41304
-#define A_MC_P_ECC_CTRL 0x41308
-#define A_MC_P_PAR_ENABLE 0x4130c
-#define A_MC_P_PAR_CAUSE 0x41310
-#define A_MC_P_INT_ENABLE 0x41314
-#define A_MC_P_INT_CAUSE 0x41318
-#define A_MC_P_ECC_STATUS 0x4131c
-#define A_MC_P_PHY_CTRL 0x41320
-#define A_MC_P_STATIC_CFG_STATUS 0x41324
-
-#define S_STATIC_AWEN 23
-#define V_STATIC_AWEN(x) ((x) << S_STATIC_AWEN)
-#define F_STATIC_AWEN V_STATIC_AWEN(1U)
-
-#define S_STATIC_SWLAT 18
-#define M_STATIC_SWLAT 0x1fU
-#define V_STATIC_SWLAT(x) ((x) << S_STATIC_SWLAT)
-#define G_STATIC_SWLAT(x) (((x) >> S_STATIC_SWLAT) & M_STATIC_SWLAT)
-
-#define S_STATIC_WLAT 17
-#define V_STATIC_WLAT(x) ((x) << S_STATIC_WLAT)
-#define F_STATIC_WLAT V_STATIC_WLAT(1U)
-
-#define S_STATIC_ALIGN 16
-#define V_STATIC_ALIGN(x) ((x) << S_STATIC_ALIGN)
-#define F_STATIC_ALIGN V_STATIC_ALIGN(1U)
-
-#define S_STATIC_SLAT 11
-#define M_STATIC_SLAT 0x1fU
-#define V_STATIC_SLAT(x) ((x) << S_STATIC_SLAT)
-#define G_STATIC_SLAT(x) (((x) >> S_STATIC_SLAT) & M_STATIC_SLAT)
-
-#define S_STATIC_LAT 10
-#define V_STATIC_LAT(x) ((x) << S_STATIC_LAT)
-#define F_STATIC_LAT V_STATIC_LAT(1U)
-
-#define A_MC_P_CORE_PCTL_STAT 0x41328
-#define A_MC_P_DEBUG_CNT 0x4132c
-#define A_MC_CE_ERR_DATA_RDATA 0x41330
-#define A_MC_CE_COR_DATA_RDATA 0x41350
-#define A_MC_UE_ERR_DATA_RDATA 0x41370
-#define A_MC_UE_COR_DATA_RDATA 0x41390
-#define A_MC_CE_ADDR 0x413b0
-#define A_MC_UE_ADDR 0x413b4
-#define A_MC_P_DEEP_SLEEP 0x413b8
-
-#define S_SLEEPSTATUS 1
-#define V_SLEEPSTATUS(x) ((x) << S_SLEEPSTATUS)
-#define F_SLEEPSTATUS V_SLEEPSTATUS(1U)
-
-#define S_SLEEPREQ 0
-#define V_SLEEPREQ(x) ((x) << S_SLEEPREQ)
-#define F_SLEEPREQ V_SLEEPREQ(1U)
-
-#define A_MC_P_FPGA_BONUS 0x413bc
-#define A_MC_P_DEBUG_CFG 0x413c0
-#define A_MC_P_DEBUG_RPT 0x413c4
-#define A_MC_P_BIST_CMD 0x41400
-
-#define S_BURST_LEN 16
-#define M_BURST_LEN 0x3U
-#define V_BURST_LEN(x) ((x) << S_BURST_LEN)
-#define G_BURST_LEN(x) (((x) >> S_BURST_LEN) & M_BURST_LEN)
-
-#define A_MC_P_BIST_CMD_ADDR 0x41404
-#define A_MC_P_BIST_CMD_LEN 0x41408
-#define A_MC_P_BIST_DATA_PATTERN 0x4140c
-#define A_MC_P_BIST_USER_WDATA0 0x41414
-#define A_MC_P_BIST_USER_WDATA1 0x41418
-#define A_MC_P_BIST_USER_WDATA2 0x4141c
-
-#define S_USER_DATA_MASK 8
-#define M_USER_DATA_MASK 0x1ffU
-#define V_USER_DATA_MASK(x) ((x) << S_USER_DATA_MASK)
-#define G_USER_DATA_MASK(x) (((x) >> S_USER_DATA_MASK) & M_USER_DATA_MASK)
-
-#define A_MC_P_BIST_NUM_ERR 0x41480
-#define A_MC_P_BIST_ERR_FIRST_ADDR 0x41484
-#define A_MC_P_BIST_STATUS_RDATA 0x41488
-#define A_MC_P_BIST_CRC_SEED 0x414d0
-#define A_MC_DDRPHY_DP18_DATA_BIT_ENABLE0 0x44000
-
-#define S_DATA_BIT_ENABLE_0_15 0
-#define M_DATA_BIT_ENABLE_0_15 0xffffU
-#define V_DATA_BIT_ENABLE_0_15(x) ((x) << S_DATA_BIT_ENABLE_0_15)
-#define G_DATA_BIT_ENABLE_0_15(x) (((x) >> S_DATA_BIT_ENABLE_0_15) & M_DATA_BIT_ENABLE_0_15)
-
-#define A_MC_DDRPHY_DP18_DATA_BIT_ENABLE1 0x44004
-
-#define S_DATA_BIT_ENABLE_16_23 8
-#define M_DATA_BIT_ENABLE_16_23 0xffU
-#define V_DATA_BIT_ENABLE_16_23(x) ((x) << S_DATA_BIT_ENABLE_16_23)
-#define G_DATA_BIT_ENABLE_16_23(x) (((x) >> S_DATA_BIT_ENABLE_16_23) & M_DATA_BIT_ENABLE_16_23)
-
-#define S_DFT_FORCE_OUTPUTS 7
-#define V_DFT_FORCE_OUTPUTS(x) ((x) << S_DFT_FORCE_OUTPUTS)
-#define F_DFT_FORCE_OUTPUTS V_DFT_FORCE_OUTPUTS(1U)
-
-#define S_DFT_PRBS7_GEN_EN 6
-#define V_DFT_PRBS7_GEN_EN(x) ((x) << S_DFT_PRBS7_GEN_EN)
-#define F_DFT_PRBS7_GEN_EN V_DFT_PRBS7_GEN_EN(1U)
-
-#define S_WRAPSEL 5
-#define V_WRAPSEL(x) ((x) << S_WRAPSEL)
-#define F_WRAPSEL V_WRAPSEL(1U)
-
-#define S_MRS_CMD_DATA_N0 3
-#define V_MRS_CMD_DATA_N0(x) ((x) << S_MRS_CMD_DATA_N0)
-#define F_MRS_CMD_DATA_N0 V_MRS_CMD_DATA_N0(1U)
-
-#define S_MRS_CMD_DATA_N1 2
-#define V_MRS_CMD_DATA_N1(x) ((x) << S_MRS_CMD_DATA_N1)
-#define F_MRS_CMD_DATA_N1 V_MRS_CMD_DATA_N1(1U)
-
-#define S_MRS_CMD_DATA_N2 1
-#define V_MRS_CMD_DATA_N2(x) ((x) << S_MRS_CMD_DATA_N2)
-#define F_MRS_CMD_DATA_N2 V_MRS_CMD_DATA_N2(1U)
-
-#define S_MRS_CMD_DATA_N3 0
-#define V_MRS_CMD_DATA_N3(x) ((x) << S_MRS_CMD_DATA_N3)
-#define F_MRS_CMD_DATA_N3 V_MRS_CMD_DATA_N3(1U)
-
-#define A_MC_DDRPHY_DP18_DATA_BIT_DIR0 0x44008
-
-#define S_DATA_BIT_DIR_0_15 0
-#define M_DATA_BIT_DIR_0_15 0xffffU
-#define V_DATA_BIT_DIR_0_15(x) ((x) << S_DATA_BIT_DIR_0_15)
-#define G_DATA_BIT_DIR_0_15(x) (((x) >> S_DATA_BIT_DIR_0_15) & M_DATA_BIT_DIR_0_15)
-
-#define A_MC_DDRPHY_DP18_DATA_BIT_DIR1 0x4400c
-
-#define S_DATA_BIT_DIR_16_23 8
-#define M_DATA_BIT_DIR_16_23 0xffU
-#define V_DATA_BIT_DIR_16_23(x) ((x) << S_DATA_BIT_DIR_16_23)
-#define G_DATA_BIT_DIR_16_23(x) (((x) >> S_DATA_BIT_DIR_16_23) & M_DATA_BIT_DIR_16_23)
-
-#define S_WL_ADVANCE_DISABLE 7
-#define V_WL_ADVANCE_DISABLE(x) ((x) << S_WL_ADVANCE_DISABLE)
-#define F_WL_ADVANCE_DISABLE V_WL_ADVANCE_DISABLE(1U)
-
-#define S_DISABLE_PING_PONG 6
-#define V_DISABLE_PING_PONG(x) ((x) << S_DISABLE_PING_PONG)
-#define F_DISABLE_PING_PONG V_DISABLE_PING_PONG(1U)
-
-#define S_DELAY_PING_PONG_HALF 5
-#define V_DELAY_PING_PONG_HALF(x) ((x) << S_DELAY_PING_PONG_HALF)
-#define F_DELAY_PING_PONG_HALF V_DELAY_PING_PONG_HALF(1U)
-
-#define S_ADVANCE_PING_PONG 4
-#define V_ADVANCE_PING_PONG(x) ((x) << S_ADVANCE_PING_PONG)
-#define F_ADVANCE_PING_PONG V_ADVANCE_PING_PONG(1U)
-
-#define S_ATEST_MUX_CTL0 3
-#define V_ATEST_MUX_CTL0(x) ((x) << S_ATEST_MUX_CTL0)
-#define F_ATEST_MUX_CTL0 V_ATEST_MUX_CTL0(1U)
-
-#define S_ATEST_MUX_CTL1 2
-#define V_ATEST_MUX_CTL1(x) ((x) << S_ATEST_MUX_CTL1)
-#define F_ATEST_MUX_CTL1 V_ATEST_MUX_CTL1(1U)
-
-#define S_ATEST_MUX_CTL2 1
-#define V_ATEST_MUX_CTL2(x) ((x) << S_ATEST_MUX_CTL2)
-#define F_ATEST_MUX_CTL2 V_ATEST_MUX_CTL2(1U)
-
-#define S_ATEST_MUX_CTL3 0
-#define V_ATEST_MUX_CTL3(x) ((x) << S_ATEST_MUX_CTL3)
-#define F_ATEST_MUX_CTL3 V_ATEST_MUX_CTL3(1U)
-
-#define A_MC_DDRPHY_DP18_READ_CLOCK_RANK_PAIR 0x44010
-
-#define S_QUAD0_CLK16_BIT0 15
-#define V_QUAD0_CLK16_BIT0(x) ((x) << S_QUAD0_CLK16_BIT0)
-#define F_QUAD0_CLK16_BIT0 V_QUAD0_CLK16_BIT0(1U)
-
-#define S_QUAD1_CLK16_BIT1 14
-#define V_QUAD1_CLK16_BIT1(x) ((x) << S_QUAD1_CLK16_BIT1)
-#define F_QUAD1_CLK16_BIT1 V_QUAD1_CLK16_BIT1(1U)
-
-#define S_QUAD2_CLK16_BIT2 13
-#define V_QUAD2_CLK16_BIT2(x) ((x) << S_QUAD2_CLK16_BIT2)
-#define F_QUAD2_CLK16_BIT2 V_QUAD2_CLK16_BIT2(1U)
-
-#define S_QUAD3_CLK16_BIT3 12
-#define V_QUAD3_CLK16_BIT3(x) ((x) << S_QUAD3_CLK16_BIT3)
-#define F_QUAD3_CLK16_BIT3 V_QUAD3_CLK16_BIT3(1U)
-
-#define S_QUAD0_CLK18_BIT4 11
-#define V_QUAD0_CLK18_BIT4(x) ((x) << S_QUAD0_CLK18_BIT4)
-#define F_QUAD0_CLK18_BIT4 V_QUAD0_CLK18_BIT4(1U)
-
-#define S_QUAD1_CLK18_BIT5 10
-#define V_QUAD1_CLK18_BIT5(x) ((x) << S_QUAD1_CLK18_BIT5)
-#define F_QUAD1_CLK18_BIT5 V_QUAD1_CLK18_BIT5(1U)
-
-#define S_QUAD2_CLK20_BIT6 9
-#define V_QUAD2_CLK20_BIT6(x) ((x) << S_QUAD2_CLK20_BIT6)
-#define F_QUAD2_CLK20_BIT6 V_QUAD2_CLK20_BIT6(1U)
-
-#define S_QUAD3_CLK20_BIT7 8
-#define V_QUAD3_CLK20_BIT7(x) ((x) << S_QUAD3_CLK20_BIT7)
-#define F_QUAD3_CLK20_BIT7 V_QUAD3_CLK20_BIT7(1U)
-
-#define S_QUAD2_CLK22_BIT8 7
-#define V_QUAD2_CLK22_BIT8(x) ((x) << S_QUAD2_CLK22_BIT8)
-#define F_QUAD2_CLK22_BIT8 V_QUAD2_CLK22_BIT8(1U)
-
-#define S_QUAD3_CLK22_BIT9 6
-#define V_QUAD3_CLK22_BIT9(x) ((x) << S_QUAD3_CLK22_BIT9)
-#define F_QUAD3_CLK22_BIT9 V_QUAD3_CLK22_BIT9(1U)
-
-#define S_CLK16_SINGLE_ENDED_BIT10 5
-#define V_CLK16_SINGLE_ENDED_BIT10(x) ((x) << S_CLK16_SINGLE_ENDED_BIT10)
-#define F_CLK16_SINGLE_ENDED_BIT10 V_CLK16_SINGLE_ENDED_BIT10(1U)
-
-#define S_CLK18_SINGLE_ENDED_BIT11 4
-#define V_CLK18_SINGLE_ENDED_BIT11(x) ((x) << S_CLK18_SINGLE_ENDED_BIT11)
-#define F_CLK18_SINGLE_ENDED_BIT11 V_CLK18_SINGLE_ENDED_BIT11(1U)
-
-#define S_CLK20_SINGLE_ENDED_BIT12 3
-#define V_CLK20_SINGLE_ENDED_BIT12(x) ((x) << S_CLK20_SINGLE_ENDED_BIT12)
-#define F_CLK20_SINGLE_ENDED_BIT12 V_CLK20_SINGLE_ENDED_BIT12(1U)
-
-#define S_CLK22_SINGLE_ENDED_BIT13 2
-#define V_CLK22_SINGLE_ENDED_BIT13(x) ((x) << S_CLK22_SINGLE_ENDED_BIT13)
-#define F_CLK22_SINGLE_ENDED_BIT13 V_CLK22_SINGLE_ENDED_BIT13(1U)
-
-#define A_MC_DDRPHY_DP18_WRCLK_EN_RP 0x44014
-
-#define S_QUAD2_CLK18_BIT14 1
-#define V_QUAD2_CLK18_BIT14(x) ((x) << S_QUAD2_CLK18_BIT14)
-#define F_QUAD2_CLK18_BIT14 V_QUAD2_CLK18_BIT14(1U)
-
-#define S_QUAD3_CLK18_BIT15 0
-#define V_QUAD3_CLK18_BIT15(x) ((x) << S_QUAD3_CLK18_BIT15)
-#define F_QUAD3_CLK18_BIT15 V_QUAD3_CLK18_BIT15(1U)
-
-#define A_MC_DDRPHY_DP18_RX_PEAK_AMP 0x44018
-
-#define S_PEAK_AMP_CTL_SIDE0 13
-#define M_PEAK_AMP_CTL_SIDE0 0x7U
-#define V_PEAK_AMP_CTL_SIDE0(x) ((x) << S_PEAK_AMP_CTL_SIDE0)
-#define G_PEAK_AMP_CTL_SIDE0(x) (((x) >> S_PEAK_AMP_CTL_SIDE0) & M_PEAK_AMP_CTL_SIDE0)
-
-#define S_PEAK_AMP_CTL_SIDE1 9
-#define M_PEAK_AMP_CTL_SIDE1 0x7U
-#define V_PEAK_AMP_CTL_SIDE1(x) ((x) << S_PEAK_AMP_CTL_SIDE1)
-#define G_PEAK_AMP_CTL_SIDE1(x) (((x) >> S_PEAK_AMP_CTL_SIDE1) & M_PEAK_AMP_CTL_SIDE1)
-
-#define S_SXMCVREF_0_3 4
-#define M_SXMCVREF_0_3 0xfU
-#define V_SXMCVREF_0_3(x) ((x) << S_SXMCVREF_0_3)
-#define G_SXMCVREF_0_3(x) (((x) >> S_SXMCVREF_0_3) & M_SXMCVREF_0_3)
-
-#define S_SXPODVREF 3
-#define V_SXPODVREF(x) ((x) << S_SXPODVREF)
-#define F_SXPODVREF V_SXPODVREF(1U)
-
-#define S_DISABLE_TERMINATION 2
-#define V_DISABLE_TERMINATION(x) ((x) << S_DISABLE_TERMINATION)
-#define F_DISABLE_TERMINATION V_DISABLE_TERMINATION(1U)
-
-#define S_READ_CENTERING_MODE 0
-#define M_READ_CENTERING_MODE 0x3U
-#define V_READ_CENTERING_MODE(x) ((x) << S_READ_CENTERING_MODE)
-#define G_READ_CENTERING_MODE(x) (((x) >> S_READ_CENTERING_MODE) & M_READ_CENTERING_MODE)
-
-#define A_MC_DDRPHY_DP18_SYSCLK_PR 0x4401c
-
-#define S_SYSCLK_PHASE_ALIGN_RESET 6
-#define V_SYSCLK_PHASE_ALIGN_RESET(x) ((x) << S_SYSCLK_PHASE_ALIGN_RESET)
-#define F_SYSCLK_PHASE_ALIGN_RESET V_SYSCLK_PHASE_ALIGN_RESET(1U)
-
-#define A_MC_DDRPHY_DP18_DFT_DIG_EYE 0x44020
-
-#define S_DIGITAL_EYE_EN 15
-#define V_DIGITAL_EYE_EN(x) ((x) << S_DIGITAL_EYE_EN)
-#define F_DIGITAL_EYE_EN V_DIGITAL_EYE_EN(1U)
-
-#define S_BUMP 14
-#define V_BUMP(x) ((x) << S_BUMP)
-#define F_BUMP V_BUMP(1U)
-
-#define S_TRIG_PERIOD 13
-#define V_TRIG_PERIOD(x) ((x) << S_TRIG_PERIOD)
-#define F_TRIG_PERIOD V_TRIG_PERIOD(1U)
-
-#define S_CNTL_POL 12
-#define V_CNTL_POL(x) ((x) << S_CNTL_POL)
-#define F_CNTL_POL V_CNTL_POL(1U)
-
-#define S_CNTL_SRC 8
-#define V_CNTL_SRC(x) ((x) << S_CNTL_SRC)
-#define F_CNTL_SRC V_CNTL_SRC(1U)
-
-#define S_DIGITAL_EYE_VALUE 0
-#define M_DIGITAL_EYE_VALUE 0xffU
-#define V_DIGITAL_EYE_VALUE(x) ((x) << S_DIGITAL_EYE_VALUE)
-#define G_DIGITAL_EYE_VALUE(x) (((x) >> S_DIGITAL_EYE_VALUE) & M_DIGITAL_EYE_VALUE)
-
-#define A_MC_DDRPHY_DP18_DQS_RD_PHASE_SELECT_RANK_PAIR 0x44024
-
-#define S_DQSCLK_SELECT0 14
-#define M_DQSCLK_SELECT0 0x3U
-#define V_DQSCLK_SELECT0(x) ((x) << S_DQSCLK_SELECT0)
-#define G_DQSCLK_SELECT0(x) (((x) >> S_DQSCLK_SELECT0) & M_DQSCLK_SELECT0)
-
-#define S_RDCLK_SELECT0 12
-#define M_RDCLK_SELECT0 0x3U
-#define V_RDCLK_SELECT0(x) ((x) << S_RDCLK_SELECT0)
-#define G_RDCLK_SELECT0(x) (((x) >> S_RDCLK_SELECT0) & M_RDCLK_SELECT0)
-
-#define S_DQSCLK_SELECT1 10
-#define M_DQSCLK_SELECT1 0x3U
-#define V_DQSCLK_SELECT1(x) ((x) << S_DQSCLK_SELECT1)
-#define G_DQSCLK_SELECT1(x) (((x) >> S_DQSCLK_SELECT1) & M_DQSCLK_SELECT1)
-
-#define S_RDCLK_SELECT1 8
-#define M_RDCLK_SELECT1 0x3U
-#define V_RDCLK_SELECT1(x) ((x) << S_RDCLK_SELECT1)
-#define G_RDCLK_SELECT1(x) (((x) >> S_RDCLK_SELECT1) & M_RDCLK_SELECT1)
-
-#define S_DQSCLK_SELECT2 6
-#define M_DQSCLK_SELECT2 0x3U
-#define V_DQSCLK_SELECT2(x) ((x) << S_DQSCLK_SELECT2)
-#define G_DQSCLK_SELECT2(x) (((x) >> S_DQSCLK_SELECT2) & M_DQSCLK_SELECT2)
-
-#define S_RDCLK_SELECT2 4
-#define M_RDCLK_SELECT2 0x3U
-#define V_RDCLK_SELECT2(x) ((x) << S_RDCLK_SELECT2)
-#define G_RDCLK_SELECT2(x) (((x) >> S_RDCLK_SELECT2) & M_RDCLK_SELECT2)
-
-#define S_DQSCLK_SELECT3 2
-#define M_DQSCLK_SELECT3 0x3U
-#define V_DQSCLK_SELECT3(x) ((x) << S_DQSCLK_SELECT3)
-#define G_DQSCLK_SELECT3(x) (((x) >> S_DQSCLK_SELECT3) & M_DQSCLK_SELECT3)
-
-#define S_RDCLK_SELECT3 0
-#define M_RDCLK_SELECT3 0x3U
-#define V_RDCLK_SELECT3(x) ((x) << S_RDCLK_SELECT3)
-#define G_RDCLK_SELECT3(x) (((x) >> S_RDCLK_SELECT3) & M_RDCLK_SELECT3)
-
-#define A_MC_DDRPHY_DP18_DRIFT_LIMITS 0x44028
-
-#define S_MIN_RD_EYE_SIZE 8
-#define M_MIN_RD_EYE_SIZE 0x3fU
-#define V_MIN_RD_EYE_SIZE(x) ((x) << S_MIN_RD_EYE_SIZE)
-#define G_MIN_RD_EYE_SIZE(x) (((x) >> S_MIN_RD_EYE_SIZE) & M_MIN_RD_EYE_SIZE)
-
-#define S_MAX_DQS_DRIFT 0
-#define M_MAX_DQS_DRIFT 0x3fU
-#define V_MAX_DQS_DRIFT(x) ((x) << S_MAX_DQS_DRIFT)
-#define G_MAX_DQS_DRIFT(x) (((x) >> S_MAX_DQS_DRIFT) & M_MAX_DQS_DRIFT)
-
-#define A_MC_DDRPHY_DP18_DEBUG_SEL 0x4402c
-
-#define S_HS_PROBE_A_SEL 11
-#define M_HS_PROBE_A_SEL 0x1fU
-#define V_HS_PROBE_A_SEL(x) ((x) << S_HS_PROBE_A_SEL)
-#define G_HS_PROBE_A_SEL(x) (((x) >> S_HS_PROBE_A_SEL) & M_HS_PROBE_A_SEL)
-
-#define S_HS_PROBE_B_SEL 6
-#define M_HS_PROBE_B_SEL 0x1fU
-#define V_HS_PROBE_B_SEL(x) ((x) << S_HS_PROBE_B_SEL)
-#define G_HS_PROBE_B_SEL(x) (((x) >> S_HS_PROBE_B_SEL) & M_HS_PROBE_B_SEL)
-
-#define S_RD_DEBUG_SEL 3
-#define M_RD_DEBUG_SEL 0x7U
-#define V_RD_DEBUG_SEL(x) ((x) << S_RD_DEBUG_SEL)
-#define G_RD_DEBUG_SEL(x) (((x) >> S_RD_DEBUG_SEL) & M_RD_DEBUG_SEL)
-
-#define S_WR_DEBUG_SEL 0
-#define M_WR_DEBUG_SEL 0x7U
-#define V_WR_DEBUG_SEL(x) ((x) << S_WR_DEBUG_SEL)
-#define G_WR_DEBUG_SEL(x) (((x) >> S_WR_DEBUG_SEL) & M_WR_DEBUG_SEL)
-
-#define A_MC_DDRPHY_DP18_READ_DELAY_OFFSET0_RANK_PAIR 0x44030
-
-#define S_OFFSET_BITS1_7 8
-#define M_OFFSET_BITS1_7 0x7fU
-#define V_OFFSET_BITS1_7(x) ((x) << S_OFFSET_BITS1_7)
-#define G_OFFSET_BITS1_7(x) (((x) >> S_OFFSET_BITS1_7) & M_OFFSET_BITS1_7)
-
-#define S_OFFSET_BITS9_15 0
-#define M_OFFSET_BITS9_15 0x7fU
-#define V_OFFSET_BITS9_15(x) ((x) << S_OFFSET_BITS9_15)
-#define G_OFFSET_BITS9_15(x) (((x) >> S_OFFSET_BITS9_15) & M_OFFSET_BITS9_15)
-
-#define A_MC_DDRPHY_DP18_READ_DELAY_OFFSET1_RANK_PAIR 0x44034
-#define A_MC_DDRPHY_DP18_RD_LVL_STATUS0 0x44038
-
-#define S_LEADING_EDGE_NOT_FOUND_0 0
-#define M_LEADING_EDGE_NOT_FOUND_0 0xffffU
-#define V_LEADING_EDGE_NOT_FOUND_0(x) ((x) << S_LEADING_EDGE_NOT_FOUND_0)
-#define G_LEADING_EDGE_NOT_FOUND_0(x) (((x) >> S_LEADING_EDGE_NOT_FOUND_0) & M_LEADING_EDGE_NOT_FOUND_0)
-
-#define A_MC_DDRPHY_DP18_RD_LVL_STATUS1 0x4403c
-
-#define S_LEADING_EDGE_NOT_FOUND_1 8
-#define M_LEADING_EDGE_NOT_FOUND_1 0xffU
-#define V_LEADING_EDGE_NOT_FOUND_1(x) ((x) << S_LEADING_EDGE_NOT_FOUND_1)
-#define G_LEADING_EDGE_NOT_FOUND_1(x) (((x) >> S_LEADING_EDGE_NOT_FOUND_1) & M_LEADING_EDGE_NOT_FOUND_1)
-
-#define A_MC_DDRPHY_DP18_RD_LVL_STATUS2 0x44040
-
-#define S_TRAILING_EDGE_NOT_FOUND 0
-#define M_TRAILING_EDGE_NOT_FOUND 0xffffU
-#define V_TRAILING_EDGE_NOT_FOUND(x) ((x) << S_TRAILING_EDGE_NOT_FOUND)
-#define G_TRAILING_EDGE_NOT_FOUND(x) (((x) >> S_TRAILING_EDGE_NOT_FOUND) & M_TRAILING_EDGE_NOT_FOUND)
-
-#define A_MC_DDRPHY_DP18_RD_LVL_STATUS3 0x44044
-
-#define S_TRAILING_EDGE_NOT_FOUND_16_23 8
-#define M_TRAILING_EDGE_NOT_FOUND_16_23 0xffU
-#define V_TRAILING_EDGE_NOT_FOUND_16_23(x) ((x) << S_TRAILING_EDGE_NOT_FOUND_16_23)
-#define G_TRAILING_EDGE_NOT_FOUND_16_23(x) (((x) >> S_TRAILING_EDGE_NOT_FOUND_16_23) & M_TRAILING_EDGE_NOT_FOUND_16_23)
-
-#define A_MC_DDRPHY_DP18_RD_DIA_CONFIG5 0x44048
-
-#define S_DYN_POWER_CNTL_EN 15
-#define V_DYN_POWER_CNTL_EN(x) ((x) << S_DYN_POWER_CNTL_EN)
-#define F_DYN_POWER_CNTL_EN V_DYN_POWER_CNTL_EN(1U)
-
-#define S_DYN_MCTERM_CNTL_EN 14
-#define V_DYN_MCTERM_CNTL_EN(x) ((x) << S_DYN_MCTERM_CNTL_EN)
-#define F_DYN_MCTERM_CNTL_EN V_DYN_MCTERM_CNTL_EN(1U)
-
-#define S_DYN_RX_GATE_CNTL_EN 13
-#define V_DYN_RX_GATE_CNTL_EN(x) ((x) << S_DYN_RX_GATE_CNTL_EN)
-#define F_DYN_RX_GATE_CNTL_EN V_DYN_RX_GATE_CNTL_EN(1U)
-
-#define S_CALGATE_ON 12
-#define V_CALGATE_ON(x) ((x) << S_CALGATE_ON)
-#define F_CALGATE_ON V_CALGATE_ON(1U)
-
-#define S_PER_RDCLK_UPDATE_DIS 11
-#define V_PER_RDCLK_UPDATE_DIS(x) ((x) << S_PER_RDCLK_UPDATE_DIS)
-#define F_PER_RDCLK_UPDATE_DIS V_PER_RDCLK_UPDATE_DIS(1U)
-
-#define A_MC_DDRPHY_DP18_DQS_GATE_DELAY_RP 0x4404c
-
-#define S_DQS_GATE_DELAY_N0 12
-#define M_DQS_GATE_DELAY_N0 0x7U
-#define V_DQS_GATE_DELAY_N0(x) ((x) << S_DQS_GATE_DELAY_N0)
-#define G_DQS_GATE_DELAY_N0(x) (((x) >> S_DQS_GATE_DELAY_N0) & M_DQS_GATE_DELAY_N0)
-
-#define S_DQS_GATE_DELAY_N1 8
-#define M_DQS_GATE_DELAY_N1 0x7U
-#define V_DQS_GATE_DELAY_N1(x) ((x) << S_DQS_GATE_DELAY_N1)
-#define G_DQS_GATE_DELAY_N1(x) (((x) >> S_DQS_GATE_DELAY_N1) & M_DQS_GATE_DELAY_N1)
-
-#define S_DQS_GATE_DELAY_N2 4
-#define M_DQS_GATE_DELAY_N2 0x7U
-#define V_DQS_GATE_DELAY_N2(x) ((x) << S_DQS_GATE_DELAY_N2)
-#define G_DQS_GATE_DELAY_N2(x) (((x) >> S_DQS_GATE_DELAY_N2) & M_DQS_GATE_DELAY_N2)
-
-#define S_DQS_GATE_DELAY_N3 0
-#define M_DQS_GATE_DELAY_N3 0x7U
-#define V_DQS_GATE_DELAY_N3(x) ((x) << S_DQS_GATE_DELAY_N3)
-#define G_DQS_GATE_DELAY_N3(x) (((x) >> S_DQS_GATE_DELAY_N3) & M_DQS_GATE_DELAY_N3)
-
-#define A_MC_DDRPHY_DP18_RD_STATUS0 0x44050
-
-#define S_NO_EYE_DETECTED 15
-#define V_NO_EYE_DETECTED(x) ((x) << S_NO_EYE_DETECTED)
-#define F_NO_EYE_DETECTED V_NO_EYE_DETECTED(1U)
-
-#define S_LEADING_EDGE_FOUND 14
-#define V_LEADING_EDGE_FOUND(x) ((x) << S_LEADING_EDGE_FOUND)
-#define F_LEADING_EDGE_FOUND V_LEADING_EDGE_FOUND(1U)
-
-#define S_TRAILING_EDGE_FOUND 13
-#define V_TRAILING_EDGE_FOUND(x) ((x) << S_TRAILING_EDGE_FOUND)
-#define F_TRAILING_EDGE_FOUND V_TRAILING_EDGE_FOUND(1U)
-
-#define S_INCOMPLETE_RD_CAL_N0 12
-#define V_INCOMPLETE_RD_CAL_N0(x) ((x) << S_INCOMPLETE_RD_CAL_N0)
-#define F_INCOMPLETE_RD_CAL_N0 V_INCOMPLETE_RD_CAL_N0(1U)
-
-#define S_INCOMPLETE_RD_CAL_N1 11
-#define V_INCOMPLETE_RD_CAL_N1(x) ((x) << S_INCOMPLETE_RD_CAL_N1)
-#define F_INCOMPLETE_RD_CAL_N1 V_INCOMPLETE_RD_CAL_N1(1U)
-
-#define S_INCOMPLETE_RD_CAL_N2 10
-#define V_INCOMPLETE_RD_CAL_N2(x) ((x) << S_INCOMPLETE_RD_CAL_N2)
-#define F_INCOMPLETE_RD_CAL_N2 V_INCOMPLETE_RD_CAL_N2(1U)
-
-#define S_INCOMPLETE_RD_CAL_N3 9
-#define V_INCOMPLETE_RD_CAL_N3(x) ((x) << S_INCOMPLETE_RD_CAL_N3)
-#define F_INCOMPLETE_RD_CAL_N3 V_INCOMPLETE_RD_CAL_N3(1U)
-
-#define S_COARSE_PATTERN_ERR_N0 8
-#define V_COARSE_PATTERN_ERR_N0(x) ((x) << S_COARSE_PATTERN_ERR_N0)
-#define F_COARSE_PATTERN_ERR_N0 V_COARSE_PATTERN_ERR_N0(1U)
-
-#define S_COARSE_PATTERN_ERR_N1 7
-#define V_COARSE_PATTERN_ERR_N1(x) ((x) << S_COARSE_PATTERN_ERR_N1)
-#define F_COARSE_PATTERN_ERR_N1 V_COARSE_PATTERN_ERR_N1(1U)
-
-#define S_COARSE_PATTERN_ERR_N2 6
-#define V_COARSE_PATTERN_ERR_N2(x) ((x) << S_COARSE_PATTERN_ERR_N2)
-#define F_COARSE_PATTERN_ERR_N2 V_COARSE_PATTERN_ERR_N2(1U)
-
-#define S_COARSE_PATTERN_ERR_N3 5
-#define V_COARSE_PATTERN_ERR_N3(x) ((x) << S_COARSE_PATTERN_ERR_N3)
-#define F_COARSE_PATTERN_ERR_N3 V_COARSE_PATTERN_ERR_N3(1U)
-
-#define S_EYE_CLIPPING 4
-#define V_EYE_CLIPPING(x) ((x) << S_EYE_CLIPPING)
-#define F_EYE_CLIPPING V_EYE_CLIPPING(1U)
-
-#define S_NO_DQS 3
-#define V_NO_DQS(x) ((x) << S_NO_DQS)
-#define F_NO_DQS V_NO_DQS(1U)
-
-#define S_NO_LOCK 2
-#define V_NO_LOCK(x) ((x) << S_NO_LOCK)
-#define F_NO_LOCK V_NO_LOCK(1U)
-
-#define S_DRIFT_ERROR 1
-#define V_DRIFT_ERROR(x) ((x) << S_DRIFT_ERROR)
-#define F_DRIFT_ERROR V_DRIFT_ERROR(1U)
-
-#define S_MIN_EYE 0
-#define V_MIN_EYE(x) ((x) << S_MIN_EYE)
-#define F_MIN_EYE V_MIN_EYE(1U)
-
-#define A_MC_DDRPHY_DP18_RD_ERROR_MASK0 0x44054
-
-#define S_NO_EYE_DETECTED_MASK 15
-#define V_NO_EYE_DETECTED_MASK(x) ((x) << S_NO_EYE_DETECTED_MASK)
-#define F_NO_EYE_DETECTED_MASK V_NO_EYE_DETECTED_MASK(1U)
-
-#define S_LEADING_EDGE_FOUND_MASK 14
-#define V_LEADING_EDGE_FOUND_MASK(x) ((x) << S_LEADING_EDGE_FOUND_MASK)
-#define F_LEADING_EDGE_FOUND_MASK V_LEADING_EDGE_FOUND_MASK(1U)
-
-#define S_TRAILING_EDGE_FOUND_MASK 13
-#define V_TRAILING_EDGE_FOUND_MASK(x) ((x) << S_TRAILING_EDGE_FOUND_MASK)
-#define F_TRAILING_EDGE_FOUND_MASK V_TRAILING_EDGE_FOUND_MASK(1U)
-
-#define S_INCOMPLETE_RD_CAL_N0_MASK 12
-#define V_INCOMPLETE_RD_CAL_N0_MASK(x) ((x) << S_INCOMPLETE_RD_CAL_N0_MASK)
-#define F_INCOMPLETE_RD_CAL_N0_MASK V_INCOMPLETE_RD_CAL_N0_MASK(1U)
-
-#define S_INCOMPLETE_RD_CAL_N1_MASK 11
-#define V_INCOMPLETE_RD_CAL_N1_MASK(x) ((x) << S_INCOMPLETE_RD_CAL_N1_MASK)
-#define F_INCOMPLETE_RD_CAL_N1_MASK V_INCOMPLETE_RD_CAL_N1_MASK(1U)
-
-#define S_INCOMPLETE_RD_CAL_N2_MASK 10
-#define V_INCOMPLETE_RD_CAL_N2_MASK(x) ((x) << S_INCOMPLETE_RD_CAL_N2_MASK)
-#define F_INCOMPLETE_RD_CAL_N2_MASK V_INCOMPLETE_RD_CAL_N2_MASK(1U)
-
-#define S_INCOMPLETE_RD_CAL_N3_MASK 9
-#define V_INCOMPLETE_RD_CAL_N3_MASK(x) ((x) << S_INCOMPLETE_RD_CAL_N3_MASK)
-#define F_INCOMPLETE_RD_CAL_N3_MASK V_INCOMPLETE_RD_CAL_N3_MASK(1U)
-
-#define S_COARSE_PATTERN_ERR_N0_MASK 8
-#define V_COARSE_PATTERN_ERR_N0_MASK(x) ((x) << S_COARSE_PATTERN_ERR_N0_MASK)
-#define F_COARSE_PATTERN_ERR_N0_MASK V_COARSE_PATTERN_ERR_N0_MASK(1U)
-
-#define S_COARSE_PATTERN_ERR_N1_MASK 7
-#define V_COARSE_PATTERN_ERR_N1_MASK(x) ((x) << S_COARSE_PATTERN_ERR_N1_MASK)
-#define F_COARSE_PATTERN_ERR_N1_MASK V_COARSE_PATTERN_ERR_N1_MASK(1U)
-
-#define S_COARSE_PATTERN_ERR_N2_MASK 6
-#define V_COARSE_PATTERN_ERR_N2_MASK(x) ((x) << S_COARSE_PATTERN_ERR_N2_MASK)
-#define F_COARSE_PATTERN_ERR_N2_MASK V_COARSE_PATTERN_ERR_N2_MASK(1U)
-
-#define S_COARSE_PATTERN_ERR_N3_MASK 5
-#define V_COARSE_PATTERN_ERR_N3_MASK(x) ((x) << S_COARSE_PATTERN_ERR_N3_MASK)
-#define F_COARSE_PATTERN_ERR_N3_MASK V_COARSE_PATTERN_ERR_N3_MASK(1U)
-
-#define S_EYE_CLIPPING_MASK 4
-#define V_EYE_CLIPPING_MASK(x) ((x) << S_EYE_CLIPPING_MASK)
-#define F_EYE_CLIPPING_MASK V_EYE_CLIPPING_MASK(1U)
-
-#define S_NO_DQS_MASK 3
-#define V_NO_DQS_MASK(x) ((x) << S_NO_DQS_MASK)
-#define F_NO_DQS_MASK V_NO_DQS_MASK(1U)
-
-#define S_NO_LOCK_MASK 2
-#define V_NO_LOCK_MASK(x) ((x) << S_NO_LOCK_MASK)
-#define F_NO_LOCK_MASK V_NO_LOCK_MASK(1U)
-
-#define S_DRIFT_ERROR_MASK 1
-#define V_DRIFT_ERROR_MASK(x) ((x) << S_DRIFT_ERROR_MASK)
-#define F_DRIFT_ERROR_MASK V_DRIFT_ERROR_MASK(1U)
-
-#define S_MIN_EYE_MASK 0
-#define V_MIN_EYE_MASK(x) ((x) << S_MIN_EYE_MASK)
-#define F_MIN_EYE_MASK V_MIN_EYE_MASK(1U)
-
-#define A_MC_DDRPHY_DP18_WR_LVL_STATUS0 0x4405c
-
-#define S_CLK_LEVEL 14
-#define M_CLK_LEVEL 0x3U
-#define V_CLK_LEVEL(x) ((x) << S_CLK_LEVEL)
-#define G_CLK_LEVEL(x) (((x) >> S_CLK_LEVEL) & M_CLK_LEVEL)
-
-#define S_FINE_STEPPING 13
-#define V_FINE_STEPPING(x) ((x) << S_FINE_STEPPING)
-#define F_FINE_STEPPING V_FINE_STEPPING(1U)
-
-#define S_DONE 12
-#define V_DONE(x) ((x) << S_DONE)
-#define F_DONE V_DONE(1U)
-
-#define S_WL_ERR_CLK16_ST 11
-#define V_WL_ERR_CLK16_ST(x) ((x) << S_WL_ERR_CLK16_ST)
-#define F_WL_ERR_CLK16_ST V_WL_ERR_CLK16_ST(1U)
-
-#define S_WL_ERR_CLK18_ST 10
-#define V_WL_ERR_CLK18_ST(x) ((x) << S_WL_ERR_CLK18_ST)
-#define F_WL_ERR_CLK18_ST V_WL_ERR_CLK18_ST(1U)
-
-#define S_WL_ERR_CLK20_ST 9
-#define V_WL_ERR_CLK20_ST(x) ((x) << S_WL_ERR_CLK20_ST)
-#define F_WL_ERR_CLK20_ST V_WL_ERR_CLK20_ST(1U)
-
-#define S_WL_ERR_CLK22_ST 8
-#define V_WL_ERR_CLK22_ST(x) ((x) << S_WL_ERR_CLK22_ST)
-#define F_WL_ERR_CLK22_ST V_WL_ERR_CLK22_ST(1U)
-
-#define S_ZERO_DETECTED 7
-#define V_ZERO_DETECTED(x) ((x) << S_ZERO_DETECTED)
-#define F_ZERO_DETECTED V_ZERO_DETECTED(1U)
-
-#define A_MC_DDRPHY_DP18_WR_CNTR_STATUS0 0x44060
-
-#define S_BIT_CENTERED 11
-#define M_BIT_CENTERED 0x1fU
-#define V_BIT_CENTERED(x) ((x) << S_BIT_CENTERED)
-#define G_BIT_CENTERED(x) (((x) >> S_BIT_CENTERED) & M_BIT_CENTERED)
-
-#define S_SMALL_STEP_LEFT 10
-#define V_SMALL_STEP_LEFT(x) ((x) << S_SMALL_STEP_LEFT)
-#define F_SMALL_STEP_LEFT V_SMALL_STEP_LEFT(1U)
-
-#define S_BIG_STEP_RIGHT 9
-#define V_BIG_STEP_RIGHT(x) ((x) << S_BIG_STEP_RIGHT)
-#define F_BIG_STEP_RIGHT V_BIG_STEP_RIGHT(1U)
-
-#define S_MATCH_STEP_RIGHT 8
-#define V_MATCH_STEP_RIGHT(x) ((x) << S_MATCH_STEP_RIGHT)
-#define F_MATCH_STEP_RIGHT V_MATCH_STEP_RIGHT(1U)
-
-#define S_JUMP_BACK_RIGHT 7
-#define V_JUMP_BACK_RIGHT(x) ((x) << S_JUMP_BACK_RIGHT)
-#define F_JUMP_BACK_RIGHT V_JUMP_BACK_RIGHT(1U)
-
-#define S_SMALL_STEP_RIGHT 6
-#define V_SMALL_STEP_RIGHT(x) ((x) << S_SMALL_STEP_RIGHT)
-#define F_SMALL_STEP_RIGHT V_SMALL_STEP_RIGHT(1U)
-
-#define S_DDONE 5
-#define V_DDONE(x) ((x) << S_DDONE)
-#define F_DDONE V_DDONE(1U)
-
-#define A_MC_DDRPHY_DP18_WR_CNTR_STATUS1 0x44064
-
-#define S_FW_LEFT_SIDE 5
-#define M_FW_LEFT_SIDE 0x7ffU
-#define V_FW_LEFT_SIDE(x) ((x) << S_FW_LEFT_SIDE)
-#define G_FW_LEFT_SIDE(x) (((x) >> S_FW_LEFT_SIDE) & M_FW_LEFT_SIDE)
-
-#define A_MC_DDRPHY_DP18_WR_CNTR_STATUS2 0x44068
-
-#define S_FW_RIGHT_SIDE 5
-#define M_FW_RIGHT_SIDE 0x7ffU
-#define V_FW_RIGHT_SIDE(x) ((x) << S_FW_RIGHT_SIDE)
-#define G_FW_RIGHT_SIDE(x) (((x) >> S_FW_RIGHT_SIDE) & M_FW_RIGHT_SIDE)
-
-#define A_MC_DDRPHY_DP18_WR_ERROR0 0x4406c
-
-#define S_WL_ERR_CLK16 15
-#define V_WL_ERR_CLK16(x) ((x) << S_WL_ERR_CLK16)
-#define F_WL_ERR_CLK16 V_WL_ERR_CLK16(1U)
-
-#define S_WL_ERR_CLK18 14
-#define V_WL_ERR_CLK18(x) ((x) << S_WL_ERR_CLK18)
-#define F_WL_ERR_CLK18 V_WL_ERR_CLK18(1U)
-
-#define S_WL_ERR_CLK20 13
-#define V_WL_ERR_CLK20(x) ((x) << S_WL_ERR_CLK20)
-#define F_WL_ERR_CLK20 V_WL_ERR_CLK20(1U)
-
-#define S_WL_ERR_CLK22 12
-#define V_WL_ERR_CLK22(x) ((x) << S_WL_ERR_CLK22)
-#define F_WL_ERR_CLK22 V_WL_ERR_CLK22(1U)
-
-#define S_VALID_NS_BIG_L 7
-#define V_VALID_NS_BIG_L(x) ((x) << S_VALID_NS_BIG_L)
-#define F_VALID_NS_BIG_L V_VALID_NS_BIG_L(1U)
-
-#define S_INVALID_NS_SMALL_L 6
-#define V_INVALID_NS_SMALL_L(x) ((x) << S_INVALID_NS_SMALL_L)
-#define F_INVALID_NS_SMALL_L V_INVALID_NS_SMALL_L(1U)
-
-#define S_VALID_NS_BIG_R 5
-#define V_VALID_NS_BIG_R(x) ((x) << S_VALID_NS_BIG_R)
-#define F_VALID_NS_BIG_R V_VALID_NS_BIG_R(1U)
-
-#define S_INVALID_NS_BIG_R 4
-#define V_INVALID_NS_BIG_R(x) ((x) << S_INVALID_NS_BIG_R)
-#define F_INVALID_NS_BIG_R V_INVALID_NS_BIG_R(1U)
-
-#define S_VALID_NS_JUMP_BACK 3
-#define V_VALID_NS_JUMP_BACK(x) ((x) << S_VALID_NS_JUMP_BACK)
-#define F_VALID_NS_JUMP_BACK V_VALID_NS_JUMP_BACK(1U)
-
-#define S_INVALID_NS_SMALL_R 2
-#define V_INVALID_NS_SMALL_R(x) ((x) << S_INVALID_NS_SMALL_R)
-#define F_INVALID_NS_SMALL_R V_INVALID_NS_SMALL_R(1U)
-
-#define S_OFFSET_ERR 1
-#define V_OFFSET_ERR(x) ((x) << S_OFFSET_ERR)
-#define F_OFFSET_ERR V_OFFSET_ERR(1U)
-
-#define A_MC_DDRPHY_DP18_WR_ERROR_MASK0 0x44070
-
-#define S_WL_ERR_CLK16_MASK 15
-#define V_WL_ERR_CLK16_MASK(x) ((x) << S_WL_ERR_CLK16_MASK)
-#define F_WL_ERR_CLK16_MASK V_WL_ERR_CLK16_MASK(1U)
-
-#define S_WL_ERR_CLK18_MASK 14
-#define V_WL_ERR_CLK18_MASK(x) ((x) << S_WL_ERR_CLK18_MASK)
-#define F_WL_ERR_CLK18_MASK V_WL_ERR_CLK18_MASK(1U)
-
-#define S_WL_ERR_CLK20_MASK 13
-#define V_WL_ERR_CLK20_MASK(x) ((x) << S_WL_ERR_CLK20_MASK)
-#define F_WL_ERR_CLK20_MASK V_WL_ERR_CLK20_MASK(1U)
-
-#define S_WR_ERR_CLK22_MASK 12
-#define V_WR_ERR_CLK22_MASK(x) ((x) << S_WR_ERR_CLK22_MASK)
-#define F_WR_ERR_CLK22_MASK V_WR_ERR_CLK22_MASK(1U)
-
-#define S_VALID_NS_BIG_L_MASK 7
-#define V_VALID_NS_BIG_L_MASK(x) ((x) << S_VALID_NS_BIG_L_MASK)
-#define F_VALID_NS_BIG_L_MASK V_VALID_NS_BIG_L_MASK(1U)
-
-#define S_INVALID_NS_SMALL_L_MASK 6
-#define V_INVALID_NS_SMALL_L_MASK(x) ((x) << S_INVALID_NS_SMALL_L_MASK)
-#define F_INVALID_NS_SMALL_L_MASK V_INVALID_NS_SMALL_L_MASK(1U)
-
-#define S_VALID_NS_BIG_R_MASK 5
-#define V_VALID_NS_BIG_R_MASK(x) ((x) << S_VALID_NS_BIG_R_MASK)
-#define F_VALID_NS_BIG_R_MASK V_VALID_NS_BIG_R_MASK(1U)
-
-#define S_INVALID_NS_BIG_R_MASK 4
-#define V_INVALID_NS_BIG_R_MASK(x) ((x) << S_INVALID_NS_BIG_R_MASK)
-#define F_INVALID_NS_BIG_R_MASK V_INVALID_NS_BIG_R_MASK(1U)
-
-#define S_VALID_NS_JUMP_BACK_MASK 3
-#define V_VALID_NS_JUMP_BACK_MASK(x) ((x) << S_VALID_NS_JUMP_BACK_MASK)
-#define F_VALID_NS_JUMP_BACK_MASK V_VALID_NS_JUMP_BACK_MASK(1U)
-
-#define S_INVALID_NS_SMALL_R_MASK 2
-#define V_INVALID_NS_SMALL_R_MASK(x) ((x) << S_INVALID_NS_SMALL_R_MASK)
-#define F_INVALID_NS_SMALL_R_MASK V_INVALID_NS_SMALL_R_MASK(1U)
-
-#define S_OFFSET_ERR_MASK 1
-#define V_OFFSET_ERR_MASK(x) ((x) << S_OFFSET_ERR_MASK)
-#define F_OFFSET_ERR_MASK V_OFFSET_ERR_MASK(1U)
-
-#define A_MC_DDRPHY_DP18_DFT_WRAP_STATUS 0x44074
-
-#define S_CHECKER_RESET 14
-#define V_CHECKER_RESET(x) ((x) << S_CHECKER_RESET)
-#define F_CHECKER_RESET V_CHECKER_RESET(1U)
-
-#define S_DP18_DFT_SYNC 6
-#define M_DP18_DFT_SYNC 0x3fU
-#define V_DP18_DFT_SYNC(x) ((x) << S_DP18_DFT_SYNC)
-#define G_DP18_DFT_SYNC(x) (((x) >> S_DP18_DFT_SYNC) & M_DP18_DFT_SYNC)
-
-#define S_ERROR 0
-#define M_ERROR 0x3fU
-#define V_ERROR(x) ((x) << S_ERROR)
-#define G_ERROR(x) (((x) >> S_ERROR) & M_ERROR)
-
-#define A_MC_DDRPHY_DP18_RD_DIA_CONFIG0 0x44078
-#define A_MC_DDRPHY_DP18_DQSCLK_PR0_RANK_PAIR 0x440c0
-
-#define S_DQSCLK_ROT_CLK_N0_N2 8
-#define M_DQSCLK_ROT_CLK_N0_N2 0x7fU
-#define V_DQSCLK_ROT_CLK_N0_N2(x) ((x) << S_DQSCLK_ROT_CLK_N0_N2)
-#define G_DQSCLK_ROT_CLK_N0_N2(x) (((x) >> S_DQSCLK_ROT_CLK_N0_N2) & M_DQSCLK_ROT_CLK_N0_N2)
-
-#define S_DQSCLK_ROT_CLK_N1_N3 0
-#define M_DQSCLK_ROT_CLK_N1_N3 0x7fU
-#define V_DQSCLK_ROT_CLK_N1_N3(x) ((x) << S_DQSCLK_ROT_CLK_N1_N3)
-#define G_DQSCLK_ROT_CLK_N1_N3(x) (((x) >> S_DQSCLK_ROT_CLK_N1_N3) & M_DQSCLK_ROT_CLK_N1_N3)
-
-#define A_MC_DDRPHY_DP18_DQSCLK_PR1_RANK_PAIR 0x440c4
-#define A_MC_DDRPHY_DP18_PATTERN_POS_0 0x440c8
-
-#define S_MEMINTD00_POS 14
-#define M_MEMINTD00_POS 0x3U
-#define V_MEMINTD00_POS(x) ((x) << S_MEMINTD00_POS)
-#define G_MEMINTD00_POS(x) (((x) >> S_MEMINTD00_POS) & M_MEMINTD00_POS)
-
-#define S_MEMINTD01_PO 12
-#define M_MEMINTD01_PO 0x3U
-#define V_MEMINTD01_PO(x) ((x) << S_MEMINTD01_PO)
-#define G_MEMINTD01_PO(x) (((x) >> S_MEMINTD01_PO) & M_MEMINTD01_PO)
-
-#define S_MEMINTD02_POS 10
-#define M_MEMINTD02_POS 0x3U
-#define V_MEMINTD02_POS(x) ((x) << S_MEMINTD02_POS)
-#define G_MEMINTD02_POS(x) (((x) >> S_MEMINTD02_POS) & M_MEMINTD02_POS)
-
-#define S_MEMINTD03_POS 8
-#define M_MEMINTD03_POS 0x3U
-#define V_MEMINTD03_POS(x) ((x) << S_MEMINTD03_POS)
-#define G_MEMINTD03_POS(x) (((x) >> S_MEMINTD03_POS) & M_MEMINTD03_POS)
-
-#define S_MEMINTD04_POS 6
-#define M_MEMINTD04_POS 0x3U
-#define V_MEMINTD04_POS(x) ((x) << S_MEMINTD04_POS)
-#define G_MEMINTD04_POS(x) (((x) >> S_MEMINTD04_POS) & M_MEMINTD04_POS)
-
-#define S_MEMINTD05_POS 4
-#define M_MEMINTD05_POS 0x3U
-#define V_MEMINTD05_POS(x) ((x) << S_MEMINTD05_POS)
-#define G_MEMINTD05_POS(x) (((x) >> S_MEMINTD05_POS) & M_MEMINTD05_POS)
-
-#define S_MEMINTD06_POS 2
-#define M_MEMINTD06_POS 0x3U
-#define V_MEMINTD06_POS(x) ((x) << S_MEMINTD06_POS)
-#define G_MEMINTD06_POS(x) (((x) >> S_MEMINTD06_POS) & M_MEMINTD06_POS)
-
-#define S_MEMINTD07_POS 0
-#define M_MEMINTD07_POS 0x3U
-#define V_MEMINTD07_POS(x) ((x) << S_MEMINTD07_POS)
-#define G_MEMINTD07_POS(x) (((x) >> S_MEMINTD07_POS) & M_MEMINTD07_POS)
-
-#define A_MC_DDRPHY_DP18_PATTERN_POS_1 0x440cc
-
-#define S_MEMINTD08_POS 14
-#define M_MEMINTD08_POS 0x3U
-#define V_MEMINTD08_POS(x) ((x) << S_MEMINTD08_POS)
-#define G_MEMINTD08_POS(x) (((x) >> S_MEMINTD08_POS) & M_MEMINTD08_POS)
-
-#define S_MEMINTD09_POS 12
-#define M_MEMINTD09_POS 0x3U
-#define V_MEMINTD09_POS(x) ((x) << S_MEMINTD09_POS)
-#define G_MEMINTD09_POS(x) (((x) >> S_MEMINTD09_POS) & M_MEMINTD09_POS)
-
-#define S_MEMINTD10_POS 10
-#define M_MEMINTD10_POS 0x3U
-#define V_MEMINTD10_POS(x) ((x) << S_MEMINTD10_POS)
-#define G_MEMINTD10_POS(x) (((x) >> S_MEMINTD10_POS) & M_MEMINTD10_POS)
-
-#define S_MEMINTD11_POS 8
-#define M_MEMINTD11_POS 0x3U
-#define V_MEMINTD11_POS(x) ((x) << S_MEMINTD11_POS)
-#define G_MEMINTD11_POS(x) (((x) >> S_MEMINTD11_POS) & M_MEMINTD11_POS)
-
-#define S_MEMINTD12_POS 6
-#define M_MEMINTD12_POS 0x3U
-#define V_MEMINTD12_POS(x) ((x) << S_MEMINTD12_POS)
-#define G_MEMINTD12_POS(x) (((x) >> S_MEMINTD12_POS) & M_MEMINTD12_POS)
-
-#define S_MEMINTD13_POS 4
-#define M_MEMINTD13_POS 0x3U
-#define V_MEMINTD13_POS(x) ((x) << S_MEMINTD13_POS)
-#define G_MEMINTD13_POS(x) (((x) >> S_MEMINTD13_POS) & M_MEMINTD13_POS)
-
-#define S_MEMINTD14_POS 2
-#define M_MEMINTD14_POS 0x3U
-#define V_MEMINTD14_POS(x) ((x) << S_MEMINTD14_POS)
-#define G_MEMINTD14_POS(x) (((x) >> S_MEMINTD14_POS) & M_MEMINTD14_POS)
-
-#define S_MEMINTD15_POS 0
-#define M_MEMINTD15_POS 0x3U
-#define V_MEMINTD15_POS(x) ((x) << S_MEMINTD15_POS)
-#define G_MEMINTD15_POS(x) (((x) >> S_MEMINTD15_POS) & M_MEMINTD15_POS)
-
-#define A_MC_DDRPHY_DP18_PATTERN_POS_2 0x440d0
-
-#define S_MEMINTD16_POS 14
-#define M_MEMINTD16_POS 0x3U
-#define V_MEMINTD16_POS(x) ((x) << S_MEMINTD16_POS)
-#define G_MEMINTD16_POS(x) (((x) >> S_MEMINTD16_POS) & M_MEMINTD16_POS)
-
-#define S_MEMINTD17_POS 12
-#define M_MEMINTD17_POS 0x3U
-#define V_MEMINTD17_POS(x) ((x) << S_MEMINTD17_POS)
-#define G_MEMINTD17_POS(x) (((x) >> S_MEMINTD17_POS) & M_MEMINTD17_POS)
-
-#define S_MEMINTD18_POS 10
-#define M_MEMINTD18_POS 0x3U
-#define V_MEMINTD18_POS(x) ((x) << S_MEMINTD18_POS)
-#define G_MEMINTD18_POS(x) (((x) >> S_MEMINTD18_POS) & M_MEMINTD18_POS)
-
-#define S_MEMINTD19_POS 8
-#define M_MEMINTD19_POS 0x3U
-#define V_MEMINTD19_POS(x) ((x) << S_MEMINTD19_POS)
-#define G_MEMINTD19_POS(x) (((x) >> S_MEMINTD19_POS) & M_MEMINTD19_POS)
-
-#define S_MEMINTD20_POS 6
-#define M_MEMINTD20_POS 0x3U
-#define V_MEMINTD20_POS(x) ((x) << S_MEMINTD20_POS)
-#define G_MEMINTD20_POS(x) (((x) >> S_MEMINTD20_POS) & M_MEMINTD20_POS)
-
-#define S_MEMINTD21_POS 4
-#define M_MEMINTD21_POS 0x3U
-#define V_MEMINTD21_POS(x) ((x) << S_MEMINTD21_POS)
-#define G_MEMINTD21_POS(x) (((x) >> S_MEMINTD21_POS) & M_MEMINTD21_POS)
-
-#define S_MEMINTD22_POS 2
-#define M_MEMINTD22_POS 0x3U
-#define V_MEMINTD22_POS(x) ((x) << S_MEMINTD22_POS)
-#define G_MEMINTD22_POS(x) (((x) >> S_MEMINTD22_POS) & M_MEMINTD22_POS)
-
-#define S_MEMINTD23_POS 0
-#define M_MEMINTD23_POS 0x3U
-#define V_MEMINTD23_POS(x) ((x) << S_MEMINTD23_POS)
-#define G_MEMINTD23_POS(x) (((x) >> S_MEMINTD23_POS) & M_MEMINTD23_POS)
-
-#define A_MC_DDRPHY_DP18_RD_DIA_CONFIG1 0x440d4
-#define A_MC_DDRPHY_DP18_RD_DIA_CONFIG2 0x440d8
-#define A_MC_DDRPHY_DP18_DQSCLK_OFFSET 0x440dc
-
-#define S_DQS_OFFSET 8
-#define M_DQS_OFFSET 0x7fU
-#define V_DQS_OFFSET(x) ((x) << S_DQS_OFFSET)
-#define G_DQS_OFFSET(x) (((x) >> S_DQS_OFFSET) & M_DQS_OFFSET)
-
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_0_RP 0x440e0
-
-#define S_WR_DELAY 6
-#define M_WR_DELAY 0x3ffU
-#define V_WR_DELAY(x) ((x) << S_WR_DELAY)
-#define G_WR_DELAY(x) (((x) >> S_WR_DELAY) & M_WR_DELAY)
-
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_1_RP 0x440e4
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_2_RP 0x440e8
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_3_RP 0x440ec
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_4_RP 0x440f0
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_5_RP 0x440f4
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_6_RP 0x440f8
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_7_RP 0x440fc
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_8_RP 0x44100
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_9_RP 0x44104
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_10_RP 0x44108
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_11_RP 0x4410c
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_12_RP 0x44110
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_13_RP 0x44114
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_14_RP 0x44118
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_15_RP 0x4411c
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_16_RP 0x44120
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_17_RP 0x44124
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_18_RP 0x44128
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_19_RP 0x4412c
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_20_RP 0x44130
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_21_RP 0x44134
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_22_RP 0x44138
-#define A_MC_DDRPHY_DP18_WR_DELAY_VALUE_23_RP 0x4413c
-#define A_MC_DDRPHY_DP18_READ_DELAY0_RANK_PAIR 0x44140
-
-#define S_RD_DELAY_BITS0_6 9
-#define M_RD_DELAY_BITS0_6 0x7fU
-#define V_RD_DELAY_BITS0_6(x) ((x) << S_RD_DELAY_BITS0_6)
-#define G_RD_DELAY_BITS0_6(x) (((x) >> S_RD_DELAY_BITS0_6) & M_RD_DELAY_BITS0_6)
-
-#define S_RD_DELAY_BITS8_14 1
-#define M_RD_DELAY_BITS8_14 0x7fU
-#define V_RD_DELAY_BITS8_14(x) ((x) << S_RD_DELAY_BITS8_14)
-#define G_RD_DELAY_BITS8_14(x) (((x) >> S_RD_DELAY_BITS8_14) & M_RD_DELAY_BITS8_14)
-
-#define A_MC_DDRPHY_DP18_READ_DELAY1_RANK_PAIR 0x44144
-#define A_MC_DDRPHY_DP18_READ_DELAY2_RANK_PAIR 0x44148
-#define A_MC_DDRPHY_DP18_READ_DELAY3_RANK_PAIR 0x4414c
-#define A_MC_DDRPHY_DP18_READ_DELAY4_RANK_PAIR 0x44150
-#define A_MC_DDRPHY_DP18_READ_DELAY5_RANK_PAIR 0x44154
-#define A_MC_DDRPHY_DP18_READ_DELAY6_RANK_PAIR 0x44158
-#define A_MC_DDRPHY_DP18_READ_DELAY7_RANK_PAIR 0x4415c
-#define A_MC_DDRPHY_DP18_READ_DELAY8_RANK_PAIR 0x44160
-#define A_MC_DDRPHY_DP18_READ_DELAY9_RANK_PAIR 0x44164
-#define A_MC_DDRPHY_DP18_READ_DELAY10_RANK_PAIR 0x44168
-#define A_MC_DDRPHY_DP18_READ_DELAY11_RANK_PAIR 0x4416c
-#define A_MC_DDRPHY_DP18_INITIAL_DQS_ALIGN0_RANK_PAIR 0x44170
-
-#define S_INITIAL_DQS_ROT_N0_N2 8
-#define M_INITIAL_DQS_ROT_N0_N2 0x7fU
-#define V_INITIAL_DQS_ROT_N0_N2(x) ((x) << S_INITIAL_DQS_ROT_N0_N2)
-#define G_INITIAL_DQS_ROT_N0_N2(x) (((x) >> S_INITIAL_DQS_ROT_N0_N2) & M_INITIAL_DQS_ROT_N0_N2)
-
-#define S_INITIAL_DQS_ROT_N1_N3 0
-#define M_INITIAL_DQS_ROT_N1_N3 0x7fU
-#define V_INITIAL_DQS_ROT_N1_N3(x) ((x) << S_INITIAL_DQS_ROT_N1_N3)
-#define G_INITIAL_DQS_ROT_N1_N3(x) (((x) >> S_INITIAL_DQS_ROT_N1_N3) & M_INITIAL_DQS_ROT_N1_N3)
-
-#define A_MC_DDRPHY_DP18_INITIAL_DQS_ALIGN1_RANK_PAIR 0x44174
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE0_RANK_PAIR 0x44180
-
-#define S_RD_EYE_SIZE_BITS2_7 8
-#define M_RD_EYE_SIZE_BITS2_7 0x3fU
-#define V_RD_EYE_SIZE_BITS2_7(x) ((x) << S_RD_EYE_SIZE_BITS2_7)
-#define G_RD_EYE_SIZE_BITS2_7(x) (((x) >> S_RD_EYE_SIZE_BITS2_7) & M_RD_EYE_SIZE_BITS2_7)
-
-#define S_RD_EYE_SIZE_BITS10_15 0
-#define M_RD_EYE_SIZE_BITS10_15 0x3fU
-#define V_RD_EYE_SIZE_BITS10_15(x) ((x) << S_RD_EYE_SIZE_BITS10_15)
-#define G_RD_EYE_SIZE_BITS10_15(x) (((x) >> S_RD_EYE_SIZE_BITS10_15) & M_RD_EYE_SIZE_BITS10_15)
-
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE1_RANK_PAIR 0x44184
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE2_RANK_PAIR 0x44188
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE3_RANK_PAIR 0x4418c
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE4_RANK_PAIR 0x44190
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE5_RANK_PAIR 0x44194
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE6_RANK_PAIR 0x44198
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE7_RANK_PAIR 0x4419c
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE8_RANK_PAIR 0x441a0
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE9_RANK_PAIR 0x441a4
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE10_RANK_PAIR 0x441a8
-#define A_MC_DDRPHY_DP18_READ_EYE_SIZE11_RANK_PAIR 0x441ac
-#define A_MC_DDRPHY_DP18_RD_DIA_CONFIG3 0x441b4
-#define A_MC_DDRPHY_DP18_RD_DIA_CONFIG4 0x441b8
-#define A_MC_DDRPHY_DP18_READ_TIMING_REFERENCE0 0x441c0
-
-#define S_REFERENCE_BITS1_7 8
-#define M_REFERENCE_BITS1_7 0x7fU
-#define V_REFERENCE_BITS1_7(x) ((x) << S_REFERENCE_BITS1_7)
-#define G_REFERENCE_BITS1_7(x) (((x) >> S_REFERENCE_BITS1_7) & M_REFERENCE_BITS1_7)
-
-#define S_REFERENCE_BITS9_15 0
-#define M_REFERENCE_BITS9_15 0x7fU
-#define V_REFERENCE_BITS9_15(x) ((x) << S_REFERENCE_BITS9_15)
-#define G_REFERENCE_BITS9_15(x) (((x) >> S_REFERENCE_BITS9_15) & M_REFERENCE_BITS9_15)
-
-#define A_MC_DDRPHY_DP18_READ_TIMING_REFERENCE1 0x441c4
-#define A_MC_DDRPHY_DP18_READ_DQS_TIMING_REFERENCE 0x441c8
-
-#define S_REFERENCE 8
-#define M_REFERENCE 0x7fU
-#define V_REFERENCE(x) ((x) << S_REFERENCE)
-#define G_REFERENCE(x) (((x) >> S_REFERENCE) & M_REFERENCE)
-
-#define A_MC_DDRPHY_DP18_SYSCLK_PR_VALUE 0x441cc
-#define A_MC_DDRPHY_DP18_WRCLK_PR 0x441d0
-#define A_MC_DDRPHY_DP18_IO_TX_CONFIG0 0x441d4
-
-#define S_INTERP_SIG_SLEW 12
-#define M_INTERP_SIG_SLEW 0xfU
-#define V_INTERP_SIG_SLEW(x) ((x) << S_INTERP_SIG_SLEW)
-#define G_INTERP_SIG_SLEW(x) (((x) >> S_INTERP_SIG_SLEW) & M_INTERP_SIG_SLEW)
-
-#define S_POST_CURSOR 8
-#define M_POST_CURSOR 0xfU
-#define V_POST_CURSOR(x) ((x) << S_POST_CURSOR)
-#define G_POST_CURSOR(x) (((x) >> S_POST_CURSOR) & M_POST_CURSOR)
-
-#define S_SLEW_CTL 4
-#define M_SLEW_CTL 0xfU
-#define V_SLEW_CTL(x) ((x) << S_SLEW_CTL)
-#define G_SLEW_CTL(x) (((x) >> S_SLEW_CTL) & M_SLEW_CTL)
-
-#define A_MC_DDRPHY_DP18_PLL_CONFIG0 0x441d8
-#define A_MC_DDRPHY_DP18_PLL_CONFIG1 0x441dc
-
-#define S_CE0DLTVCCA 7
-#define V_CE0DLTVCCA(x) ((x) << S_CE0DLTVCCA)
-#define F_CE0DLTVCCA V_CE0DLTVCCA(1U)
-
-#define S_CE0DLTVCCD1 4
-#define V_CE0DLTVCCD1(x) ((x) << S_CE0DLTVCCD1)
-#define F_CE0DLTVCCD1 V_CE0DLTVCCD1(1U)
-
-#define S_CE0DLTVCCD2 3
-#define V_CE0DLTVCCD2(x) ((x) << S_CE0DLTVCCD2)
-#define F_CE0DLTVCCD2 V_CE0DLTVCCD2(1U)
-
-#define S_S0INSDLYTAP 2
-#define V_S0INSDLYTAP(x) ((x) << S_S0INSDLYTAP)
-#define F_S0INSDLYTAP V_S0INSDLYTAP(1U)
-
-#define S_S1INSDLYTAP 1
-#define V_S1INSDLYTAP(x) ((x) << S_S1INSDLYTAP)
-#define F_S1INSDLYTAP V_S1INSDLYTAP(1U)
-
-#define A_MC_DDRPHY_DP18_IO_TX_NFET_SLICE 0x441e0
-
-#define S_EN_SLICE_N_WR 8
-#define M_EN_SLICE_N_WR 0xffU
-#define V_EN_SLICE_N_WR(x) ((x) << S_EN_SLICE_N_WR)
-#define G_EN_SLICE_N_WR(x) (((x) >> S_EN_SLICE_N_WR) & M_EN_SLICE_N_WR)
-
-#define A_MC_DDRPHY_DP18_IO_TX_PFET_SLICE 0x441e4
-#define A_MC_DDRPHY_DP18_IO_TX_NFET_TERM 0x441e8
-
-#define S_EN_TERM_N_WR 8
-#define M_EN_TERM_N_WR 0xffU
-#define V_EN_TERM_N_WR(x) ((x) << S_EN_TERM_N_WR)
-#define G_EN_TERM_N_WR(x) (((x) >> S_EN_TERM_N_WR) & M_EN_TERM_N_WR)
-
-#define S_EN_TERM_N_WR_FFE 4
-#define M_EN_TERM_N_WR_FFE 0xfU
-#define V_EN_TERM_N_WR_FFE(x) ((x) << S_EN_TERM_N_WR_FFE)
-#define G_EN_TERM_N_WR_FFE(x) (((x) >> S_EN_TERM_N_WR_FFE) & M_EN_TERM_N_WR_FFE)
-
-#define A_MC_DDRPHY_DP18_IO_TX_PFET_TERM 0x441ec
-
-#define S_EN_TERM_P_WR 8
-#define M_EN_TERM_P_WR 0xffU
-#define V_EN_TERM_P_WR(x) ((x) << S_EN_TERM_P_WR)
-#define G_EN_TERM_P_WR(x) (((x) >> S_EN_TERM_P_WR) & M_EN_TERM_P_WR)
-
-#define S_EN_TERM_P_WR_FFE 4
-#define M_EN_TERM_P_WR_FFE 0xfU
-#define V_EN_TERM_P_WR_FFE(x) ((x) << S_EN_TERM_P_WR_FFE)
-#define G_EN_TERM_P_WR_FFE(x) (((x) >> S_EN_TERM_P_WR_FFE) & M_EN_TERM_P_WR_FFE)
-
-#define A_MC_DDRPHY_DP18_DATA_BIT_DISABLE0_RP 0x441f0
-
-#define S_DATA_BIT_DISABLE_0_15 0
-#define M_DATA_BIT_DISABLE_0_15 0xffffU
-#define V_DATA_BIT_DISABLE_0_15(x) ((x) << S_DATA_BIT_DISABLE_0_15)
-#define G_DATA_BIT_DISABLE_0_15(x) (((x) >> S_DATA_BIT_DISABLE_0_15) & M_DATA_BIT_DISABLE_0_15)
-
-#define A_MC_DDRPHY_DP18_DATA_BIT_DISABLE1_RP 0x441f4
-
-#define S_DATA_BIT_DISABLE_16_23 8
-#define M_DATA_BIT_DISABLE_16_23 0xffU
-#define V_DATA_BIT_DISABLE_16_23(x) ((x) << S_DATA_BIT_DISABLE_16_23)
-#define G_DATA_BIT_DISABLE_16_23(x) (((x) >> S_DATA_BIT_DISABLE_16_23) & M_DATA_BIT_DISABLE_16_23)
-
-#define A_MC_DDRPHY_DP18_DQ_WR_OFFSET_RP 0x441f8
-
-#define S_DQ_WR_OFFSET_N0 12
-#define M_DQ_WR_OFFSET_N0 0xfU
-#define V_DQ_WR_OFFSET_N0(x) ((x) << S_DQ_WR_OFFSET_N0)
-#define G_DQ_WR_OFFSET_N0(x) (((x) >> S_DQ_WR_OFFSET_N0) & M_DQ_WR_OFFSET_N0)
-
-#define S_DQ_WR_OFFSET_N1 8
-#define M_DQ_WR_OFFSET_N1 0xfU
-#define V_DQ_WR_OFFSET_N1(x) ((x) << S_DQ_WR_OFFSET_N1)
-#define G_DQ_WR_OFFSET_N1(x) (((x) >> S_DQ_WR_OFFSET_N1) & M_DQ_WR_OFFSET_N1)
-
-#define S_DQ_WR_OFFSET_N2 4
-#define M_DQ_WR_OFFSET_N2 0xfU
-#define V_DQ_WR_OFFSET_N2(x) ((x) << S_DQ_WR_OFFSET_N2)
-#define G_DQ_WR_OFFSET_N2(x) (((x) >> S_DQ_WR_OFFSET_N2) & M_DQ_WR_OFFSET_N2)
-
-#define S_DQ_WR_OFFSET_N3 0
-#define M_DQ_WR_OFFSET_N3 0xfU
-#define V_DQ_WR_OFFSET_N3(x) ((x) << S_DQ_WR_OFFSET_N3)
-#define G_DQ_WR_OFFSET_N3(x) (((x) >> S_DQ_WR_OFFSET_N3) & M_DQ_WR_OFFSET_N3)
-
-#define A_MC_DDRPHY_DP18_POWERDOWN_1 0x441fc
-#define A_MC_ADR_DDRPHY_ADR_BIT_ENABLE 0x45000
-
-#define S_BIT_ENABLE_0_11 4
-#define M_BIT_ENABLE_0_11 0xfffU
-#define V_BIT_ENABLE_0_11(x) ((x) << S_BIT_ENABLE_0_11)
-#define G_BIT_ENABLE_0_11(x) (((x) >> S_BIT_ENABLE_0_11) & M_BIT_ENABLE_0_11)
-
-#define S_BIT_ENABLE_12_15 0
-#define M_BIT_ENABLE_12_15 0xfU
-#define V_BIT_ENABLE_12_15(x) ((x) << S_BIT_ENABLE_12_15)
-#define G_BIT_ENABLE_12_15(x) (((x) >> S_BIT_ENABLE_12_15) & M_BIT_ENABLE_12_15)
-
-#define A_MC_ADR_DDRPHY_ADR_DIFFPAIR_ENABLE 0x45004
-
-#define S_DI_ADR0_ADR1 15
-#define V_DI_ADR0_ADR1(x) ((x) << S_DI_ADR0_ADR1)
-#define F_DI_ADR0_ADR1 V_DI_ADR0_ADR1(1U)
-
-#define S_DI_ADR2_ADR3 14
-#define V_DI_ADR2_ADR3(x) ((x) << S_DI_ADR2_ADR3)
-#define F_DI_ADR2_ADR3 V_DI_ADR2_ADR3(1U)
-
-#define S_DI_ADR4_ADR5 13
-#define V_DI_ADR4_ADR5(x) ((x) << S_DI_ADR4_ADR5)
-#define F_DI_ADR4_ADR5 V_DI_ADR4_ADR5(1U)
-
-#define S_DI_ADR6_ADR7 12
-#define V_DI_ADR6_ADR7(x) ((x) << S_DI_ADR6_ADR7)
-#define F_DI_ADR6_ADR7 V_DI_ADR6_ADR7(1U)
-
-#define S_DI_ADR8_ADR9 11
-#define V_DI_ADR8_ADR9(x) ((x) << S_DI_ADR8_ADR9)
-#define F_DI_ADR8_ADR9 V_DI_ADR8_ADR9(1U)
-
-#define S_DI_ADR10_ADR11 10
-#define V_DI_ADR10_ADR11(x) ((x) << S_DI_ADR10_ADR11)
-#define F_DI_ADR10_ADR11 V_DI_ADR10_ADR11(1U)
-
-#define S_DI_ADR12_ADR13 9
-#define V_DI_ADR12_ADR13(x) ((x) << S_DI_ADR12_ADR13)
-#define F_DI_ADR12_ADR13 V_DI_ADR12_ADR13(1U)
-
-#define S_DI_ADR14_ADR15 8
-#define V_DI_ADR14_ADR15(x) ((x) << S_DI_ADR14_ADR15)
-#define F_DI_ADR14_ADR15 V_DI_ADR14_ADR15(1U)
-
-#define A_MC_ADR_DDRPHY_ADR_DELAY0 0x45010
-
-#define S_ADR_DELAY_BITS1_7 8
-#define M_ADR_DELAY_BITS1_7 0x7fU
-#define V_ADR_DELAY_BITS1_7(x) ((x) << S_ADR_DELAY_BITS1_7)
-#define G_ADR_DELAY_BITS1_7(x) (((x) >> S_ADR_DELAY_BITS1_7) & M_ADR_DELAY_BITS1_7)
-
-#define S_ADR_DELAY_BITS9_15 0
-#define M_ADR_DELAY_BITS9_15 0x7fU
-#define V_ADR_DELAY_BITS9_15(x) ((x) << S_ADR_DELAY_BITS9_15)
-#define G_ADR_DELAY_BITS9_15(x) (((x) >> S_ADR_DELAY_BITS9_15) & M_ADR_DELAY_BITS9_15)
-
-#define A_MC_ADR_DDRPHY_ADR_DELAY1 0x45014
-#define A_MC_ADR_DDRPHY_ADR_DELAY2 0x45018
-#define A_MC_ADR_DDRPHY_ADR_DELAY3 0x4501c
-#define A_MC_ADR_DDRPHY_ADR_DELAY4 0x45020
-#define A_MC_ADR_DDRPHY_ADR_DELAY5 0x45024
-#define A_MC_ADR_DDRPHY_ADR_DELAY6 0x45028
-#define A_MC_ADR_DDRPHY_ADR_DELAY7 0x4502c
-#define A_MC_ADR_DDRPHY_ADR_DFT_WRAP_STATUS_CONTROL 0x45030
-
-#define S_ADR_TEST_LANE_PAIR_FAIL 8
-#define M_ADR_TEST_LANE_PAIR_FAIL 0xffU
-#define V_ADR_TEST_LANE_PAIR_FAIL(x) ((x) << S_ADR_TEST_LANE_PAIR_FAIL)
-#define G_ADR_TEST_LANE_PAIR_FAIL(x) (((x) >> S_ADR_TEST_LANE_PAIR_FAIL) & M_ADR_TEST_LANE_PAIR_FAIL)
-
-#define S_ADR_TEST_DATA_EN 7
-#define V_ADR_TEST_DATA_EN(x) ((x) << S_ADR_TEST_DATA_EN)
-#define F_ADR_TEST_DATA_EN V_ADR_TEST_DATA_EN(1U)
-
-#define S_DADR_TEST_MODE 5
-#define M_DADR_TEST_MODE 0x3U
-#define V_DADR_TEST_MODE(x) ((x) << S_DADR_TEST_MODE)
-#define G_DADR_TEST_MODE(x) (((x) >> S_DADR_TEST_MODE) & M_DADR_TEST_MODE)
-
-#define S_ADR_TEST_4TO1_MODE 4
-#define V_ADR_TEST_4TO1_MODE(x) ((x) << S_ADR_TEST_4TO1_MODE)
-#define F_ADR_TEST_4TO1_MODE V_ADR_TEST_4TO1_MODE(1U)
-
-#define S_ADR_TEST_RESET 3
-#define V_ADR_TEST_RESET(x) ((x) << S_ADR_TEST_RESET)
-#define F_ADR_TEST_RESET V_ADR_TEST_RESET(1U)
-
-#define S_ADR_TEST_GEN_EN 2
-#define V_ADR_TEST_GEN_EN(x) ((x) << S_ADR_TEST_GEN_EN)
-#define F_ADR_TEST_GEN_EN V_ADR_TEST_GEN_EN(1U)
-
-#define S_ADR_TEST_CLEAR_ERROR 1
-#define V_ADR_TEST_CLEAR_ERROR(x) ((x) << S_ADR_TEST_CLEAR_ERROR)
-#define F_ADR_TEST_CLEAR_ERROR V_ADR_TEST_CLEAR_ERROR(1U)
-
-#define S_ADR_TEST_CHECK_EN 0
-#define V_ADR_TEST_CHECK_EN(x) ((x) << S_ADR_TEST_CHECK_EN)
-#define F_ADR_TEST_CHECK_EN V_ADR_TEST_CHECK_EN(1U)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_NFET_SLICE_EN0 0x45040
-
-#define S_EN_SLICE_N_WR_0 8
-#define M_EN_SLICE_N_WR_0 0xffU
-#define V_EN_SLICE_N_WR_0(x) ((x) << S_EN_SLICE_N_WR_0)
-#define G_EN_SLICE_N_WR_0(x) (((x) >> S_EN_SLICE_N_WR_0) & M_EN_SLICE_N_WR_0)
-
-#define S_EN_SLICE_N_WR_FFE 4
-#define M_EN_SLICE_N_WR_FFE 0xfU
-#define V_EN_SLICE_N_WR_FFE(x) ((x) << S_EN_SLICE_N_WR_FFE)
-#define G_EN_SLICE_N_WR_FFE(x) (((x) >> S_EN_SLICE_N_WR_FFE) & M_EN_SLICE_N_WR_FFE)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_NFET_SLICE_EN1 0x45044
-
-#define S_EN_SLICE_N_WR_1 8
-#define M_EN_SLICE_N_WR_1 0xffU
-#define V_EN_SLICE_N_WR_1(x) ((x) << S_EN_SLICE_N_WR_1)
-#define G_EN_SLICE_N_WR_1(x) (((x) >> S_EN_SLICE_N_WR_1) & M_EN_SLICE_N_WR_1)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_NFET_SLICE_EN2 0x45048
-
-#define S_EN_SLICE_N_WR_2 8
-#define M_EN_SLICE_N_WR_2 0xffU
-#define V_EN_SLICE_N_WR_2(x) ((x) << S_EN_SLICE_N_WR_2)
-#define G_EN_SLICE_N_WR_2(x) (((x) >> S_EN_SLICE_N_WR_2) & M_EN_SLICE_N_WR_2)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_NFET_SLICE_EN3 0x4504c
-
-#define S_EN_SLICE_N_WR_3 8
-#define M_EN_SLICE_N_WR_3 0xffU
-#define V_EN_SLICE_N_WR_3(x) ((x) << S_EN_SLICE_N_WR_3)
-#define G_EN_SLICE_N_WR_3(x) (((x) >> S_EN_SLICE_N_WR_3) & M_EN_SLICE_N_WR_3)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_PFET_SLICE_EN0 0x45050
-
-#define S_EN_SLICE_P_WR 8
-#define M_EN_SLICE_P_WR 0xffU
-#define V_EN_SLICE_P_WR(x) ((x) << S_EN_SLICE_P_WR)
-#define G_EN_SLICE_P_WR(x) (((x) >> S_EN_SLICE_P_WR) & M_EN_SLICE_P_WR)
-
-#define S_EN_SLICE_P_WR_FFE 4
-#define M_EN_SLICE_P_WR_FFE 0xfU
-#define V_EN_SLICE_P_WR_FFE(x) ((x) << S_EN_SLICE_P_WR_FFE)
-#define G_EN_SLICE_P_WR_FFE(x) (((x) >> S_EN_SLICE_P_WR_FFE) & M_EN_SLICE_P_WR_FFE)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_PFET_SLICE_EN1 0x45054
-#define A_MC_ADR_DDRPHY_ADR_IO_PFET_SLICE_EN2 0x45058
-#define A_MC_ADR_DDRPHY_ADR_IO_PFET_SLICE_EN3 0x4505c
-#define A_MC_ADR_DDRPHY_ADR_IO_POST_CURSOR_VALUE 0x45060
-
-#define S_POST_CURSOR0 12
-#define M_POST_CURSOR0 0xfU
-#define V_POST_CURSOR0(x) ((x) << S_POST_CURSOR0)
-#define G_POST_CURSOR0(x) (((x) >> S_POST_CURSOR0) & M_POST_CURSOR0)
-
-#define S_POST_CURSOR1 8
-#define M_POST_CURSOR1 0xfU
-#define V_POST_CURSOR1(x) ((x) << S_POST_CURSOR1)
-#define G_POST_CURSOR1(x) (((x) >> S_POST_CURSOR1) & M_POST_CURSOR1)
-
-#define S_POST_CURSOR2 4
-#define M_POST_CURSOR2 0xfU
-#define V_POST_CURSOR2(x) ((x) << S_POST_CURSOR2)
-#define G_POST_CURSOR2(x) (((x) >> S_POST_CURSOR2) & M_POST_CURSOR2)
-
-#define S_POST_CURSOR3 0
-#define M_POST_CURSOR3 0xfU
-#define V_POST_CURSOR3(x) ((x) << S_POST_CURSOR3)
-#define G_POST_CURSOR3(x) (((x) >> S_POST_CURSOR3) & M_POST_CURSOR3)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_SLEW_CTL_VALUE 0x45068
-
-#define S_SLEW_CTL0 12
-#define M_SLEW_CTL0 0xfU
-#define V_SLEW_CTL0(x) ((x) << S_SLEW_CTL0)
-#define G_SLEW_CTL0(x) (((x) >> S_SLEW_CTL0) & M_SLEW_CTL0)
-
-#define S_SLEW_CTL1 8
-#define M_SLEW_CTL1 0xfU
-#define V_SLEW_CTL1(x) ((x) << S_SLEW_CTL1)
-#define G_SLEW_CTL1(x) (((x) >> S_SLEW_CTL1) & M_SLEW_CTL1)
-
-#define S_SLEW_CTL2 4
-#define M_SLEW_CTL2 0xfU
-#define V_SLEW_CTL2(x) ((x) << S_SLEW_CTL2)
-#define G_SLEW_CTL2(x) (((x) >> S_SLEW_CTL2) & M_SLEW_CTL2)
-
-#define S_SLEW_CTL3 0
-#define M_SLEW_CTL3 0xfU
-#define V_SLEW_CTL3(x) ((x) << S_SLEW_CTL3)
-#define G_SLEW_CTL3(x) (((x) >> S_SLEW_CTL3) & M_SLEW_CTL3)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_FET_SLICE_EN_MAP0 0x45080
-
-#define S_SLICE_SEL_REG_BITS0_1 14
-#define M_SLICE_SEL_REG_BITS0_1 0x3U
-#define V_SLICE_SEL_REG_BITS0_1(x) ((x) << S_SLICE_SEL_REG_BITS0_1)
-#define G_SLICE_SEL_REG_BITS0_1(x) (((x) >> S_SLICE_SEL_REG_BITS0_1) & M_SLICE_SEL_REG_BITS0_1)
-
-#define S_SLICE_SEL_REG_BITS2_3 12
-#define M_SLICE_SEL_REG_BITS2_3 0x3U
-#define V_SLICE_SEL_REG_BITS2_3(x) ((x) << S_SLICE_SEL_REG_BITS2_3)
-#define G_SLICE_SEL_REG_BITS2_3(x) (((x) >> S_SLICE_SEL_REG_BITS2_3) & M_SLICE_SEL_REG_BITS2_3)
-
-#define S_SLICE_SEL_REG_BITS4_5 10
-#define M_SLICE_SEL_REG_BITS4_5 0x3U
-#define V_SLICE_SEL_REG_BITS4_5(x) ((x) << S_SLICE_SEL_REG_BITS4_5)
-#define G_SLICE_SEL_REG_BITS4_5(x) (((x) >> S_SLICE_SEL_REG_BITS4_5) & M_SLICE_SEL_REG_BITS4_5)
-
-#define S_SLICE_SEL_REG_BITS6_7 8
-#define M_SLICE_SEL_REG_BITS6_7 0x3U
-#define V_SLICE_SEL_REG_BITS6_7(x) ((x) << S_SLICE_SEL_REG_BITS6_7)
-#define G_SLICE_SEL_REG_BITS6_7(x) (((x) >> S_SLICE_SEL_REG_BITS6_7) & M_SLICE_SEL_REG_BITS6_7)
-
-#define S_SLICE_SEL_REG_BITS8_9 6
-#define M_SLICE_SEL_REG_BITS8_9 0x3U
-#define V_SLICE_SEL_REG_BITS8_9(x) ((x) << S_SLICE_SEL_REG_BITS8_9)
-#define G_SLICE_SEL_REG_BITS8_9(x) (((x) >> S_SLICE_SEL_REG_BITS8_9) & M_SLICE_SEL_REG_BITS8_9)
-
-#define S_SLICE_SEL_REG_BITS10_11 4
-#define M_SLICE_SEL_REG_BITS10_11 0x3U
-#define V_SLICE_SEL_REG_BITS10_11(x) ((x) << S_SLICE_SEL_REG_BITS10_11)
-#define G_SLICE_SEL_REG_BITS10_11(x) (((x) >> S_SLICE_SEL_REG_BITS10_11) & M_SLICE_SEL_REG_BITS10_11)
-
-#define S_SLICE_SEL_REG_BITS12_13 2
-#define M_SLICE_SEL_REG_BITS12_13 0x3U
-#define V_SLICE_SEL_REG_BITS12_13(x) ((x) << S_SLICE_SEL_REG_BITS12_13)
-#define G_SLICE_SEL_REG_BITS12_13(x) (((x) >> S_SLICE_SEL_REG_BITS12_13) & M_SLICE_SEL_REG_BITS12_13)
-
-#define S_SLICE_SEL_REG_BITS14_15 0
-#define M_SLICE_SEL_REG_BITS14_15 0x3U
-#define V_SLICE_SEL_REG_BITS14_15(x) ((x) << S_SLICE_SEL_REG_BITS14_15)
-#define G_SLICE_SEL_REG_BITS14_15(x) (((x) >> S_SLICE_SEL_REG_BITS14_15) & M_SLICE_SEL_REG_BITS14_15)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_FET_SLICE_EN_MAP1 0x45084
-#define A_MC_ADR_DDRPHY_ADR_IO_POST_CURSOR_VALUE_MAP0 0x450a0
-
-#define S_POST_CUR_SEL_BITS0_1 14
-#define M_POST_CUR_SEL_BITS0_1 0x3U
-#define V_POST_CUR_SEL_BITS0_1(x) ((x) << S_POST_CUR_SEL_BITS0_1)
-#define G_POST_CUR_SEL_BITS0_1(x) (((x) >> S_POST_CUR_SEL_BITS0_1) & M_POST_CUR_SEL_BITS0_1)
-
-#define S_POST_CUR_SEL_BITS2_3 12
-#define M_POST_CUR_SEL_BITS2_3 0x3U
-#define V_POST_CUR_SEL_BITS2_3(x) ((x) << S_POST_CUR_SEL_BITS2_3)
-#define G_POST_CUR_SEL_BITS2_3(x) (((x) >> S_POST_CUR_SEL_BITS2_3) & M_POST_CUR_SEL_BITS2_3)
-
-#define S_POST_CUR_SEL_BITS4_5 10
-#define M_POST_CUR_SEL_BITS4_5 0x3U
-#define V_POST_CUR_SEL_BITS4_5(x) ((x) << S_POST_CUR_SEL_BITS4_5)
-#define G_POST_CUR_SEL_BITS4_5(x) (((x) >> S_POST_CUR_SEL_BITS4_5) & M_POST_CUR_SEL_BITS4_5)
-
-#define S_POST_CUR_SEL_BITS6_7 8
-#define M_POST_CUR_SEL_BITS6_7 0x3U
-#define V_POST_CUR_SEL_BITS6_7(x) ((x) << S_POST_CUR_SEL_BITS6_7)
-#define G_POST_CUR_SEL_BITS6_7(x) (((x) >> S_POST_CUR_SEL_BITS6_7) & M_POST_CUR_SEL_BITS6_7)
-
-#define S_POST_CUR_SEL_BITS8_9 6
-#define M_POST_CUR_SEL_BITS8_9 0x3U
-#define V_POST_CUR_SEL_BITS8_9(x) ((x) << S_POST_CUR_SEL_BITS8_9)
-#define G_POST_CUR_SEL_BITS8_9(x) (((x) >> S_POST_CUR_SEL_BITS8_9) & M_POST_CUR_SEL_BITS8_9)
-
-#define S_POST_CUR_SEL_BITS10_11 4
-#define M_POST_CUR_SEL_BITS10_11 0x3U
-#define V_POST_CUR_SEL_BITS10_11(x) ((x) << S_POST_CUR_SEL_BITS10_11)
-#define G_POST_CUR_SEL_BITS10_11(x) (((x) >> S_POST_CUR_SEL_BITS10_11) & M_POST_CUR_SEL_BITS10_11)
-
-#define S_POST_CUR_SEL_BITS12_13 2
-#define M_POST_CUR_SEL_BITS12_13 0x3U
-#define V_POST_CUR_SEL_BITS12_13(x) ((x) << S_POST_CUR_SEL_BITS12_13)
-#define G_POST_CUR_SEL_BITS12_13(x) (((x) >> S_POST_CUR_SEL_BITS12_13) & M_POST_CUR_SEL_BITS12_13)
-
-#define S_POST_CUR_SEL_BITS14_15 0
-#define M_POST_CUR_SEL_BITS14_15 0x3U
-#define V_POST_CUR_SEL_BITS14_15(x) ((x) << S_POST_CUR_SEL_BITS14_15)
-#define G_POST_CUR_SEL_BITS14_15(x) (((x) >> S_POST_CUR_SEL_BITS14_15) & M_POST_CUR_SEL_BITS14_15)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_POST_CURSOR_VALUE_MAP1 0x450a4
-#define A_MC_ADR_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP0 0x450a8
-
-#define S_SLEW_CTL_SEL_BITS0_1 14
-#define M_SLEW_CTL_SEL_BITS0_1 0x3U
-#define V_SLEW_CTL_SEL_BITS0_1(x) ((x) << S_SLEW_CTL_SEL_BITS0_1)
-#define G_SLEW_CTL_SEL_BITS0_1(x) (((x) >> S_SLEW_CTL_SEL_BITS0_1) & M_SLEW_CTL_SEL_BITS0_1)
-
-#define S_SLEW_CTL_SEL_BITS2_3 12
-#define M_SLEW_CTL_SEL_BITS2_3 0x3U
-#define V_SLEW_CTL_SEL_BITS2_3(x) ((x) << S_SLEW_CTL_SEL_BITS2_3)
-#define G_SLEW_CTL_SEL_BITS2_3(x) (((x) >> S_SLEW_CTL_SEL_BITS2_3) & M_SLEW_CTL_SEL_BITS2_3)
-
-#define S_SLEW_CTL_SEL_BITS4_5 10
-#define M_SLEW_CTL_SEL_BITS4_5 0x3U
-#define V_SLEW_CTL_SEL_BITS4_5(x) ((x) << S_SLEW_CTL_SEL_BITS4_5)
-#define G_SLEW_CTL_SEL_BITS4_5(x) (((x) >> S_SLEW_CTL_SEL_BITS4_5) & M_SLEW_CTL_SEL_BITS4_5)
-
-#define S_SLEW_CTL_SEL_BITS6_7 8
-#define M_SLEW_CTL_SEL_BITS6_7 0x3U
-#define V_SLEW_CTL_SEL_BITS6_7(x) ((x) << S_SLEW_CTL_SEL_BITS6_7)
-#define G_SLEW_CTL_SEL_BITS6_7(x) (((x) >> S_SLEW_CTL_SEL_BITS6_7) & M_SLEW_CTL_SEL_BITS6_7)
-
-#define S_SLEW_CTL_SEL_BITS8_9 6
-#define M_SLEW_CTL_SEL_BITS8_9 0x3U
-#define V_SLEW_CTL_SEL_BITS8_9(x) ((x) << S_SLEW_CTL_SEL_BITS8_9)
-#define G_SLEW_CTL_SEL_BITS8_9(x) (((x) >> S_SLEW_CTL_SEL_BITS8_9) & M_SLEW_CTL_SEL_BITS8_9)
-
-#define S_SLEW_CTL_SEL_BITS10_11 4
-#define M_SLEW_CTL_SEL_BITS10_11 0x3U
-#define V_SLEW_CTL_SEL_BITS10_11(x) ((x) << S_SLEW_CTL_SEL_BITS10_11)
-#define G_SLEW_CTL_SEL_BITS10_11(x) (((x) >> S_SLEW_CTL_SEL_BITS10_11) & M_SLEW_CTL_SEL_BITS10_11)
-
-#define S_SLEW_CTL_SEL_BITS12_13 2
-#define M_SLEW_CTL_SEL_BITS12_13 0x3U
-#define V_SLEW_CTL_SEL_BITS12_13(x) ((x) << S_SLEW_CTL_SEL_BITS12_13)
-#define G_SLEW_CTL_SEL_BITS12_13(x) (((x) >> S_SLEW_CTL_SEL_BITS12_13) & M_SLEW_CTL_SEL_BITS12_13)
-
-#define S_SLEW_CTL_SEL_BITS14_15 0
-#define M_SLEW_CTL_SEL_BITS14_15 0x3U
-#define V_SLEW_CTL_SEL_BITS14_15(x) ((x) << S_SLEW_CTL_SEL_BITS14_15)
-#define G_SLEW_CTL_SEL_BITS14_15(x) (((x) >> S_SLEW_CTL_SEL_BITS14_15) & M_SLEW_CTL_SEL_BITS14_15)
-
-#define A_MC_ADR_DDRPHY_ADR_IO_SLEW_CTL_VALUE_MAP1 0x450ac
-#define A_MC_ADR_DDRPHY_ADR_POWERDOWN_2 0x450b0
-
-#define S_ADR_LANE_0_11_PD 4
-#define M_ADR_LANE_0_11_PD 0xfffU
-#define V_ADR_LANE_0_11_PD(x) ((x) << S_ADR_LANE_0_11_PD)
-#define G_ADR_LANE_0_11_PD(x) (((x) >> S_ADR_LANE_0_11_PD) & M_ADR_LANE_0_11_PD)
-
-#define S_ADR_LANE_12_15_PD 0
-#define M_ADR_LANE_12_15_PD 0xfU
-#define V_ADR_LANE_12_15_PD(x) ((x) << S_ADR_LANE_12_15_PD)
-#define G_ADR_LANE_12_15_PD(x) (((x) >> S_ADR_LANE_12_15_PD) & M_ADR_LANE_12_15_PD)
-
-#define A_MC_DDRPHY_ADR_PLL_VREG_CONFIG_0 0x460c0
-
-#define S_PLL_TUNE_0_2 13
-#define M_PLL_TUNE_0_2 0x7U
-#define V_PLL_TUNE_0_2(x) ((x) << S_PLL_TUNE_0_2)
-#define G_PLL_TUNE_0_2(x) (((x) >> S_PLL_TUNE_0_2) & M_PLL_TUNE_0_2)
-
-#define S_PLL_TUNECP_0_2 10
-#define M_PLL_TUNECP_0_2 0x7U
-#define V_PLL_TUNECP_0_2(x) ((x) << S_PLL_TUNECP_0_2)
-#define G_PLL_TUNECP_0_2(x) (((x) >> S_PLL_TUNECP_0_2) & M_PLL_TUNECP_0_2)
-
-#define S_PLL_TUNEF_0_5 4
-#define M_PLL_TUNEF_0_5 0x3fU
-#define V_PLL_TUNEF_0_5(x) ((x) << S_PLL_TUNEF_0_5)
-#define G_PLL_TUNEF_0_5(x) (((x) >> S_PLL_TUNEF_0_5) & M_PLL_TUNEF_0_5)
-
-#define S_PLL_TUNEVCO_0_1 2
-#define M_PLL_TUNEVCO_0_1 0x3U
-#define V_PLL_TUNEVCO_0_1(x) ((x) << S_PLL_TUNEVCO_0_1)
-#define G_PLL_TUNEVCO_0_1(x) (((x) >> S_PLL_TUNEVCO_0_1) & M_PLL_TUNEVCO_0_1)
-
-#define S_PLL_PLLXTR_0_1 0
-#define M_PLL_PLLXTR_0_1 0x3U
-#define V_PLL_PLLXTR_0_1(x) ((x) << S_PLL_PLLXTR_0_1)
-#define G_PLL_PLLXTR_0_1(x) (((x) >> S_PLL_PLLXTR_0_1) & M_PLL_PLLXTR_0_1)
-
-#define A_MC_DDRPHY_ADR_PLL_VREG_CONFIG_1 0x460c4
-
-#define S_PLL_TUNETDIV_0_2 13
-#define M_PLL_TUNETDIV_0_2 0x7U
-#define V_PLL_TUNETDIV_0_2(x) ((x) << S_PLL_TUNETDIV_0_2)
-#define G_PLL_TUNETDIV_0_2(x) (((x) >> S_PLL_TUNETDIV_0_2) & M_PLL_TUNETDIV_0_2)
-
-#define S_PLL_TUNEMDIV_0_1 11
-#define M_PLL_TUNEMDIV_0_1 0x3U
-#define V_PLL_TUNEMDIV_0_1(x) ((x) << S_PLL_TUNEMDIV_0_1)
-#define G_PLL_TUNEMDIV_0_1(x) (((x) >> S_PLL_TUNEMDIV_0_1) & M_PLL_TUNEMDIV_0_1)
-
-#define S_PLL_TUNEATST 10
-#define V_PLL_TUNEATST(x) ((x) << S_PLL_TUNEATST)
-#define F_PLL_TUNEATST V_PLL_TUNEATST(1U)
-
-#define S_VREG_RANGE_0_1 8
-#define M_VREG_RANGE_0_1 0x3U
-#define V_VREG_RANGE_0_1(x) ((x) << S_VREG_RANGE_0_1)
-#define G_VREG_RANGE_0_1(x) (((x) >> S_VREG_RANGE_0_1) & M_VREG_RANGE_0_1)
-
-#define S_VREG_VREGSPARE 7
-#define V_VREG_VREGSPARE(x) ((x) << S_VREG_VREGSPARE)
-#define F_VREG_VREGSPARE V_VREG_VREGSPARE(1U)
-
-#define S_VREG_VCCTUNE_0_1 5
-#define M_VREG_VCCTUNE_0_1 0x3U
-#define V_VREG_VCCTUNE_0_1(x) ((x) << S_VREG_VCCTUNE_0_1)
-#define G_VREG_VCCTUNE_0_1(x) (((x) >> S_VREG_VCCTUNE_0_1) & M_VREG_VCCTUNE_0_1)
-
-#define S_INTERP_SIG_SLEW_0_3 1
-#define M_INTERP_SIG_SLEW_0_3 0xfU
-#define V_INTERP_SIG_SLEW_0_3(x) ((x) << S_INTERP_SIG_SLEW_0_3)
-#define G_INTERP_SIG_SLEW_0_3(x) (((x) >> S_INTERP_SIG_SLEW_0_3) & M_INTERP_SIG_SLEW_0_3)
-
-#define S_ANALOG_WRAPON 0
-#define V_ANALOG_WRAPON(x) ((x) << S_ANALOG_WRAPON)
-#define F_ANALOG_WRAPON V_ANALOG_WRAPON(1U)
-
-#define A_MC_DDRPHY_ADR_SYSCLK_CNTL_PR 0x460c8
-
-#define S_SYSCLK_ENABLE 15
-#define V_SYSCLK_ENABLE(x) ((x) << S_SYSCLK_ENABLE)
-#define F_SYSCLK_ENABLE V_SYSCLK_ENABLE(1U)
-
-#define S_SYSCLK_ROT_OVERRIDE 8
-#define M_SYSCLK_ROT_OVERRIDE 0x7fU
-#define V_SYSCLK_ROT_OVERRIDE(x) ((x) << S_SYSCLK_ROT_OVERRIDE)
-#define G_SYSCLK_ROT_OVERRIDE(x) (((x) >> S_SYSCLK_ROT_OVERRIDE) & M_SYSCLK_ROT_OVERRIDE)
-
-#define S_SYSCLK_ROT_OVERRIDE_EN 7
-#define V_SYSCLK_ROT_OVERRIDE_EN(x) ((x) << S_SYSCLK_ROT_OVERRIDE_EN)
-#define F_SYSCLK_ROT_OVERRIDE_EN V_SYSCLK_ROT_OVERRIDE_EN(1U)
-
-#define S_SYSCLK_PHASE_ALIGN_RESE 6
-#define V_SYSCLK_PHASE_ALIGN_RESE(x) ((x) << S_SYSCLK_PHASE_ALIGN_RESE)
-#define F_SYSCLK_PHASE_ALIGN_RESE V_SYSCLK_PHASE_ALIGN_RESE(1U)
-
-#define S_SYSCLK_PHASE_CNTL_EN 5
-#define V_SYSCLK_PHASE_CNTL_EN(x) ((x) << S_SYSCLK_PHASE_CNTL_EN)
-#define F_SYSCLK_PHASE_CNTL_EN V_SYSCLK_PHASE_CNTL_EN(1U)
-
-#define S_SYSCLK_PHASE_DEFAULT_EN 4
-#define V_SYSCLK_PHASE_DEFAULT_EN(x) ((x) << S_SYSCLK_PHASE_DEFAULT_EN)
-#define F_SYSCLK_PHASE_DEFAULT_EN V_SYSCLK_PHASE_DEFAULT_EN(1U)
-
-#define S_SYSCLK_POS_EDGE_ALIGN 3
-#define V_SYSCLK_POS_EDGE_ALIGN(x) ((x) << S_SYSCLK_POS_EDGE_ALIGN)
-#define F_SYSCLK_POS_EDGE_ALIGN V_SYSCLK_POS_EDGE_ALIGN(1U)
-
-#define S_CONTINUOUS_UPDATE 2
-#define V_CONTINUOUS_UPDATE(x) ((x) << S_CONTINUOUS_UPDATE)
-#define F_CONTINUOUS_UPDATE V_CONTINUOUS_UPDATE(1U)
-
-#define S_CE0DLTVCC 0
-#define M_CE0DLTVCC 0x3U
-#define V_CE0DLTVCC(x) ((x) << S_CE0DLTVCC)
-#define G_CE0DLTVCC(x) (((x) >> S_CE0DLTVCC) & M_CE0DLTVCC)
-
-#define A_MC_DDRPHY_ADR_MCCLK_WRCLK_PR_STATIC_OFFSET 0x460cc
-
-#define S_TSYS_WRCLK 8
-#define M_TSYS_WRCLK 0x7fU
-#define V_TSYS_WRCLK(x) ((x) << S_TSYS_WRCLK)
-#define G_TSYS_WRCLK(x) (((x) >> S_TSYS_WRCLK) & M_TSYS_WRCLK)
-
-#define A_MC_DDRPHY_ADR_SYSCLK_PR_VALUE_RO 0x460d0
-
-#define S_SLEW_LATE_SAMPLE 15
-#define V_SLEW_LATE_SAMPLE(x) ((x) << S_SLEW_LATE_SAMPLE)
-#define F_SLEW_LATE_SAMPLE V_SLEW_LATE_SAMPLE(1U)
-
-#define S_SYSCLK_ROT 8
-#define M_SYSCLK_ROT 0x7fU
-#define V_SYSCLK_ROT(x) ((x) << S_SYSCLK_ROT)
-#define G_SYSCLK_ROT(x) (((x) >> S_SYSCLK_ROT) & M_SYSCLK_ROT)
-
-#define S_BB_LOCK 7
-#define V_BB_LOCK(x) ((x) << S_BB_LOCK)
-#define F_BB_LOCK V_BB_LOCK(1U)
-
-#define S_SLEW_EARLY_SAMPLE 6
-#define V_SLEW_EARLY_SAMPLE(x) ((x) << S_SLEW_EARLY_SAMPLE)
-#define F_SLEW_EARLY_SAMPLE V_SLEW_EARLY_SAMPLE(1U)
-
-#define S_SLEW_DONE_STATUS 4
-#define M_SLEW_DONE_STATUS 0x3U
-#define V_SLEW_DONE_STATUS(x) ((x) << S_SLEW_DONE_STATUS)
-#define G_SLEW_DONE_STATUS(x) (((x) >> S_SLEW_DONE_STATUS) & M_SLEW_DONE_STATUS)
-
-#define S_SLEW_CNTL 0
-#define M_SLEW_CNTL 0xfU
-#define V_SLEW_CNTL(x) ((x) << S_SLEW_CNTL)
-#define G_SLEW_CNTL(x) (((x) >> S_SLEW_CNTL) & M_SLEW_CNTL)
-
-#define A_MC_DDRPHY_ADR_GMTEST_ATEST_CNTL 0x460d4
-
-#define S_FLUSH 15
-#define V_FLUSH(x) ((x) << S_FLUSH)
-#define F_FLUSH V_FLUSH(1U)
-
-#define S_GIANT_MUX_TEST_EN 14
-#define V_GIANT_MUX_TEST_EN(x) ((x) << S_GIANT_MUX_TEST_EN)
-#define F_GIANT_MUX_TEST_EN V_GIANT_MUX_TEST_EN(1U)
-
-#define S_GIANT_MUX_TEST_VAL 13
-#define V_GIANT_MUX_TEST_VAL(x) ((x) << S_GIANT_MUX_TEST_VAL)
-#define F_GIANT_MUX_TEST_VAL V_GIANT_MUX_TEST_VAL(1U)
-
-#define S_HS_PROBE_A_SEL_ 8
-#define M_HS_PROBE_A_SEL_ 0xfU
-#define V_HS_PROBE_A_SEL_(x) ((x) << S_HS_PROBE_A_SEL_)
-#define G_HS_PROBE_A_SEL_(x) (((x) >> S_HS_PROBE_A_SEL_) & M_HS_PROBE_A_SEL_)
-
-#define S_HS_PROBE_B_SEL_ 4
-#define M_HS_PROBE_B_SEL_ 0xfU
-#define V_HS_PROBE_B_SEL_(x) ((x) << S_HS_PROBE_B_SEL_)
-#define G_HS_PROBE_B_SEL_(x) (((x) >> S_HS_PROBE_B_SEL_) & M_HS_PROBE_B_SEL_)
-
-#define S_ATEST1CTL0 3
-#define V_ATEST1CTL0(x) ((x) << S_ATEST1CTL0)
-#define F_ATEST1CTL0 V_ATEST1CTL0(1U)
-
-#define S_ATEST1CTL1 2
-#define V_ATEST1CTL1(x) ((x) << S_ATEST1CTL1)
-#define F_ATEST1CTL1 V_ATEST1CTL1(1U)
-
-#define S_ATEST1CTL2 1
-#define V_ATEST1CTL2(x) ((x) << S_ATEST1CTL2)
-#define F_ATEST1CTL2 V_ATEST1CTL2(1U)
-
-#define S_ATEST1CTL3 0
-#define V_ATEST1CTL3(x) ((x) << S_ATEST1CTL3)
-#define F_ATEST1CTL3 V_ATEST1CTL3(1U)
-
-#define A_MC_DDRPHY_ADR_GIANT_MUX_RESULTS_A0 0x460d8
-
-#define S_GIANT_MUX_TEST_RESULTS 0
-#define M_GIANT_MUX_TEST_RESULTS 0xffffU
-#define V_GIANT_MUX_TEST_RESULTS(x) ((x) << S_GIANT_MUX_TEST_RESULTS)
-#define G_GIANT_MUX_TEST_RESULTS(x) (((x) >> S_GIANT_MUX_TEST_RESULTS) & M_GIANT_MUX_TEST_RESULTS)
-
-#define A_MC_DDRPHY_ADR_GIANT_MUX_RESULTS_A1 0x460dc
-#define A_MC_DDRPHY_ADR_POWERDOWN_1 0x460e0
-
-#define S_MASTER_PD_CNTL 15
-#define V_MASTER_PD_CNTL(x) ((x) << S_MASTER_PD_CNTL)
-#define F_MASTER_PD_CNTL V_MASTER_PD_CNTL(1U)
-
-#define S_ANALOG_INPUT_STAB2 14
-#define V_ANALOG_INPUT_STAB2(x) ((x) << S_ANALOG_INPUT_STAB2)
-#define F_ANALOG_INPUT_STAB2 V_ANALOG_INPUT_STAB2(1U)
-
-#define S_ANALOG_INPUT_STAB1 8
-#define V_ANALOG_INPUT_STAB1(x) ((x) << S_ANALOG_INPUT_STAB1)
-#define F_ANALOG_INPUT_STAB1 V_ANALOG_INPUT_STAB1(1U)
-
-#define S_SYSCLK_CLK_GATE 6
-#define M_SYSCLK_CLK_GATE 0x3U
-#define V_SYSCLK_CLK_GATE(x) ((x) << S_SYSCLK_CLK_GATE)
-#define G_SYSCLK_CLK_GATE(x) (((x) >> S_SYSCLK_CLK_GATE) & M_SYSCLK_CLK_GATE)
-
-#define S_WR_FIFO_STAB 5
-#define V_WR_FIFO_STAB(x) ((x) << S_WR_FIFO_STAB)
-#define F_WR_FIFO_STAB V_WR_FIFO_STAB(1U)
-
-#define S_ADR_RX_PD 4
-#define V_ADR_RX_PD(x) ((x) << S_ADR_RX_PD)
-#define F_ADR_RX_PD V_ADR_RX_PD(1U)
-
-#define S_TX_TRISTATE_CNTL 1
-#define V_TX_TRISTATE_CNTL(x) ((x) << S_TX_TRISTATE_CNTL)
-#define F_TX_TRISTATE_CNTL V_TX_TRISTATE_CNTL(1U)
-
-#define S_DVCC_REG_PD 0
-#define V_DVCC_REG_PD(x) ((x) << S_DVCC_REG_PD)
-#define F_DVCC_REG_PD V_DVCC_REG_PD(1U)
-
-#define A_MC_DDRPHY_ADR_SLEW_CAL_CNTL 0x460e4
-
-#define S_SLEW_CAL_ENABLE 15
-#define V_SLEW_CAL_ENABLE(x) ((x) << S_SLEW_CAL_ENABLE)
-#define F_SLEW_CAL_ENABLE V_SLEW_CAL_ENABLE(1U)
-
-#define S_SLEW_CAL_START 14
-#define V_SLEW_CAL_START(x) ((x) << S_SLEW_CAL_START)
-#define F_SLEW_CAL_START V_SLEW_CAL_START(1U)
-
-#define S_SLEW_CAL_OVERRIDE_EN 12
-#define V_SLEW_CAL_OVERRIDE_EN(x) ((x) << S_SLEW_CAL_OVERRIDE_EN)
-#define F_SLEW_CAL_OVERRIDE_EN V_SLEW_CAL_OVERRIDE_EN(1U)
-
-#define S_SLEW_CAL_OVERRIDE 8
-#define M_SLEW_CAL_OVERRIDE 0xfU
-#define V_SLEW_CAL_OVERRIDE(x) ((x) << S_SLEW_CAL_OVERRIDE)
-#define G_SLEW_CAL_OVERRIDE(x) (((x) >> S_SLEW_CAL_OVERRIDE) & M_SLEW_CAL_OVERRIDE)
-
-#define S_SLEW_TARGET_PR_OFFSET 0
-#define M_SLEW_TARGET_PR_OFFSET 0x1fU
-#define V_SLEW_TARGET_PR_OFFSET(x) ((x) << S_SLEW_TARGET_PR_OFFSET)
-#define G_SLEW_TARGET_PR_OFFSET(x) (((x) >> S_SLEW_TARGET_PR_OFFSET) & M_SLEW_TARGET_PR_OFFSET)
-
-#define A_MC_DDRPHY_PC_DP18_PLL_LOCK_STATUS 0x47000
-
-#define S_DP18_PLL_LOCK 1
-#define M_DP18_PLL_LOCK 0x7fffU
-#define V_DP18_PLL_LOCK(x) ((x) << S_DP18_PLL_LOCK)
-#define G_DP18_PLL_LOCK(x) (((x) >> S_DP18_PLL_LOCK) & M_DP18_PLL_LOCK)
-
-#define A_MC_DDRPHY_PC_AD32S_PLL_LOCK_STATUS 0x47004
-
-#define S_AD32S_PLL_LOCK 14
-#define M_AD32S_PLL_LOCK 0x3U
-#define V_AD32S_PLL_LOCK(x) ((x) << S_AD32S_PLL_LOCK)
-#define G_AD32S_PLL_LOCK(x) (((x) >> S_AD32S_PLL_LOCK) & M_AD32S_PLL_LOCK)
-
-#define A_MC_DDRPHY_PC_RANK_PAIR0 0x47008
-
-#define S_RANK_PAIR0_PRI 13
-#define M_RANK_PAIR0_PRI 0x7U
-#define V_RANK_PAIR0_PRI(x) ((x) << S_RANK_PAIR0_PRI)
-#define G_RANK_PAIR0_PRI(x) (((x) >> S_RANK_PAIR0_PRI) & M_RANK_PAIR0_PRI)
-
-#define S_RANK_PAIR0_PRI_V 12
-#define V_RANK_PAIR0_PRI_V(x) ((x) << S_RANK_PAIR0_PRI_V)
-#define F_RANK_PAIR0_PRI_V V_RANK_PAIR0_PRI_V(1U)
-
-#define S_RANK_PAIR0_SEC 9
-#define M_RANK_PAIR0_SEC 0x7U
-#define V_RANK_PAIR0_SEC(x) ((x) << S_RANK_PAIR0_SEC)
-#define G_RANK_PAIR0_SEC(x) (((x) >> S_RANK_PAIR0_SEC) & M_RANK_PAIR0_SEC)
-
-#define S_RANK_PAIR0_SEC_V 8
-#define V_RANK_PAIR0_SEC_V(x) ((x) << S_RANK_PAIR0_SEC_V)
-#define F_RANK_PAIR0_SEC_V V_RANK_PAIR0_SEC_V(1U)
-
-#define S_RANK_PAIR1_PRI 5
-#define M_RANK_PAIR1_PRI 0x7U
-#define V_RANK_PAIR1_PRI(x) ((x) << S_RANK_PAIR1_PRI)
-#define G_RANK_PAIR1_PRI(x) (((x) >> S_RANK_PAIR1_PRI) & M_RANK_PAIR1_PRI)
-
-#define S_RANK_PAIR1_PRI_V 4
-#define V_RANK_PAIR1_PRI_V(x) ((x) << S_RANK_PAIR1_PRI_V)
-#define F_RANK_PAIR1_PRI_V V_RANK_PAIR1_PRI_V(1U)
-
-#define S_RANK_PAIR1_SEC 1
-#define M_RANK_PAIR1_SEC 0x7U
-#define V_RANK_PAIR1_SEC(x) ((x) << S_RANK_PAIR1_SEC)
-#define G_RANK_PAIR1_SEC(x) (((x) >> S_RANK_PAIR1_SEC) & M_RANK_PAIR1_SEC)
-
-#define S_RANK_PAIR1_SEC_V 0
-#define V_RANK_PAIR1_SEC_V(x) ((x) << S_RANK_PAIR1_SEC_V)
-#define F_RANK_PAIR1_SEC_V V_RANK_PAIR1_SEC_V(1U)
-
-#define A_MC_DDRPHY_PC_RANK_PAIR1 0x4700c
-
-#define S_RANK_PAIR2_PRI 13
-#define M_RANK_PAIR2_PRI 0x7U
-#define V_RANK_PAIR2_PRI(x) ((x) << S_RANK_PAIR2_PRI)
-#define G_RANK_PAIR2_PRI(x) (((x) >> S_RANK_PAIR2_PRI) & M_RANK_PAIR2_PRI)
-
-#define S_RANK_PAIR2_PRI_V 12
-#define V_RANK_PAIR2_PRI_V(x) ((x) << S_RANK_PAIR2_PRI_V)
-#define F_RANK_PAIR2_PRI_V V_RANK_PAIR2_PRI_V(1U)
-
-#define S_RANK_PAIR2_SEC 9
-#define M_RANK_PAIR2_SEC 0x7U
-#define V_RANK_PAIR2_SEC(x) ((x) << S_RANK_PAIR2_SEC)
-#define G_RANK_PAIR2_SEC(x) (((x) >> S_RANK_PAIR2_SEC) & M_RANK_PAIR2_SEC)
-
-#define S_RANK_PAIR2_SEC_V 8
-#define V_RANK_PAIR2_SEC_V(x) ((x) << S_RANK_PAIR2_SEC_V)
-#define F_RANK_PAIR2_SEC_V V_RANK_PAIR2_SEC_V(1U)
-
-#define S_RANK_PAIR3_PRI 5
-#define M_RANK_PAIR3_PRI 0x7U
-#define V_RANK_PAIR3_PRI(x) ((x) << S_RANK_PAIR3_PRI)
-#define G_RANK_PAIR3_PRI(x) (((x) >> S_RANK_PAIR3_PRI) & M_RANK_PAIR3_PRI)
-
-#define S_RANK_PAIR3_PRI_V 4
-#define V_RANK_PAIR3_PRI_V(x) ((x) << S_RANK_PAIR3_PRI_V)
-#define F_RANK_PAIR3_PRI_V V_RANK_PAIR3_PRI_V(1U)
-
-#define S_RANK_PAIR3_SEC 1
-#define M_RANK_PAIR3_SEC 0x7U
-#define V_RANK_PAIR3_SEC(x) ((x) << S_RANK_PAIR3_SEC)
-#define G_RANK_PAIR3_SEC(x) (((x) >> S_RANK_PAIR3_SEC) & M_RANK_PAIR3_SEC)
-
-#define S_RANK_PAIR3_SEC_V 0
-#define V_RANK_PAIR3_SEC_V(x) ((x) << S_RANK_PAIR3_SEC_V)
-#define F_RANK_PAIR3_SEC_V V_RANK_PAIR3_SEC_V(1U)
-
-#define A_MC_DDRPHY_PC_BASE_CNTR0 0x47010
-
-#define S_PERIODIC_BASE_CNTR0 0
-#define M_PERIODIC_BASE_CNTR0 0xffffU
-#define V_PERIODIC_BASE_CNTR0(x) ((x) << S_PERIODIC_BASE_CNTR0)
-#define G_PERIODIC_BASE_CNTR0(x) (((x) >> S_PERIODIC_BASE_CNTR0) & M_PERIODIC_BASE_CNTR0)
-
-#define A_MC_DDRPHY_PC_RELOAD_VALUE0 0x47014
-
-#define S_PERIODIC_CAL_REQ_EN 15
-#define V_PERIODIC_CAL_REQ_EN(x) ((x) << S_PERIODIC_CAL_REQ_EN)
-#define F_PERIODIC_CAL_REQ_EN V_PERIODIC_CAL_REQ_EN(1U)
-
-#define S_PERIODIC_RELOAD_VALUE0 0
-#define M_PERIODIC_RELOAD_VALUE0 0x7fffU
-#define V_PERIODIC_RELOAD_VALUE0(x) ((x) << S_PERIODIC_RELOAD_VALUE0)
-#define G_PERIODIC_RELOAD_VALUE0(x) (((x) >> S_PERIODIC_RELOAD_VALUE0) & M_PERIODIC_RELOAD_VALUE0)
-
-#define A_MC_DDRPHY_PC_BASE_CNTR1 0x47018
-
-#define S_PERIODIC_BASE_CNTR1 0
-#define M_PERIODIC_BASE_CNTR1 0xffffU
-#define V_PERIODIC_BASE_CNTR1(x) ((x) << S_PERIODIC_BASE_CNTR1)
-#define G_PERIODIC_BASE_CNTR1(x) (((x) >> S_PERIODIC_BASE_CNTR1) & M_PERIODIC_BASE_CNTR1)
-
-#define A_MC_DDRPHY_PC_CAL_TIMER 0x4701c
-
-#define S_PERIODIC_CAL_TIMER 0
-#define M_PERIODIC_CAL_TIMER 0xffffU
-#define V_PERIODIC_CAL_TIMER(x) ((x) << S_PERIODIC_CAL_TIMER)
-#define G_PERIODIC_CAL_TIMER(x) (((x) >> S_PERIODIC_CAL_TIMER) & M_PERIODIC_CAL_TIMER)
-
-#define A_MC_DDRPHY_PC_CAL_TIMER_RELOAD_VALUE 0x47020
-
-#define S_PERIODIC_TIMER_RELOAD_VALUE 0
-#define M_PERIODIC_TIMER_RELOAD_VALUE 0xffffU
-#define V_PERIODIC_TIMER_RELOAD_VALUE(x) ((x) << S_PERIODIC_TIMER_RELOAD_VALUE)
-#define G_PERIODIC_TIMER_RELOAD_VALUE(x) (((x) >> S_PERIODIC_TIMER_RELOAD_VALUE) & M_PERIODIC_TIMER_RELOAD_VALUE)
-
-#define A_MC_DDRPHY_PC_ZCAL_TIMER 0x47024
-
-#define S_PERIODIC_ZCAL_TIMER 0
-#define M_PERIODIC_ZCAL_TIMER 0xffffU
-#define V_PERIODIC_ZCAL_TIMER(x) ((x) << S_PERIODIC_ZCAL_TIMER)
-#define G_PERIODIC_ZCAL_TIMER(x) (((x) >> S_PERIODIC_ZCAL_TIMER) & M_PERIODIC_ZCAL_TIMER)
-
-#define A_MC_DDRPHY_PC_ZCAL_TIMER_RELOAD_VALUE 0x47028
-#define A_MC_DDRPHY_PC_PER_CAL_CONFIG 0x4702c
-
-#define S_PER_ENA_RANK_PAIR 12
-#define M_PER_ENA_RANK_PAIR 0xfU
-#define V_PER_ENA_RANK_PAIR(x) ((x) << S_PER_ENA_RANK_PAIR)
-#define G_PER_ENA_RANK_PAIR(x) (((x) >> S_PER_ENA_RANK_PAIR) & M_PER_ENA_RANK_PAIR)
-
-#define S_PER_ENA_ZCAL 11
-#define V_PER_ENA_ZCAL(x) ((x) << S_PER_ENA_ZCAL)
-#define F_PER_ENA_ZCAL V_PER_ENA_ZCAL(1U)
-
-#define S_PER_ENA_SYSCLK_ALIGN 10
-#define V_PER_ENA_SYSCLK_ALIGN(x) ((x) << S_PER_ENA_SYSCLK_ALIGN)
-#define F_PER_ENA_SYSCLK_ALIGN V_PER_ENA_SYSCLK_ALIGN(1U)
-
-#define S_ENA_PER_RDCLK_ALIGN 9
-#define V_ENA_PER_RDCLK_ALIGN(x) ((x) << S_ENA_PER_RDCLK_ALIGN)
-#define F_ENA_PER_RDCLK_ALIGN V_ENA_PER_RDCLK_ALIGN(1U)
-
-#define S_ENA_PER_DQS_ALIGN 8
-#define V_ENA_PER_DQS_ALIGN(x) ((x) << S_ENA_PER_DQS_ALIGN)
-#define F_ENA_PER_DQS_ALIGN V_ENA_PER_DQS_ALIGN(1U)
-
-#define S_ENA_PER_READ_CTR 7
-#define V_ENA_PER_READ_CTR(x) ((x) << S_ENA_PER_READ_CTR)
-#define F_ENA_PER_READ_CTR V_ENA_PER_READ_CTR(1U)
-
-#define S_PER_NEXT_RANK_PAIR 5
-#define M_PER_NEXT_RANK_PAIR 0x3U
-#define V_PER_NEXT_RANK_PAIR(x) ((x) << S_PER_NEXT_RANK_PAIR)
-#define G_PER_NEXT_RANK_PAIR(x) (((x) >> S_PER_NEXT_RANK_PAIR) & M_PER_NEXT_RANK_PAIR)
-
-#define S_FAST_SIM_PER_CNTR 4
-#define V_FAST_SIM_PER_CNTR(x) ((x) << S_FAST_SIM_PER_CNTR)
-#define F_FAST_SIM_PER_CNTR V_FAST_SIM_PER_CNTR(1U)
-
-#define S_START_INIT_CAL 3
-#define V_START_INIT_CAL(x) ((x) << S_START_INIT_CAL)
-#define F_START_INIT_CAL V_START_INIT_CAL(1U)
-
-#define S_START_PER_CAL 2
-#define V_START_PER_CAL(x) ((x) << S_START_PER_CAL)
-#define F_START_PER_CAL V_START_PER_CAL(1U)
-
-#define A_MC_DDRPHY_PC_CONFIG0 0x47030
-
-#define S_PROTOCOL_DDR 12
-#define M_PROTOCOL_DDR 0xfU
-#define V_PROTOCOL_DDR(x) ((x) << S_PROTOCOL_DDR)
-#define G_PROTOCOL_DDR(x) (((x) >> S_PROTOCOL_DDR) & M_PROTOCOL_DDR)
-
-#define S_DATA_MUX4_1MODE 11
-#define V_DATA_MUX4_1MODE(x) ((x) << S_DATA_MUX4_1MODE)
-#define F_DATA_MUX4_1MODE V_DATA_MUX4_1MODE(1U)
-
-#define S_DDR4_CMD_SIG_REDUCTION 9
-#define V_DDR4_CMD_SIG_REDUCTION(x) ((x) << S_DDR4_CMD_SIG_REDUCTION)
-#define F_DDR4_CMD_SIG_REDUCTION V_DDR4_CMD_SIG_REDUCTION(1U)
-
-#define S_SYSCLK_2X_MEMINTCLKO 8
-#define V_SYSCLK_2X_MEMINTCLKO(x) ((x) << S_SYSCLK_2X_MEMINTCLKO)
-#define F_SYSCLK_2X_MEMINTCLKO V_SYSCLK_2X_MEMINTCLKO(1U)
-
-#define S_RANK_OVERRIDE 7
-#define V_RANK_OVERRIDE(x) ((x) << S_RANK_OVERRIDE)
-#define F_RANK_OVERRIDE V_RANK_OVERRIDE(1U)
-
-#define S_RANK_OVERRIDE_VALUE 4
-#define M_RANK_OVERRIDE_VALUE 0x7U
-#define V_RANK_OVERRIDE_VALUE(x) ((x) << S_RANK_OVERRIDE_VALUE)
-#define G_RANK_OVERRIDE_VALUE(x) (((x) >> S_RANK_OVERRIDE_VALUE) & M_RANK_OVERRIDE_VALUE)
-
-#define S_LOW_LATENCY 3
-#define V_LOW_LATENCY(x) ((x) << S_LOW_LATENCY)
-#define F_LOW_LATENCY V_LOW_LATENCY(1U)
-
-#define S_DDR4_BANK_REFRESH 2
-#define V_DDR4_BANK_REFRESH(x) ((x) << S_DDR4_BANK_REFRESH)
-#define F_DDR4_BANK_REFRESH V_DDR4_BANK_REFRESH(1U)
-
-#define S_DDR4_VLEVEL_BANK_GROUP 1
-#define V_DDR4_VLEVEL_BANK_GROUP(x) ((x) << S_DDR4_VLEVEL_BANK_GROUP)
-#define F_DDR4_VLEVEL_BANK_GROUP V_DDR4_VLEVEL_BANK_GROUP(1U)
-
-#define A_MC_DDRPHY_PC_CONFIG1 0x47034
-
-#define S_WRITE_LATENCY_OFFSET 12
-#define M_WRITE_LATENCY_OFFSET 0xfU
-#define V_WRITE_LATENCY_OFFSET(x) ((x) << S_WRITE_LATENCY_OFFSET)
-#define G_WRITE_LATENCY_OFFSET(x) (((x) >> S_WRITE_LATENCY_OFFSET) & M_WRITE_LATENCY_OFFSET)
-
-#define S_READ_LATENCY_OFFSET 8
-#define M_READ_LATENCY_OFFSET 0xfU
-#define V_READ_LATENCY_OFFSET(x) ((x) << S_READ_LATENCY_OFFSET)
-#define G_READ_LATENCY_OFFSET(x) (((x) >> S_READ_LATENCY_OFFSET) & M_READ_LATENCY_OFFSET)
-
-#define S_MEMCTL_CIC_FAST 7
-#define V_MEMCTL_CIC_FAST(x) ((x) << S_MEMCTL_CIC_FAST)
-#define F_MEMCTL_CIC_FAST V_MEMCTL_CIC_FAST(1U)
-
-#define S_MEMCTL_CTRN_IGNORE 6
-#define V_MEMCTL_CTRN_IGNORE(x) ((x) << S_MEMCTL_CTRN_IGNORE)
-#define F_MEMCTL_CTRN_IGNORE V_MEMCTL_CTRN_IGNORE(1U)
-
-#define S_DISABLE_MEMCTL_CAL 5
-#define V_DISABLE_MEMCTL_CAL(x) ((x) << S_DISABLE_MEMCTL_CAL)
-#define F_DISABLE_MEMCTL_CAL V_DISABLE_MEMCTL_CAL(1U)
-
-#define A_MC_DDRPHY_PC_RESETS 0x47038
-
-#define S_PLL_RESET 15
-#define V_PLL_RESET(x) ((x) << S_PLL_RESET)
-#define F_PLL_RESET V_PLL_RESET(1U)
-
-#define S_SYSCLK_RESET 14
-#define V_SYSCLK_RESET(x) ((x) << S_SYSCLK_RESET)
-#define F_SYSCLK_RESET V_SYSCLK_RESET(1U)
-
-#define A_MC_DDRPHY_PC_PER_ZCAL_CONFIG 0x4703c
-
-#define S_PER_ZCAL_ENA_RANK 8
-#define M_PER_ZCAL_ENA_RANK 0xffU
-#define V_PER_ZCAL_ENA_RANK(x) ((x) << S_PER_ZCAL_ENA_RANK)
-#define G_PER_ZCAL_ENA_RANK(x) (((x) >> S_PER_ZCAL_ENA_RANK) & M_PER_ZCAL_ENA_RANK)
-
-#define S_PER_ZCAL_NEXT_RANK 5
-#define M_PER_ZCAL_NEXT_RANK 0x7U
-#define V_PER_ZCAL_NEXT_RANK(x) ((x) << S_PER_ZCAL_NEXT_RANK)
-#define G_PER_ZCAL_NEXT_RANK(x) (((x) >> S_PER_ZCAL_NEXT_RANK) & M_PER_ZCAL_NEXT_RANK)
-
-#define S_START_PER_ZCAL 4
-#define V_START_PER_ZCAL(x) ((x) << S_START_PER_ZCAL)
-#define F_START_PER_ZCAL V_START_PER_ZCAL(1U)
-
-#define A_MC_DDRPHY_PC_RANK_GROUP 0x47044
-
-#define S_ADDR_MIRROR_RP0_PRI 15
-#define V_ADDR_MIRROR_RP0_PRI(x) ((x) << S_ADDR_MIRROR_RP0_PRI)
-#define F_ADDR_MIRROR_RP0_PRI V_ADDR_MIRROR_RP0_PRI(1U)
-
-#define S_ADDR_MIRROR_RP0_SEC 14
-#define V_ADDR_MIRROR_RP0_SEC(x) ((x) << S_ADDR_MIRROR_RP0_SEC)
-#define F_ADDR_MIRROR_RP0_SEC V_ADDR_MIRROR_RP0_SEC(1U)
-
-#define S_ADDR_MIRROR_RP1_PRI 13
-#define V_ADDR_MIRROR_RP1_PRI(x) ((x) << S_ADDR_MIRROR_RP1_PRI)
-#define F_ADDR_MIRROR_RP1_PRI V_ADDR_MIRROR_RP1_PRI(1U)
-
-#define S_ADDR_MIRROR_RP1_SEC 12
-#define V_ADDR_MIRROR_RP1_SEC(x) ((x) << S_ADDR_MIRROR_RP1_SEC)
-#define F_ADDR_MIRROR_RP1_SEC V_ADDR_MIRROR_RP1_SEC(1U)
-
-#define S_ADDR_MIRROR_RP2_PRI 11
-#define V_ADDR_MIRROR_RP2_PRI(x) ((x) << S_ADDR_MIRROR_RP2_PRI)
-#define F_ADDR_MIRROR_RP2_PRI V_ADDR_MIRROR_RP2_PRI(1U)
-
-#define S_ADDR_MIRROR_RP2_SEC 10
-#define V_ADDR_MIRROR_RP2_SEC(x) ((x) << S_ADDR_MIRROR_RP2_SEC)
-#define F_ADDR_MIRROR_RP2_SEC V_ADDR_MIRROR_RP2_SEC(1U)
-
-#define S_ADDR_MIRROR_RP3_PRI 9
-#define V_ADDR_MIRROR_RP3_PRI(x) ((x) << S_ADDR_MIRROR_RP3_PRI)
-#define F_ADDR_MIRROR_RP3_PRI V_ADDR_MIRROR_RP3_PRI(1U)
-
-#define S_ADDR_MIRROR_RP3_SEC 8
-#define V_ADDR_MIRROR_RP3_SEC(x) ((x) << S_ADDR_MIRROR_RP3_SEC)
-#define F_ADDR_MIRROR_RP3_SEC V_ADDR_MIRROR_RP3_SEC(1U)
-
-#define S_RANK_GROUPING 6
-#define M_RANK_GROUPING 0x3U
-#define V_RANK_GROUPING(x) ((x) << S_RANK_GROUPING)
-#define G_RANK_GROUPING(x) (((x) >> S_RANK_GROUPING) & M_RANK_GROUPING)
-
-#define A_MC_DDRPHY_PC_ERROR_STATUS0 0x47048
-
-#define S_RC_ERROR 15
-#define V_RC_ERROR(x) ((x) << S_RC_ERROR)
-#define F_RC_ERROR V_RC_ERROR(1U)
-
-#define S_WC_ERROR 14
-#define V_WC_ERROR(x) ((x) << S_WC_ERROR)
-#define F_WC_ERROR V_WC_ERROR(1U)
-
-#define S_SEQ_ERROR 13
-#define V_SEQ_ERROR(x) ((x) << S_SEQ_ERROR)
-#define F_SEQ_ERROR V_SEQ_ERROR(1U)
-
-#define S_CC_ERROR 12
-#define V_CC_ERROR(x) ((x) << S_CC_ERROR)
-#define F_CC_ERROR V_CC_ERROR(1U)
-
-#define S_APB_ERROR 11
-#define V_APB_ERROR(x) ((x) << S_APB_ERROR)
-#define F_APB_ERROR V_APB_ERROR(1U)
-
-#define S_PC_ERROR 10
-#define V_PC_ERROR(x) ((x) << S_PC_ERROR)
-#define F_PC_ERROR V_PC_ERROR(1U)
-
-#define A_MC_DDRPHY_PC_ERROR_MASK0 0x4704c
-
-#define S_RC_ERROR_MASK 15
-#define V_RC_ERROR_MASK(x) ((x) << S_RC_ERROR_MASK)
-#define F_RC_ERROR_MASK V_RC_ERROR_MASK(1U)
-
-#define S_WC_ERROR_MASK 14
-#define V_WC_ERROR_MASK(x) ((x) << S_WC_ERROR_MASK)
-#define F_WC_ERROR_MASK V_WC_ERROR_MASK(1U)
-
-#define S_SEQ_ERROR_MASK 13
-#define V_SEQ_ERROR_MASK(x) ((x) << S_SEQ_ERROR_MASK)
-#define F_SEQ_ERROR_MASK V_SEQ_ERROR_MASK(1U)
-
-#define S_CC_ERROR_MASK 12
-#define V_CC_ERROR_MASK(x) ((x) << S_CC_ERROR_MASK)
-#define F_CC_ERROR_MASK V_CC_ERROR_MASK(1U)
-
-#define S_APB_ERROR_MASK 11
-#define V_APB_ERROR_MASK(x) ((x) << S_APB_ERROR_MASK)
-#define F_APB_ERROR_MASK V_APB_ERROR_MASK(1U)
-
-#define S_PC_ERROR_MASK 10
-#define V_PC_ERROR_MASK(x) ((x) << S_PC_ERROR_MASK)
-#define F_PC_ERROR_MASK V_PC_ERROR_MASK(1U)
-
-#define A_MC_DDRPHY_PC_IO_PVT_FET_CONTROL 0x47050
-
-#define S_PVTP 11
-#define M_PVTP 0x1fU
-#define V_PVTP(x) ((x) << S_PVTP)
-#define G_PVTP(x) (((x) >> S_PVTP) & M_PVTP)
-
-#define S_PVTN 6
-#define M_PVTN 0x1fU
-#define V_PVTN(x) ((x) << S_PVTN)
-#define G_PVTN(x) (((x) >> S_PVTN) & M_PVTN)
-
-#define S_PVT_OVERRIDE 5
-#define V_PVT_OVERRIDE(x) ((x) << S_PVT_OVERRIDE)
-#define F_PVT_OVERRIDE V_PVT_OVERRIDE(1U)
-
-#define S_ENABLE_ZCAL 4
-#define V_ENABLE_ZCAL(x) ((x) << S_ENABLE_ZCAL)
-#define F_ENABLE_ZCAL V_ENABLE_ZCAL(1U)
-
-#define A_MC_DDRPHY_PC_VREF_DRV_CONTROL 0x47054
-
-#define S_VREFDQ0DSGN 15
-#define V_VREFDQ0DSGN(x) ((x) << S_VREFDQ0DSGN)
-#define F_VREFDQ0DSGN V_VREFDQ0DSGN(1U)
-
-#define S_VREFDQ0D 11
-#define M_VREFDQ0D 0xfU
-#define V_VREFDQ0D(x) ((x) << S_VREFDQ0D)
-#define G_VREFDQ0D(x) (((x) >> S_VREFDQ0D) & M_VREFDQ0D)
-
-#define S_VREFDQ1DSGN 10
-#define V_VREFDQ1DSGN(x) ((x) << S_VREFDQ1DSGN)
-#define F_VREFDQ1DSGN V_VREFDQ1DSGN(1U)
-
-#define S_VREFDQ1D 6
-#define M_VREFDQ1D 0xfU
-#define V_VREFDQ1D(x) ((x) << S_VREFDQ1D)
-#define G_VREFDQ1D(x) (((x) >> S_VREFDQ1D) & M_VREFDQ1D)
-
-#define A_MC_DDRPHY_PC_INIT_CAL_CONFIG0 0x47058
-
-#define S_ENA_WR_LEVEL 15
-#define V_ENA_WR_LEVEL(x) ((x) << S_ENA_WR_LEVEL)
-#define F_ENA_WR_LEVEL V_ENA_WR_LEVEL(1U)
-
-#define S_ENA_INITIAL_PAT_WR 14
-#define V_ENA_INITIAL_PAT_WR(x) ((x) << S_ENA_INITIAL_PAT_WR)
-#define F_ENA_INITIAL_PAT_WR V_ENA_INITIAL_PAT_WR(1U)
-
-#define S_ENA_DQS_ALIGN 13
-#define V_ENA_DQS_ALIGN(x) ((x) << S_ENA_DQS_ALIGN)
-#define F_ENA_DQS_ALIGN V_ENA_DQS_ALIGN(1U)
-
-#define S_ENA_RDCLK_ALIGN 12
-#define V_ENA_RDCLK_ALIGN(x) ((x) << S_ENA_RDCLK_ALIGN)
-#define F_ENA_RDCLK_ALIGN V_ENA_RDCLK_ALIGN(1U)
-
-#define S_ENA_READ_CTR 11
-#define V_ENA_READ_CTR(x) ((x) << S_ENA_READ_CTR)
-#define F_ENA_READ_CTR V_ENA_READ_CTR(1U)
-
-#define S_ENA_WRITE_CTR 10
-#define V_ENA_WRITE_CTR(x) ((x) << S_ENA_WRITE_CTR)
-#define F_ENA_WRITE_CTR V_ENA_WRITE_CTR(1U)
-
-#define S_ENA_INITIAL_COARSE_WR 9
-#define V_ENA_INITIAL_COARSE_WR(x) ((x) << S_ENA_INITIAL_COARSE_WR)
-#define F_ENA_INITIAL_COARSE_WR V_ENA_INITIAL_COARSE_WR(1U)
-
-#define S_ENA_COARSE_RD 8
-#define V_ENA_COARSE_RD(x) ((x) << S_ENA_COARSE_RD)
-#define F_ENA_COARSE_RD V_ENA_COARSE_RD(1U)
-
-#define S_ENA_CUSTOM_RD 7
-#define V_ENA_CUSTOM_RD(x) ((x) << S_ENA_CUSTOM_RD)
-#define F_ENA_CUSTOM_RD V_ENA_CUSTOM_RD(1U)
-
-#define S_ENA_CUSTOM_WR 6
-#define V_ENA_CUSTOM_WR(x) ((x) << S_ENA_CUSTOM_WR)
-#define F_ENA_CUSTOM_WR V_ENA_CUSTOM_WR(1U)
-
-#define S_ABORT_ON_CAL_ERROR 5
-#define V_ABORT_ON_CAL_ERROR(x) ((x) << S_ABORT_ON_CAL_ERROR)
-#define F_ABORT_ON_CAL_ERROR V_ABORT_ON_CAL_ERROR(1U)
-
-#define S_ENA_DIGITAL_EYE 4
-#define V_ENA_DIGITAL_EYE(x) ((x) << S_ENA_DIGITAL_EYE)
-#define F_ENA_DIGITAL_EYE V_ENA_DIGITAL_EYE(1U)
-
-#define S_ENA_RANK_PAIR 0
-#define M_ENA_RANK_PAIR 0xfU
-#define V_ENA_RANK_PAIR(x) ((x) << S_ENA_RANK_PAIR)
-#define G_ENA_RANK_PAIR(x) (((x) >> S_ENA_RANK_PAIR) & M_ENA_RANK_PAIR)
-
-#define A_MC_DDRPHY_PC_INIT_CAL_CONFIG1 0x4705c
-
-#define S_REFRESH_COUNT 12
-#define M_REFRESH_COUNT 0xfU
-#define V_REFRESH_COUNT(x) ((x) << S_REFRESH_COUNT)
-#define G_REFRESH_COUNT(x) (((x) >> S_REFRESH_COUNT) & M_REFRESH_COUNT)
-
-#define S_REFRESH_CONTROL 10
-#define M_REFRESH_CONTROL 0x3U
-#define V_REFRESH_CONTROL(x) ((x) << S_REFRESH_CONTROL)
-#define G_REFRESH_CONTROL(x) (((x) >> S_REFRESH_CONTROL) & M_REFRESH_CONTROL)
-
-#define S_REFRESH_ALL_RANKS 9
-#define V_REFRESH_ALL_RANKS(x) ((x) << S_REFRESH_ALL_RANKS)
-#define F_REFRESH_ALL_RANKS V_REFRESH_ALL_RANKS(1U)
-
-#define S_REFRESH_INTERVAL 0
-#define M_REFRESH_INTERVAL 0x7fU
-#define V_REFRESH_INTERVAL(x) ((x) << S_REFRESH_INTERVAL)
-#define G_REFRESH_INTERVAL(x) (((x) >> S_REFRESH_INTERVAL) & M_REFRESH_INTERVAL)
-
-#define A_MC_DDRPHY_PC_INIT_CAL_ERROR 0x47060
-
-#define S_ERROR_WR_LEVEL 15
-#define V_ERROR_WR_LEVEL(x) ((x) << S_ERROR_WR_LEVEL)
-#define F_ERROR_WR_LEVEL V_ERROR_WR_LEVEL(1U)
-
-#define S_ERROR_INITIAL_PAT_WRITE 14
-#define V_ERROR_INITIAL_PAT_WRITE(x) ((x) << S_ERROR_INITIAL_PAT_WRITE)
-#define F_ERROR_INITIAL_PAT_WRITE V_ERROR_INITIAL_PAT_WRITE(1U)
-
-#define S_ERROR_DQS_ALIGN 13
-#define V_ERROR_DQS_ALIGN(x) ((x) << S_ERROR_DQS_ALIGN)
-#define F_ERROR_DQS_ALIGN V_ERROR_DQS_ALIGN(1U)
-
-#define S_ERROR_RDCLK_ALIGN 12
-#define V_ERROR_RDCLK_ALIGN(x) ((x) << S_ERROR_RDCLK_ALIGN)
-#define F_ERROR_RDCLK_ALIGN V_ERROR_RDCLK_ALIGN(1U)
-
-#define S_ERROR_READ_CTR 11
-#define V_ERROR_READ_CTR(x) ((x) << S_ERROR_READ_CTR)
-#define F_ERROR_READ_CTR V_ERROR_READ_CTR(1U)
-
-#define S_ERROR_WRITE_CTR 10
-#define V_ERROR_WRITE_CTR(x) ((x) << S_ERROR_WRITE_CTR)
-#define F_ERROR_WRITE_CTR V_ERROR_WRITE_CTR(1U)
-
-#define S_ERROR_INITIAL_COARSE_WR 9
-#define V_ERROR_INITIAL_COARSE_WR(x) ((x) << S_ERROR_INITIAL_COARSE_WR)
-#define F_ERROR_INITIAL_COARSE_WR V_ERROR_INITIAL_COARSE_WR(1U)
-
-#define S_ERROR_COARSE_RD 8
-#define V_ERROR_COARSE_RD(x) ((x) << S_ERROR_COARSE_RD)
-#define F_ERROR_COARSE_RD V_ERROR_COARSE_RD(1U)
-
-#define S_ERROR_CUSTOM_RD 7
-#define V_ERROR_CUSTOM_RD(x) ((x) << S_ERROR_CUSTOM_RD)
-#define F_ERROR_CUSTOM_RD V_ERROR_CUSTOM_RD(1U)
-
-#define S_ERROR_CUSTOM_WR 6
-#define V_ERROR_CUSTOM_WR(x) ((x) << S_ERROR_CUSTOM_WR)
-#define F_ERROR_CUSTOM_WR V_ERROR_CUSTOM_WR(1U)
-
-#define S_ERROR_DIGITAL_EYE 5
-#define V_ERROR_DIGITAL_EYE(x) ((x) << S_ERROR_DIGITAL_EYE)
-#define F_ERROR_DIGITAL_EYE V_ERROR_DIGITAL_EYE(1U)
-
-#define S_ERROR_RANK_PAIR 0
-#define M_ERROR_RANK_PAIR 0xfU
-#define V_ERROR_RANK_PAIR(x) ((x) << S_ERROR_RANK_PAIR)
-#define G_ERROR_RANK_PAIR(x) (((x) >> S_ERROR_RANK_PAIR) & M_ERROR_RANK_PAIR)
-
-#define A_MC_DDRPHY_PC_INIT_CAL_STATUS 0x47064
-
-#define S_INIT_CAL_COMPLETE 12
-#define M_INIT_CAL_COMPLETE 0xfU
-#define V_INIT_CAL_COMPLETE(x) ((x) << S_INIT_CAL_COMPLETE)
-#define G_INIT_CAL_COMPLETE(x) (((x) >> S_INIT_CAL_COMPLETE) & M_INIT_CAL_COMPLETE)
-
-#define A_MC_DDRPHY_PC_INIT_CAL_MASK 0x47068
-
-#define S_ERROR_WR_LEVEL_MASK 15
-#define V_ERROR_WR_LEVEL_MASK(x) ((x) << S_ERROR_WR_LEVEL_MASK)
-#define F_ERROR_WR_LEVEL_MASK V_ERROR_WR_LEVEL_MASK(1U)
-
-#define S_ERROR_INITIAL_PAT_WRITE_MASK 14
-#define V_ERROR_INITIAL_PAT_WRITE_MASK(x) ((x) << S_ERROR_INITIAL_PAT_WRITE_MASK)
-#define F_ERROR_INITIAL_PAT_WRITE_MASK V_ERROR_INITIAL_PAT_WRITE_MASK(1U)
-
-#define S_ERROR_DQS_ALIGN_MASK 13
-#define V_ERROR_DQS_ALIGN_MASK(x) ((x) << S_ERROR_DQS_ALIGN_MASK)
-#define F_ERROR_DQS_ALIGN_MASK V_ERROR_DQS_ALIGN_MASK(1U)
-
-#define S_ERROR_RDCLK_ALIGN_MASK 12
-#define V_ERROR_RDCLK_ALIGN_MASK(x) ((x) << S_ERROR_RDCLK_ALIGN_MASK)
-#define F_ERROR_RDCLK_ALIGN_MASK V_ERROR_RDCLK_ALIGN_MASK(1U)
-
-#define S_ERROR_READ_CTR_MASK 11
-#define V_ERROR_READ_CTR_MASK(x) ((x) << S_ERROR_READ_CTR_MASK)
-#define F_ERROR_READ_CTR_MASK V_ERROR_READ_CTR_MASK(1U)
-
-#define S_ERROR_WRITE_CTR_MASK 10
-#define V_ERROR_WRITE_CTR_MASK(x) ((x) << S_ERROR_WRITE_CTR_MASK)
-#define F_ERROR_WRITE_CTR_MASK V_ERROR_WRITE_CTR_MASK(1U)
-
-#define S_ERROR_INITIAL_COARSE_WR_MASK 9
-#define V_ERROR_INITIAL_COARSE_WR_MASK(x) ((x) << S_ERROR_INITIAL_COARSE_WR_MASK)
-#define F_ERROR_INITIAL_COARSE_WR_MASK V_ERROR_INITIAL_COARSE_WR_MASK(1U)
-
-#define S_ERROR_COARSE_RD_MASK 8
-#define V_ERROR_COARSE_RD_MASK(x) ((x) << S_ERROR_COARSE_RD_MASK)
-#define F_ERROR_COARSE_RD_MASK V_ERROR_COARSE_RD_MASK(1U)
-
-#define S_ERROR_CUSTOM_RD_MASK 7
-#define V_ERROR_CUSTOM_RD_MASK(x) ((x) << S_ERROR_CUSTOM_RD_MASK)
-#define F_ERROR_CUSTOM_RD_MASK V_ERROR_CUSTOM_RD_MASK(1U)
-
-#define S_ERROR_CUSTOM_WR_MASK 6
-#define V_ERROR_CUSTOM_WR_MASK(x) ((x) << S_ERROR_CUSTOM_WR_MASK)
-#define F_ERROR_CUSTOM_WR_MASK V_ERROR_CUSTOM_WR_MASK(1U)
-
-#define S_ERROR_DIGITAL_EYE_MASK 5
-#define V_ERROR_DIGITAL_EYE_MASK(x) ((x) << S_ERROR_DIGITAL_EYE_MASK)
-#define F_ERROR_DIGITAL_EYE_MASK V_ERROR_DIGITAL_EYE_MASK(1U)
-
-#define A_MC_DDRPHY_PC_IO_PVT_FET_STATUS 0x4706c
-#define A_MC_DDRPHY_PC_MR0_PRI_RP 0x47070
-
-#define S_MODEREGISTER0VALUE 0
-#define M_MODEREGISTER0VALUE 0xffffU
-#define V_MODEREGISTER0VALUE(x) ((x) << S_MODEREGISTER0VALUE)
-#define G_MODEREGISTER0VALUE(x) (((x) >> S_MODEREGISTER0VALUE) & M_MODEREGISTER0VALUE)
-
-#define A_MC_DDRPHY_PC_MR1_PRI_RP 0x47074
-
-#define S_MODEREGISTER1VALUE 0
-#define M_MODEREGISTER1VALUE 0xffffU
-#define V_MODEREGISTER1VALUE(x) ((x) << S_MODEREGISTER1VALUE)
-#define G_MODEREGISTER1VALUE(x) (((x) >> S_MODEREGISTER1VALUE) & M_MODEREGISTER1VALUE)
-
-#define A_MC_DDRPHY_PC_MR2_PRI_RP 0x47078
-
-#define S_MODEREGISTER2VALUE 0
-#define M_MODEREGISTER2VALUE 0xffffU
-#define V_MODEREGISTER2VALUE(x) ((x) << S_MODEREGISTER2VALUE)
-#define G_MODEREGISTER2VALUE(x) (((x) >> S_MODEREGISTER2VALUE) & M_MODEREGISTER2VALUE)
-
-#define A_MC_DDRPHY_PC_MR3_PRI_RP 0x4707c
-
-#define S_MODEREGISTER3VALUE 0
-#define M_MODEREGISTER3VALUE 0xffffU
-#define V_MODEREGISTER3VALUE(x) ((x) << S_MODEREGISTER3VALUE)
-#define G_MODEREGISTER3VALUE(x) (((x) >> S_MODEREGISTER3VALUE) & M_MODEREGISTER3VALUE)
-
-#define A_MC_DDRPHY_PC_MR0_SEC_RP 0x47080
-#define A_MC_DDRPHY_PC_MR1_SEC_RP 0x47084
-#define A_MC_DDRPHY_PC_MR2_SEC_RP 0x47088
-#define A_MC_DDRPHY_PC_MR3_SEC_RP 0x4708c
-
-#define S_MODE_REGISTER_3_VALUE 0
-#define M_MODE_REGISTER_3_VALUE 0xffffU
-#define V_MODE_REGISTER_3_VALUE(x) ((x) << S_MODE_REGISTER_3_VALUE)
-#define G_MODE_REGISTER_3_VALUE(x) (((x) >> S_MODE_REGISTER_3_VALUE) & M_MODE_REGISTER_3_VALUE)
-
-#define A_MC_DDRPHY_SEQ_RD_WR_DATA0 0x47200
-
-#define S_DRD_WR_DATA_REG 0
-#define M_DRD_WR_DATA_REG 0xffffU
-#define V_DRD_WR_DATA_REG(x) ((x) << S_DRD_WR_DATA_REG)
-#define G_DRD_WR_DATA_REG(x) (((x) >> S_DRD_WR_DATA_REG) & M_DRD_WR_DATA_REG)
-
-#define A_MC_DDRPHY_SEQ_RD_WR_DATA1 0x47204
-#define A_MC_DDRPHY_SEQ_CONFIG0 0x47208
-
-#define S_MPR_PATTERN_BIT 15
-#define V_MPR_PATTERN_BIT(x) ((x) << S_MPR_PATTERN_BIT)
-#define F_MPR_PATTERN_BIT V_MPR_PATTERN_BIT(1U)
-
-#define S_TWO_CYCLE_ADDR_EN 14
-#define V_TWO_CYCLE_ADDR_EN(x) ((x) << S_TWO_CYCLE_ADDR_EN)
-#define F_TWO_CYCLE_ADDR_EN V_TWO_CYCLE_ADDR_EN(1U)
-
-#define S_MR_MASK_EN 10
-#define M_MR_MASK_EN 0xfU
-#define V_MR_MASK_EN(x) ((x) << S_MR_MASK_EN)
-#define G_MR_MASK_EN(x) (((x) >> S_MR_MASK_EN) & M_MR_MASK_EN)
-
-#define A_MC_DDRPHY_SEQ_RESERVED_ADDR0 0x4720c
-#define A_MC_DDRPHY_SEQ_RESERVED_ADDR1 0x47210
-#define A_MC_DDRPHY_SEQ_RESERVED_ADDR2 0x47214
-#define A_MC_DDRPHY_SEQ_RESERVED_ADDR3 0x47218
-#define A_MC_DDRPHY_SEQ_RESERVED_ADDR4 0x4721c
-#define A_MC_DDRPHY_SEQ_ERROR_STATUS0 0x47220
-
-#define S_MULTIPLE_REQ_ERROR 15
-#define V_MULTIPLE_REQ_ERROR(x) ((x) << S_MULTIPLE_REQ_ERROR)
-#define F_MULTIPLE_REQ_ERROR V_MULTIPLE_REQ_ERROR(1U)
-
-#define S_INVALID_REQTYPE_ERRO 14
-#define V_INVALID_REQTYPE_ERRO(x) ((x) << S_INVALID_REQTYPE_ERRO)
-#define F_INVALID_REQTYPE_ERRO V_INVALID_REQTYPE_ERRO(1U)
-
-#define S_EARLY_REQ_ERROR 13
-#define V_EARLY_REQ_ERROR(x) ((x) << S_EARLY_REQ_ERROR)
-#define F_EARLY_REQ_ERROR V_EARLY_REQ_ERROR(1U)
-
-#define S_MULTIPLE_REQ_SOURCE 10
-#define M_MULTIPLE_REQ_SOURCE 0x7U
-#define V_MULTIPLE_REQ_SOURCE(x) ((x) << S_MULTIPLE_REQ_SOURCE)
-#define G_MULTIPLE_REQ_SOURCE(x) (((x) >> S_MULTIPLE_REQ_SOURCE) & M_MULTIPLE_REQ_SOURCE)
-
-#define S_INVALID_REQTYPE 6
-#define M_INVALID_REQTYPE 0xfU
-#define V_INVALID_REQTYPE(x) ((x) << S_INVALID_REQTYPE)
-#define G_INVALID_REQTYPE(x) (((x) >> S_INVALID_REQTYPE) & M_INVALID_REQTYPE)
-
-#define S_INVALID_REQ_SOURCE 3
-#define M_INVALID_REQ_SOURCE 0x7U
-#define V_INVALID_REQ_SOURCE(x) ((x) << S_INVALID_REQ_SOURCE)
-#define G_INVALID_REQ_SOURCE(x) (((x) >> S_INVALID_REQ_SOURCE) & M_INVALID_REQ_SOURCE)
-
-#define S_EARLY_REQ_SOURCE 0
-#define M_EARLY_REQ_SOURCE 0x7U
-#define V_EARLY_REQ_SOURCE(x) ((x) << S_EARLY_REQ_SOURCE)
-#define G_EARLY_REQ_SOURCE(x) (((x) >> S_EARLY_REQ_SOURCE) & M_EARLY_REQ_SOURCE)
-
-#define A_MC_DDRPHY_SEQ_ERROR_MASK0 0x47224
-
-#define S_MULT_REQ_ERR_MASK 15
-#define V_MULT_REQ_ERR_MASK(x) ((x) << S_MULT_REQ_ERR_MASK)
-#define F_MULT_REQ_ERR_MASK V_MULT_REQ_ERR_MASK(1U)
-
-#define S_INVALID_REQTYPE_ERR_MASK 14
-#define V_INVALID_REQTYPE_ERR_MASK(x) ((x) << S_INVALID_REQTYPE_ERR_MASK)
-#define F_INVALID_REQTYPE_ERR_MASK V_INVALID_REQTYPE_ERR_MASK(1U)
-
-#define S_EARLY_REQ_ERR_MASK 13
-#define V_EARLY_REQ_ERR_MASK(x) ((x) << S_EARLY_REQ_ERR_MASK)
-#define F_EARLY_REQ_ERR_MASK V_EARLY_REQ_ERR_MASK(1U)
-
-#define A_MC_DDRPHY_SEQ_ODT_WR_CONFIG0 0x47228
-
-#define S_ODT_WR_VALUES_BITS0_7 8
-#define M_ODT_WR_VALUES_BITS0_7 0xffU
-#define V_ODT_WR_VALUES_BITS0_7(x) ((x) << S_ODT_WR_VALUES_BITS0_7)
-#define G_ODT_WR_VALUES_BITS0_7(x) (((x) >> S_ODT_WR_VALUES_BITS0_7) & M_ODT_WR_VALUES_BITS0_7)
-
-#define S_ODT_WR_VALUES_BITS8_15 0
-#define M_ODT_WR_VALUES_BITS8_15 0xffU
-#define V_ODT_WR_VALUES_BITS8_15(x) ((x) << S_ODT_WR_VALUES_BITS8_15)
-#define G_ODT_WR_VALUES_BITS8_15(x) (((x) >> S_ODT_WR_VALUES_BITS8_15) & M_ODT_WR_VALUES_BITS8_15)
-
-#define A_MC_DDRPHY_SEQ_ODT_WR_CONFIG1 0x4722c
-#define A_MC_DDRPHY_SEQ_ODT_WR_CONFIG2 0x47230
-#define A_MC_DDRPHY_SEQ_ODT_WR_CONFIG3 0x47234
-#define A_MC_DDRPHY_SEQ_ODT_RD_CONFIG0 0x47238
-
-#define S_ODT_RD_VALUES_X2 8
-#define M_ODT_RD_VALUES_X2 0xffU
-#define V_ODT_RD_VALUES_X2(x) ((x) << S_ODT_RD_VALUES_X2)
-#define G_ODT_RD_VALUES_X2(x) (((x) >> S_ODT_RD_VALUES_X2) & M_ODT_RD_VALUES_X2)
-
-#define S_ODT_RD_VALUES_X2PLUS1 0
-#define M_ODT_RD_VALUES_X2PLUS1 0xffU
-#define V_ODT_RD_VALUES_X2PLUS1(x) ((x) << S_ODT_RD_VALUES_X2PLUS1)
-#define G_ODT_RD_VALUES_X2PLUS1(x) (((x) >> S_ODT_RD_VALUES_X2PLUS1) & M_ODT_RD_VALUES_X2PLUS1)
-
-#define A_MC_DDRPHY_SEQ_ODT_RD_CONFIG1 0x4723c
-#define A_MC_DDRPHY_SEQ_ODT_RD_CONFIG2 0x47240
-#define A_MC_DDRPHY_SEQ_ODT_RD_CONFIG3 0x47244
-#define A_MC_DDRPHY_SEQ_MEM_TIMING_PARAM0 0x47248
-
-#define S_TMOD_CYCLES 12
-#define M_TMOD_CYCLES 0xfU
-#define V_TMOD_CYCLES(x) ((x) << S_TMOD_CYCLES)
-#define G_TMOD_CYCLES(x) (((x) >> S_TMOD_CYCLES) & M_TMOD_CYCLES)
-
-#define S_TRCD_CYCLES 8
-#define M_TRCD_CYCLES 0xfU
-#define V_TRCD_CYCLES(x) ((x) << S_TRCD_CYCLES)
-#define G_TRCD_CYCLES(x) (((x) >> S_TRCD_CYCLES) & M_TRCD_CYCLES)
-
-#define S_TRP_CYCLES 4
-#define M_TRP_CYCLES 0xfU
-#define V_TRP_CYCLES(x) ((x) << S_TRP_CYCLES)
-#define G_TRP_CYCLES(x) (((x) >> S_TRP_CYCLES) & M_TRP_CYCLES)
-
-#define S_TRFC_CYCLES 0
-#define M_TRFC_CYCLES 0xfU
-#define V_TRFC_CYCLES(x) ((x) << S_TRFC_CYCLES)
-#define G_TRFC_CYCLES(x) (((x) >> S_TRFC_CYCLES) & M_TRFC_CYCLES)
-
-#define A_MC_DDRPHY_SEQ_MEM_TIMING_PARAM1 0x4724c
-
-#define S_TZQINIT_CYCLES 12
-#define M_TZQINIT_CYCLES 0xfU
-#define V_TZQINIT_CYCLES(x) ((x) << S_TZQINIT_CYCLES)
-#define G_TZQINIT_CYCLES(x) (((x) >> S_TZQINIT_CYCLES) & M_TZQINIT_CYCLES)
-
-#define S_TZQCS_CYCLES 8
-#define M_TZQCS_CYCLES 0xfU
-#define V_TZQCS_CYCLES(x) ((x) << S_TZQCS_CYCLES)
-#define G_TZQCS_CYCLES(x) (((x) >> S_TZQCS_CYCLES) & M_TZQCS_CYCLES)
-
-#define S_TWLDQSEN_CYCLES 4
-#define M_TWLDQSEN_CYCLES 0xfU
-#define V_TWLDQSEN_CYCLES(x) ((x) << S_TWLDQSEN_CYCLES)
-#define G_TWLDQSEN_CYCLES(x) (((x) >> S_TWLDQSEN_CYCLES) & M_TWLDQSEN_CYCLES)
-
-#define S_TWRMRD_CYCLES 0
-#define M_TWRMRD_CYCLES 0xfU
-#define V_TWRMRD_CYCLES(x) ((x) << S_TWRMRD_CYCLES)
-#define G_TWRMRD_CYCLES(x) (((x) >> S_TWRMRD_CYCLES) & M_TWRMRD_CYCLES)
-
-#define A_MC_DDRPHY_SEQ_MEM_TIMING_PARAM2 0x47250
-
-#define S_TODTLON_OFF_CYCLES 12
-#define M_TODTLON_OFF_CYCLES 0xfU
-#define V_TODTLON_OFF_CYCLES(x) ((x) << S_TODTLON_OFF_CYCLES)
-#define G_TODTLON_OFF_CYCLES(x) (((x) >> S_TODTLON_OFF_CYCLES) & M_TODTLON_OFF_CYCLES)
-
-#define S_TRC_CYCLES 8
-#define M_TRC_CYCLES 0xfU
-#define V_TRC_CYCLES(x) ((x) << S_TRC_CYCLES)
-#define G_TRC_CYCLES(x) (((x) >> S_TRC_CYCLES) & M_TRC_CYCLES)
-
-#define S_TMRSC_CYCLES 4
-#define M_TMRSC_CYCLES 0xfU
-#define V_TMRSC_CYCLES(x) ((x) << S_TMRSC_CYCLES)
-#define G_TMRSC_CYCLES(x) (((x) >> S_TMRSC_CYCLES) & M_TMRSC_CYCLES)
-
-#define A_MC_DDRPHY_RC_CONFIG0 0x47400
-
-#define S_GLOBAL_PHY_OFFSET 12
-#define M_GLOBAL_PHY_OFFSET 0xfU
-#define V_GLOBAL_PHY_OFFSET(x) ((x) << S_GLOBAL_PHY_OFFSET)
-#define G_GLOBAL_PHY_OFFSET(x) (((x) >> S_GLOBAL_PHY_OFFSET) & M_GLOBAL_PHY_OFFSET)
-
-#define S_ADVANCE_RD_VALID 11
-#define V_ADVANCE_RD_VALID(x) ((x) << S_ADVANCE_RD_VALID)
-#define F_ADVANCE_RD_VALID V_ADVANCE_RD_VALID(1U)
-
-#define S_SINGLE_BIT_MPR_RP0 6
-#define V_SINGLE_BIT_MPR_RP0(x) ((x) << S_SINGLE_BIT_MPR_RP0)
-#define F_SINGLE_BIT_MPR_RP0 V_SINGLE_BIT_MPR_RP0(1U)
-
-#define S_SINGLE_BIT_MPR_RP1 5
-#define V_SINGLE_BIT_MPR_RP1(x) ((x) << S_SINGLE_BIT_MPR_RP1)
-#define F_SINGLE_BIT_MPR_RP1 V_SINGLE_BIT_MPR_RP1(1U)
-
-#define S_SINGLE_BIT_MPR_RP2 4
-#define V_SINGLE_BIT_MPR_RP2(x) ((x) << S_SINGLE_BIT_MPR_RP2)
-#define F_SINGLE_BIT_MPR_RP2 V_SINGLE_BIT_MPR_RP2(1U)
-
-#define S_SINGLE_BIT_MPR_RP3 3
-#define V_SINGLE_BIT_MPR_RP3(x) ((x) << S_SINGLE_BIT_MPR_RP3)
-#define F_SINGLE_BIT_MPR_RP3 V_SINGLE_BIT_MPR_RP3(1U)
-
-#define S_ALIGN_ON_EVEN_CYCLES 2
-#define V_ALIGN_ON_EVEN_CYCLES(x) ((x) << S_ALIGN_ON_EVEN_CYCLES)
-#define F_ALIGN_ON_EVEN_CYCLES V_ALIGN_ON_EVEN_CYCLES(1U)
-
-#define S_PERFORM_RDCLK_ALIGN 1
-#define V_PERFORM_RDCLK_ALIGN(x) ((x) << S_PERFORM_RDCLK_ALIGN)
-#define F_PERFORM_RDCLK_ALIGN V_PERFORM_RDCLK_ALIGN(1U)
-
-#define S_STAGGERED_PATTERN 0
-#define V_STAGGERED_PATTERN(x) ((x) << S_STAGGERED_PATTERN)
-#define F_STAGGERED_PATTERN V_STAGGERED_PATTERN(1U)
-
-#define A_MC_DDRPHY_RC_CONFIG1 0x47404
-
-#define S_OUTER_LOOP_CNT 2
-#define M_OUTER_LOOP_CNT 0x3fffU
-#define V_OUTER_LOOP_CNT(x) ((x) << S_OUTER_LOOP_CNT)
-#define G_OUTER_LOOP_CNT(x) (((x) >> S_OUTER_LOOP_CNT) & M_OUTER_LOOP_CNT)
-
-#define A_MC_DDRPHY_RC_CONFIG2 0x47408
-
-#define S_CONSEQ_PASS 11
-#define M_CONSEQ_PASS 0x1fU
-#define V_CONSEQ_PASS(x) ((x) << S_CONSEQ_PASS)
-#define G_CONSEQ_PASS(x) (((x) >> S_CONSEQ_PASS) & M_CONSEQ_PASS)
-
-#define S_BURST_WINDOW 5
-#define M_BURST_WINDOW 0x3U
-#define V_BURST_WINDOW(x) ((x) << S_BURST_WINDOW)
-#define G_BURST_WINDOW(x) (((x) >> S_BURST_WINDOW) & M_BURST_WINDOW)
-
-#define S_ALLOW_RD_FIFO_AUTO_R_ESET 4
-#define V_ALLOW_RD_FIFO_AUTO_R_ESET(x) ((x) << S_ALLOW_RD_FIFO_AUTO_R_ESET)
-#define F_ALLOW_RD_FIFO_AUTO_R_ESET V_ALLOW_RD_FIFO_AUTO_R_ESET(1U)
-
-#define A_MC_DDRPHY_RC_ERROR_STATUS0 0x47414
-
-#define S_RD_CNTL_ERROR 15
-#define V_RD_CNTL_ERROR(x) ((x) << S_RD_CNTL_ERROR)
-#define F_RD_CNTL_ERROR V_RD_CNTL_ERROR(1U)
-
-#define A_MC_DDRPHY_RC_ERROR_MASK0 0x47418
-
-#define S_RD_CNTL_ERROR_MASK 15
-#define V_RD_CNTL_ERROR_MASK(x) ((x) << S_RD_CNTL_ERROR_MASK)
-#define F_RD_CNTL_ERROR_MASK V_RD_CNTL_ERROR_MASK(1U)
-
-#define A_MC_DDRPHY_RC_CONFIG3 0x4741c
-
-#define S_FINE_CAL_STEP_SIZE 13
-#define M_FINE_CAL_STEP_SIZE 0x7U
-#define V_FINE_CAL_STEP_SIZE(x) ((x) << S_FINE_CAL_STEP_SIZE)
-#define G_FINE_CAL_STEP_SIZE(x) (((x) >> S_FINE_CAL_STEP_SIZE) & M_FINE_CAL_STEP_SIZE)
-
-#define S_COARSE_CAL_STEP_SIZE 9
-#define M_COARSE_CAL_STEP_SIZE 0xfU
-#define V_COARSE_CAL_STEP_SIZE(x) ((x) << S_COARSE_CAL_STEP_SIZE)
-#define G_COARSE_CAL_STEP_SIZE(x) (((x) >> S_COARSE_CAL_STEP_SIZE) & M_COARSE_CAL_STEP_SIZE)
-
-#define S_DQ_SEL_QUAD 7
-#define M_DQ_SEL_QUAD 0x3U
-#define V_DQ_SEL_QUAD(x) ((x) << S_DQ_SEL_QUAD)
-#define G_DQ_SEL_QUAD(x) (((x) >> S_DQ_SEL_QUAD) & M_DQ_SEL_QUAD)
-
-#define S_DQ_SEL_LANE 4
-#define M_DQ_SEL_LANE 0x7U
-#define V_DQ_SEL_LANE(x) ((x) << S_DQ_SEL_LANE)
-#define G_DQ_SEL_LANE(x) (((x) >> S_DQ_SEL_LANE) & M_DQ_SEL_LANE)
-
-#define A_MC_DDRPHY_RC_PERIODIC 0x47420
-#define A_MC_DDRPHY_WC_CONFIG0 0x47600
-
-#define S_TWLO_TWLOE 8
-#define M_TWLO_TWLOE 0xffU
-#define V_TWLO_TWLOE(x) ((x) << S_TWLO_TWLOE)
-#define G_TWLO_TWLOE(x) (((x) >> S_TWLO_TWLOE) & M_TWLO_TWLOE)
-
-#define S_WL_ONE_DQS_PULSE 7
-#define V_WL_ONE_DQS_PULSE(x) ((x) << S_WL_ONE_DQS_PULSE)
-#define F_WL_ONE_DQS_PULSE V_WL_ONE_DQS_PULSE(1U)
-
-#define S_FW_WR_RD 1
-#define M_FW_WR_RD 0x3fU
-#define V_FW_WR_RD(x) ((x) << S_FW_WR_RD)
-#define G_FW_WR_RD(x) (((x) >> S_FW_WR_RD) & M_FW_WR_RD)
-
-#define S_CUSTOM_INIT_WRITE 0
-#define V_CUSTOM_INIT_WRITE(x) ((x) << S_CUSTOM_INIT_WRITE)
-#define F_CUSTOM_INIT_WRITE V_CUSTOM_INIT_WRITE(1U)
-
-#define A_MC_DDRPHY_WC_CONFIG1 0x47604
-
-#define S_BIG_STEP 12
-#define M_BIG_STEP 0xfU
-#define V_BIG_STEP(x) ((x) << S_BIG_STEP)
-#define G_BIG_STEP(x) (((x) >> S_BIG_STEP) & M_BIG_STEP)
-
-#define S_SMALL_STEP 9
-#define M_SMALL_STEP 0x7U
-#define V_SMALL_STEP(x) ((x) << S_SMALL_STEP)
-#define G_SMALL_STEP(x) (((x) >> S_SMALL_STEP) & M_SMALL_STEP)
-
-#define S_WR_PRE_DLY 3
-#define M_WR_PRE_DLY 0x3fU
-#define V_WR_PRE_DLY(x) ((x) << S_WR_PRE_DLY)
-#define G_WR_PRE_DLY(x) (((x) >> S_WR_PRE_DLY) & M_WR_PRE_DLY)
-
-#define A_MC_DDRPHY_WC_CONFIG2 0x47608
-
-#define S_NUM_VALID_SAMPLES 12
-#define M_NUM_VALID_SAMPLES 0xfU
-#define V_NUM_VALID_SAMPLES(x) ((x) << S_NUM_VALID_SAMPLES)
-#define G_NUM_VALID_SAMPLES(x) (((x) >> S_NUM_VALID_SAMPLES) & M_NUM_VALID_SAMPLES)
-
-#define S_FW_RD_WR 6
-#define M_FW_RD_WR 0x3fU
-#define V_FW_RD_WR(x) ((x) << S_FW_RD_WR)
-#define G_FW_RD_WR(x) (((x) >> S_FW_RD_WR) & M_FW_RD_WR)
-
-#define A_MC_DDRPHY_WC_ERROR_STATUS0 0x4760c
-
-#define S_WR_CNTL_ERROR 15
-#define V_WR_CNTL_ERROR(x) ((x) << S_WR_CNTL_ERROR)
-#define F_WR_CNTL_ERROR V_WR_CNTL_ERROR(1U)
-
-#define A_MC_DDRPHY_WC_ERROR_MASK0 0x47610
-
-#define S_WR_CNTL_ERROR_MASK 15
-#define V_WR_CNTL_ERROR_MASK(x) ((x) << S_WR_CNTL_ERROR_MASK)
-#define F_WR_CNTL_ERROR_MASK V_WR_CNTL_ERROR_MASK(1U)
-
-#define A_MC_DDRPHY_WC_CONFIG3 0x47614
-
-#define S_DDR4_MRS_CMD_DQ_EN 15
-#define V_DDR4_MRS_CMD_DQ_EN(x) ((x) << S_DDR4_MRS_CMD_DQ_EN)
-#define F_DDR4_MRS_CMD_DQ_EN V_DDR4_MRS_CMD_DQ_EN(1U)
-
-#define S_MRS_CMD_DQ_ON 9
-#define M_MRS_CMD_DQ_ON 0x3fU
-#define V_MRS_CMD_DQ_ON(x) ((x) << S_MRS_CMD_DQ_ON)
-#define G_MRS_CMD_DQ_ON(x) (((x) >> S_MRS_CMD_DQ_ON) & M_MRS_CMD_DQ_ON)
-
-#define S_MRS_CMD_DQ_OFF 3
-#define M_MRS_CMD_DQ_OFF 0x3fU
-#define V_MRS_CMD_DQ_OFF(x) ((x) << S_MRS_CMD_DQ_OFF)
-#define G_MRS_CMD_DQ_OFF(x) (((x) >> S_MRS_CMD_DQ_OFF) & M_MRS_CMD_DQ_OFF)
-
-#define A_MC_DDRPHY_WC_WRCLK_CNTL 0x47618
-
-#define S_WRCLK_CAL_START 15
-#define V_WRCLK_CAL_START(x) ((x) << S_WRCLK_CAL_START)
-#define F_WRCLK_CAL_START V_WRCLK_CAL_START(1U)
-
-#define S_WRCLK_CAL_DONE 14
-#define V_WRCLK_CAL_DONE(x) ((x) << S_WRCLK_CAL_DONE)
-#define F_WRCLK_CAL_DONE V_WRCLK_CAL_DONE(1U)
-
-#define A_MC_DDRPHY_APB_CONFIG0 0x47800
-
-#define S_DISABLE_PARITY_CHECKER 15
-#define V_DISABLE_PARITY_CHECKER(x) ((x) << S_DISABLE_PARITY_CHECKER)
-#define F_DISABLE_PARITY_CHECKER V_DISABLE_PARITY_CHECKER(1U)
-
-#define S_GENERATE_EVEN_PARITY 14
-#define V_GENERATE_EVEN_PARITY(x) ((x) << S_GENERATE_EVEN_PARITY)
-#define F_GENERATE_EVEN_PARITY V_GENERATE_EVEN_PARITY(1U)
-
-#define S_FORCE_ON_CLK_GATE 13
-#define V_FORCE_ON_CLK_GATE(x) ((x) << S_FORCE_ON_CLK_GATE)
-#define F_FORCE_ON_CLK_GATE V_FORCE_ON_CLK_GATE(1U)
-
-#define S_DEBUG_BUS_SEL_LO 12
-#define V_DEBUG_BUS_SEL_LO(x) ((x) << S_DEBUG_BUS_SEL_LO)
-#define F_DEBUG_BUS_SEL_LO V_DEBUG_BUS_SEL_LO(1U)
-
-#define S_DEBUG_BUS_SEL_HI 8
-#define M_DEBUG_BUS_SEL_HI 0xfU
-#define V_DEBUG_BUS_SEL_HI(x) ((x) << S_DEBUG_BUS_SEL_HI)
-#define G_DEBUG_BUS_SEL_HI(x) (((x) >> S_DEBUG_BUS_SEL_HI) & M_DEBUG_BUS_SEL_HI)
-
-#define A_MC_DDRPHY_APB_ERROR_STATUS0 0x47804
-
-#define S_INVALID_ADDRESS 15
-#define V_INVALID_ADDRESS(x) ((x) << S_INVALID_ADDRESS)
-#define F_INVALID_ADDRESS V_INVALID_ADDRESS(1U)
-
-#define S_WR_PAR_ERR 14
-#define V_WR_PAR_ERR(x) ((x) << S_WR_PAR_ERR)
-#define F_WR_PAR_ERR V_WR_PAR_ERR(1U)
-
-#define A_MC_DDRPHY_APB_ERROR_MASK0 0x47808
-
-#define S_INVALID_ADDRESS_MASK 15
-#define V_INVALID_ADDRESS_MASK(x) ((x) << S_INVALID_ADDRESS_MASK)
-#define F_INVALID_ADDRESS_MASK V_INVALID_ADDRESS_MASK(1U)
-
-#define S_WR_PAR_ERR_MASK 14
-#define V_WR_PAR_ERR_MASK(x) ((x) << S_WR_PAR_ERR_MASK)
-#define F_WR_PAR_ERR_MASK V_WR_PAR_ERR_MASK(1U)
-
-#define A_MC_DDRPHY_APB_DP18_POPULATION 0x4780c
-
-#define S_DP18_0_POPULATED 15
-#define V_DP18_0_POPULATED(x) ((x) << S_DP18_0_POPULATED)
-#define F_DP18_0_POPULATED V_DP18_0_POPULATED(1U)
-
-#define S_DP18_1_POPULATED 14
-#define V_DP18_1_POPULATED(x) ((x) << S_DP18_1_POPULATED)
-#define F_DP18_1_POPULATED V_DP18_1_POPULATED(1U)
-
-#define S_DP18_2_POPULATED 13
-#define V_DP18_2_POPULATED(x) ((x) << S_DP18_2_POPULATED)
-#define F_DP18_2_POPULATED V_DP18_2_POPULATED(1U)
-
-#define S_DP18_3_POPULATED 12
-#define V_DP18_3_POPULATED(x) ((x) << S_DP18_3_POPULATED)
-#define F_DP18_3_POPULATED V_DP18_3_POPULATED(1U)
-
-#define S_DP18_4_POPULATED 11
-#define V_DP18_4_POPULATED(x) ((x) << S_DP18_4_POPULATED)
-#define F_DP18_4_POPULATED V_DP18_4_POPULATED(1U)
-
-#define S_DP18_5_POPULATED 10
-#define V_DP18_5_POPULATED(x) ((x) << S_DP18_5_POPULATED)
-#define F_DP18_5_POPULATED V_DP18_5_POPULATED(1U)
-
-#define S_DP18_6_POPULATED 9
-#define V_DP18_6_POPULATED(x) ((x) << S_DP18_6_POPULATED)
-#define F_DP18_6_POPULATED V_DP18_6_POPULATED(1U)
-
-#define S_DP18_7_POPULATED 8
-#define V_DP18_7_POPULATED(x) ((x) << S_DP18_7_POPULATED)
-#define F_DP18_7_POPULATED V_DP18_7_POPULATED(1U)
-
-#define S_DP18_8_POPULATED 7
-#define V_DP18_8_POPULATED(x) ((x) << S_DP18_8_POPULATED)
-#define F_DP18_8_POPULATED V_DP18_8_POPULATED(1U)
-
-#define S_DP18_9_POPULATED 6
-#define V_DP18_9_POPULATED(x) ((x) << S_DP18_9_POPULATED)
-#define F_DP18_9_POPULATED V_DP18_9_POPULATED(1U)
-
-#define S_DP18_10_POPULATED 5
-#define V_DP18_10_POPULATED(x) ((x) << S_DP18_10_POPULATED)
-#define F_DP18_10_POPULATED V_DP18_10_POPULATED(1U)
-
-#define S_DP18_11_POPULATED 4
-#define V_DP18_11_POPULATED(x) ((x) << S_DP18_11_POPULATED)
-#define F_DP18_11_POPULATED V_DP18_11_POPULATED(1U)
-
-#define S_DP18_12_POPULATED 3
-#define V_DP18_12_POPULATED(x) ((x) << S_DP18_12_POPULATED)
-#define F_DP18_12_POPULATED V_DP18_12_POPULATED(1U)
-
-#define S_DP18_13_POPULATED 2
-#define V_DP18_13_POPULATED(x) ((x) << S_DP18_13_POPULATED)
-#define F_DP18_13_POPULATED V_DP18_13_POPULATED(1U)
-
-#define S_DP18_14_POPULATED 1
-#define V_DP18_14_POPULATED(x) ((x) << S_DP18_14_POPULATED)
-#define F_DP18_14_POPULATED V_DP18_14_POPULATED(1U)
-
-#define A_MC_DDRPHY_APB_ADR_POPULATION 0x47810
-
-#define S_ADR16_0_POPULATED 15
-#define V_ADR16_0_POPULATED(x) ((x) << S_ADR16_0_POPULATED)
-#define F_ADR16_0_POPULATED V_ADR16_0_POPULATED(1U)
-
-#define S_ADR16_1_POPULATED 14
-#define V_ADR16_1_POPULATED(x) ((x) << S_ADR16_1_POPULATED)
-#define F_ADR16_1_POPULATED V_ADR16_1_POPULATED(1U)
-
-#define S_ADR16_2_POPULATED 13
-#define V_ADR16_2_POPULATED(x) ((x) << S_ADR16_2_POPULATED)
-#define F_ADR16_2_POPULATED V_ADR16_2_POPULATED(1U)
-
-#define S_ADR16_3_POPULATED 12
-#define V_ADR16_3_POPULATED(x) ((x) << S_ADR16_3_POPULATED)
-#define F_ADR16_3_POPULATED V_ADR16_3_POPULATED(1U)
-
-#define S_ADR12_0_POPULATED 7
-#define V_ADR12_0_POPULATED(x) ((x) << S_ADR12_0_POPULATED)
-#define F_ADR12_0_POPULATED V_ADR12_0_POPULATED(1U)
-
-#define S_ADR12_1_POPULATED 6
-#define V_ADR12_1_POPULATED(x) ((x) << S_ADR12_1_POPULATED)
-#define F_ADR12_1_POPULATED V_ADR12_1_POPULATED(1U)
-
-#define S_ADR12_2_POPULATED 5
-#define V_ADR12_2_POPULATED(x) ((x) << S_ADR12_2_POPULATED)
-#define F_ADR12_2_POPULATED V_ADR12_2_POPULATED(1U)
-
-#define S_ADR12_3_POPULATED 4
-#define V_ADR12_3_POPULATED(x) ((x) << S_ADR12_3_POPULATED)
-#define F_ADR12_3_POPULATED V_ADR12_3_POPULATED(1U)
-
-#define A_MC_DDRPHY_APB_ATEST_MUX_SEL 0x47814
-
-#define S_ATEST_CNTL 10
-#define M_ATEST_CNTL 0x3fU
-#define V_ATEST_CNTL(x) ((x) << S_ATEST_CNTL)
-#define G_ATEST_CNTL(x) (((x) >> S_ATEST_CNTL) & M_ATEST_CNTL)
-
-/* registers for module MC_1 */
-#define MC_1_BASE_ADDR 0x48000
-
-/* registers for module EDC_T50 */
-#define EDC_T50_BASE_ADDR 0x50000
-
-#define A_EDC_H_REF 0x50000
-
-#define S_EDC_SLEEPSTATUS 31
-#define V_EDC_SLEEPSTATUS(x) ((x) << S_EDC_SLEEPSTATUS)
-#define F_EDC_SLEEPSTATUS V_EDC_SLEEPSTATUS(1U)
-
-#define S_EDC_SLEEPREQ 30
-#define V_EDC_SLEEPREQ(x) ((x) << S_EDC_SLEEPREQ)
-#define F_EDC_SLEEPREQ V_EDC_SLEEPREQ(1U)
-
-#define S_PING_PONG 29
-#define V_PING_PONG(x) ((x) << S_PING_PONG)
-#define F_PING_PONG V_PING_PONG(1U)
-
-#define A_EDC_H_BIST_CMD 0x50004
-#define A_EDC_H_BIST_CMD_ADDR 0x50008
-#define A_EDC_H_BIST_CMD_LEN 0x5000c
-#define A_EDC_H_BIST_DATA_PATTERN 0x50010
-#define A_EDC_H_BIST_USER_WDATA0 0x50014
-#define A_EDC_H_BIST_USER_WDATA1 0x50018
-#define A_EDC_H_BIST_USER_WDATA2 0x5001c
-#define A_EDC_H_BIST_NUM_ERR 0x50020
-#define A_EDC_H_BIST_ERR_FIRST_ADDR 0x50024
-#define A_EDC_H_BIST_STATUS_RDATA 0x50028
-#define A_EDC_H_PAR_ENABLE 0x50070
-
-#define S_PERR_PAR_ENABLE 0
-#define V_PERR_PAR_ENABLE(x) ((x) << S_PERR_PAR_ENABLE)
-#define F_PERR_PAR_ENABLE V_PERR_PAR_ENABLE(1U)
-
-#define A_EDC_H_INT_ENABLE 0x50074
-#define A_EDC_H_INT_CAUSE 0x50078
-#define A_EDC_H_ECC_STATUS 0x5007c
-#define A_EDC_H_ECC_ERR_SEL 0x50080
-
-#define S_CFG 0
-#define M_CFG 0x3U
-#define V_CFG(x) ((x) << S_CFG)
-#define G_CFG(x) (((x) >> S_CFG) & M_CFG)
-
-#define A_EDC_H_ECC_ERR_ADDR 0x50084
-
-#define S_ECC_ADDR 0
-#define M_ECC_ADDR 0x7fffffU
-#define V_ECC_ADDR(x) ((x) << S_ECC_ADDR)
-#define G_ECC_ADDR(x) (((x) >> S_ECC_ADDR) & M_ECC_ADDR)
-
-#define A_EDC_H_ECC_ERR_DATA_RDATA 0x50090
-#define A_EDC_H_BIST_CRC_SEED 0x50400
-
-/* registers for module EDC_T51 */
-#define EDC_T51_BASE_ADDR 0x50800
-
-/* registers for module HMA_T5 */
-#define HMA_T5_BASE_ADDR 0x51000
-
-#define A_HMA_TABLE_ACCESS 0x51000
-
-#define S_TRIG 31
-#define V_TRIG(x) ((x) << S_TRIG)
-#define F_TRIG V_TRIG(1U)
-
-#define S_RW 30
-#define V_RW(x) ((x) << S_RW)
-#define F_RW V_RW(1U)
-
-#define S_L_SEL 0
-#define M_L_SEL 0xfU
-#define V_L_SEL(x) ((x) << S_L_SEL)
-#define G_L_SEL(x) (((x) >> S_L_SEL) & M_L_SEL)
-
-#define A_HMA_TABLE_LINE0 0x51004
-
-#define S_CLIENT_EN 0
-#define M_CLIENT_EN 0x1fffU
-#define V_CLIENT_EN(x) ((x) << S_CLIENT_EN)
-#define G_CLIENT_EN(x) (((x) >> S_CLIENT_EN) & M_CLIENT_EN)
-
-#define A_HMA_TABLE_LINE1 0x51008
-#define A_HMA_TABLE_LINE2 0x5100c
-#define A_HMA_TABLE_LINE3 0x51010
-#define A_HMA_TABLE_LINE4 0x51014
-#define A_HMA_TABLE_LINE5 0x51018
-
-#define S_FID 16
-#define M_FID 0x7ffU
-#define V_FID(x) ((x) << S_FID)
-#define G_FID(x) (((x) >> S_FID) & M_FID)
-
-#define S_NOS 15
-#define V_NOS(x) ((x) << S_NOS)
-#define F_NOS V_NOS(1U)
-
-#define S_RO 14
-#define V_RO(x) ((x) << S_RO)
-#define F_RO V_RO(1U)
-
-#define A_HMA_COOKIE 0x5101c
-
-#define S_C_REQ 31
-#define V_C_REQ(x) ((x) << S_C_REQ)
-#define F_C_REQ V_C_REQ(1U)
-
-#define S_C_FID 18
-#define M_C_FID 0x7ffU
-#define V_C_FID(x) ((x) << S_C_FID)
-#define G_C_FID(x) (((x) >> S_C_FID) & M_C_FID)
-
-#define S_C_VAL 8
-#define M_C_VAL 0x3ffU
-#define V_C_VAL(x) ((x) << S_C_VAL)
-#define G_C_VAL(x) (((x) >> S_C_VAL) & M_C_VAL)
-
-#define S_C_SEL 0
-#define M_C_SEL 0xfU
-#define V_C_SEL(x) ((x) << S_C_SEL)
-#define G_C_SEL(x) (((x) >> S_C_SEL) & M_C_SEL)
-
-#define A_HMA_PAR_ENABLE 0x51300
-#define A_HMA_INT_ENABLE 0x51304
-#define A_HMA_INT_CAUSE 0x51308
Modified: trunk/sys/dev/cxgbe/common/t4_regs_values.h
===================================================================
--- trunk/sys/dev/cxgbe/common/t4_regs_values.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/t4_regs_values.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/common/t4_regs_values.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/common/t4_regs_values.h 218792 2011-02-18 08:00:26Z np $
*
*/
@@ -189,57 +189,4 @@
#define X_MBOWNER_FW 1
#define X_MBOWNER_PL 2
-/*
- * PCI-E definitions.
- * ==================
- */
-
-#define X_WINDOW_SHIFT 10
-#define X_PCIEOFST_SHIFT 10
-
-/*
- * TP definitions.
- * ===============
- */
-
-/*
- * TP_VLAN_PRI_MAP controls which subset of fields will be present in the
- * Compressed Filter Tuple for LE filters. Each bit set in TP_VLAN_PRI_MAP
- * selects for a particular field being present. These fields, when present
- * in the Compressed Filter Tuple, have the following widths in bits.
- */
-#define W_FT_FCOE 1
-#define W_FT_PORT 3
-#define W_FT_VNIC_ID 17
-#define W_FT_VLAN 17
-#define W_FT_TOS 8
-#define W_FT_PROTOCOL 8
-#define W_FT_ETHERTYPE 16
-#define W_FT_MACMATCH 9
-#define W_FT_MPSHITTYPE 3
-#define W_FT_FRAGMENTATION 1
-
-/*
- * Some of the Compressed Filter Tuple fields have internal structure. These
- * bit shifts/masks describe those structures. All shifts are relative to the
- * base position of the fields within the Compressed Filter Tuple
- */
-#define S_FT_VLAN_VLD 16
-#define V_FT_VLAN_VLD(x) ((x) << S_FT_VLAN_VLD)
-#define F_FT_VLAN_VLD V_FT_VLAN_VLD(1U)
-
-#define S_FT_VNID_ID_VF 0
-#define M_FT_VNID_ID_VF 0x7fU
-#define V_FT_VNID_ID_VF(x) ((x) << S_FT_VNID_ID_VF)
-#define G_FT_VNID_ID_VF(x) (((x) >> S_FT_VNID_ID_VF) & M_FT_VNID_ID_VF)
-
-#define S_FT_VNID_ID_PF 7
-#define M_FT_VNID_ID_PF 0x7U
-#define V_FT_VNID_ID_PF(x) ((x) << S_FT_VNID_ID_PF)
-#define G_FT_VNID_ID_PF(x) (((x) >> S_FT_VNID_ID_PF) & M_FT_VNID_ID_PF)
-
-#define S_FT_VNID_ID_VLD 16
-#define V_FT_VNID_ID_VLD(x) ((x) << S_FT_VNID_ID_VLD)
-#define F_FT_VNID_ID_VLD(x) V_FT_VNID_ID_VLD(1U)
-
#endif /* __T4_REGS_VALUES_H__ */
Modified: trunk/sys/dev/cxgbe/common/t4_tcb.h
===================================================================
--- trunk/sys/dev/cxgbe/common/t4_tcb.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/common/t4_tcb.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/common/t4_tcb.h 218792 2011-02-18 08:00:26Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/common/t4_tcb.h 218792 2011-02-18 08:00:26Z np $
*
*/
Added: trunk/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu
===================================================================
--- trunk/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu (rev 0)
+++ trunk/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu 2016-10-02 00:13:34 UTC (rev 9115)
@@ -0,0 +1,8237 @@
+/*-
+ * Copyright (c) 2013 Chelsio Communications, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+begin-base64 644 t4fw
+AAADkgEIBAAAAQkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAA3cDhgONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFRodSBGZWIgIDcgMTU6
+Mzg6MjYgUFNUIDIwMTMgb24gY2xlb3BhdHJhLmFzaWNkZXNpZ25lcnMuY29tOi9ob21lL2Zpcm13
+YXJlL2N2cy9mdy1yZWxlYXNlKSwgVmVyc2lvbiBUNHh4IDAxLjA4LjA0LjAwAAAAAAAAAJ/jNKZg
+AMQA4QAwuHj///8f/OFAgAAAAeEAe3AAABAAH//7gOEAYBDhAZRwIAAAAOEBnAThAHkAAAIAQOEA
+eYAABgBAAAIACgAGAArhAHkEAAoAAIAAAQDhAHs84QB7ROEAe+TiAAAAAAEAAOEAe5AgAAAAAACA
+AOEAewAAAEAB4QB7nAAAQABERERC4AAAAOMABHNERERA4wAIACAAAlwAAAAAH/+NIAAAAAAf/40k
+AAAAAB//jSgAAAAAH/+NLB//wAAAAAAAAAAAAMAAEv/OE//OhCAEMwGTIBH/zRL/zZIQEf/NEv/N
+khAR/80B9DER/8yQEBH/zCIK/5IQAOQxAAUxAQIAEv/JAucxAhYAEf/IgRABAV/AIQIRAckUEf/F
+Ev/FkhAR/8US/8WSEGAAEgAAABH/vxL/w5IQEf+/Ev/CkhCBEBH/wcAgkhES/8CSEsAgkhMS/7+S
+EIIQAvJQZS/3Ef+9xy+SEBH/vJIQEv+8E/+8kyDAMpMhE/+7kyKCIhL/uhP/upMgIyIhFP+5BDMB
+yTgT/7iDMAODFAgzERT/tqQzkyET/6qTImAACMIwkyET/6eTIhL/sZAgkCGQIpAjkCSQJZAmkCeQ
+KJApkCqQK5AskC2QLpAvICYQICYRgiIS/6TAMC03MC03NC03OC03PCM9AXIz7QACABL/oSMKAC83
+AC83EC83IC83MCM9AXIz7QACABL/lsAwKDcwKDc0KDc4KDc8Iz0BcjPtAwIAEv+UwDAnNwAnNxAn
+NyAnNzAjPQFyM+0DAgAS/44V/48W/4/AMNcgBWYBYAAWAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH
+BEN2MeYENgUFMwxvO+0AAgAS/4IV/4AjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/3zJLoMghCGF
+IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9wwDIDLgUDAgAS/2fAMCg3QCg3RCg3SCg3TCM9
+AXIz7QMCAAACABL/ai0nAMARAUkxAEgxAQIAwAAU/2YE0jEV/2WUUBT/ZQTTMRX/ZZRQFP9kBNQx
+Ff9klFAU/2QE1TEV/2OUUBD/YwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA
+H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+GAOMACfgf/4YAH/+GAOMAD/gf
+/4YAH/+GAOMAD/gf/4YAH/+HdOMAD/gf/4d0H/+NIOMAEWwf/40gH/+nhOMAFxgf/6eEH/+nhOMA
+MXwf/8AAH//8ZeMAMXwgAAAAIAABauMAbeQgAAF4IAABfOMAb1AgAAF8IAABheMAb1QgAAGYIAAB
+nOMAb2AgAAGcIAABpeMAb2QgAAG4IAABvOMAb3AgAAG8IAABxeMAb3QgAAHYIAAB2OMAb4AgAAHc
+IAAB4uMAb4AgAAH4IAAB+OMAb4ggAAH8IAAB/OMAb4ggAAIYIAACGOMAb4ggAAIcIAACHOMAb4gg
+AAI4IAACOOMAb4ggAAI8IAACPOMAb4ggAAJYIAACWOMAb4ggAAJcIAACYuMAb4ggAAJ4IAACeOMA
+b5AgAAJ8IAACguMAb5AgAAKYIAGaouMAb5ggAoAAIAKTYOMCB6QgApNgIAKTYOMCGwQgApNgIAYP
+KOMCGwQgBg8wIAYT8OMFltQgBoAAIAaNUOMFm5QgBo1QIAdgsuMFqOQgB2DAIAdhjOMGfFQgCMAA
+IAjAAOMGfSAgCMAAIAjAAOMGfSAgCMAAIAkvL+MGfSAAAAAAAAAAAAAAAAAgAAYvIAAGICAACjkg
+AAYgIAAJpSAABiAgAAbZIAAJPSAACMIgAAYgIAAIcSAACCQgAAe5IAAGDSAAB2QgAAYgIAAGICAA
+BiAgAAb6AAAAAP///////w/8///w////APwgAItrIACMqyAAjNsgAIyhIACMYSAAjFcgAIwcIACM
+EiAAjAggAIu4IACM2SAAi64gAIuUAAAAAAAAAAAAAAAAAAAACgAAAAoAAAAUAAAACgAAAAoAAAAK
+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
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAgCgAR8X8T8X/TDwPmMQECABbxfRfxfndrBpBgtGZ3Y/hUDoBVk5kPFABj
+//kAAABsEAQY8Xsd8XYrIAcc8XYqIQj6AgAHcbsBAO7cOQ3cAoAAC6oCnDDj8XAZsASAAAiqAhzx
+biMwgPpACBXgDQUAnWXsZgIhuN0AAPrAhhWkdx0A6Xz/Ld4CgADrewIMzwKAAOtmASTL4QAAmWMC
+BImTZyhmBgYgixjxXyUhCfTBZhWkMx0A5WYKK5AEgADoAAUDKMEAAG05AgUCYdEPAAAAbBAEHPFP
+JiAHG/FOH/FU/kEEFaDWEQANyzmbMIcg++KWBaAJJQD6YEYVoBgFAOg2Ayu+AoAA+OYADHFmAQD4
+YCYVoAwFAOUgVys0AoAA98YADrArBQD/pgAO8Ao1AOjxPhKCAYAAnDWcN5szGfE9CnUClTGZNiUh
+CZ00LyAHnDmUO/imAAkx/wEA4jYKL/wCgAAP7gII7gLuNggtEASAANEPJyEIKiEJnDWUNwZ3Agiq
+Apo2CHcC5zYELJAEgADRDwAAAAAAAABsEAgoIAUnIAcpMQX4IIYV4BlFAPkADMVhdwEAiiIW8R8Y
+8R/xVQwN4A2VAAx7Eaa7LLKe/YAMQ+AKpQArsp3rFgUljDmAAIyI94AMcJIAnQAtYq5k0TgrYq3k
+sTRmc/0AAO6GCCWJuYAAKCAUpIgICEcoJBT1AAu90A8FABnxCS4iFiwhKYgVGvEIrsyagOoiHi5n
+woAA/QBmFaANJQD9AEYV4AtlAO3w9x1WAoAAC6oCixSagekAFQRAQQAAiRUIAIooPBD9IMYV4EwF
+AP0g5hWgDEUA7Ls2BMiBAABtuQUIAIYJAmHu8OkVoIeAAIgV7gAFDc8CgACpiOiMICWkNQAAC8kM
+bZkCCAJhKCEp6iEoJEAFAAAICE8oJSn5QAhEIgCdAP/hwgXgDBUA+iCoFeAe5QDqIh4sbUKAAPwg
+JhXgCQUA+CAGFeANBQDpFgIl2YEAAFhx1Ax+EffAAEcwDZUA/dOmFefFAQD5gAYpUgCdAMAg0Q8A
+6iQACdgEgADsRAAK6ASAAFhzsdKg0Q8AwLAKzzTvhggt9o4AANog/EBoHaAbxQBYdABj/8oAAADq
+JAAK2ASAAFh1PtKg0Q8A//nsDaALBQAAACt8GOokAAlgBIAAWHP0Y/+cwKBZjncY8LCMiPmf80CQ
+CqUAY/+sKiEJ/EKwFa/9BQANjQENjgwuJBTttAMuYQKAAO+0AC1WAoAA/UYADTAJFQAJqgKasfjV
+phXv+WIALyUp//vUDaAIBQCKJ+tEAApoBIAA+0QAFaAMBQBYbjDSoNEPAAAAbBAGKCAFKyIQ5CAH
+KlAEgAD4AwId4B7FAPveAAzwGUUA+QAMXWFEAQCMIh/wiOoWAC4LHgAADEkRD5kILZKeDwIA96AL
+41IAnQAnkp0MBj5kcW6LKSoiCguqDPdACQuiAJ0AKiBOLCBMsa37gAskIAsVAC0kTiowASkiGPNA
+C0aSAJ0AKyAHLCEk/GAkFeAIVQD5QAQEMKsRAOCIEQ1SgoAACogCGvBuCN0CKCEHKyEJCswC+6YA
+DrqIAQDq8GocQwKAAAi7AighIp1wjSCbc5x0+wYADDAKZQDodgIu7gKAAArdAp1xLCIQnHUrIDgY
+8F78ACId4EwVAPzhJhXguxkAC805HPBZnnj7DQAOcAgFAJh3DcwCnHbt8E4U2AUAACsmGBvwRJh7
+mXrtABUDyMEAAAkAiut2DiHIQQAA7nYPI/EBAAAJIIYOAmMJAIYOAmEMTBGvzOrGnSMAqYAAjikt
+IDim7p4p86AFV5IAnQAFD0f54ARRUgCdAMAg0Q8A6iQAC1gEgABYTV/B7O/wLxV2kYAA6iQACdgE
+gADsEgAq6ASAAFhzFtKg0Q8AAAAA6iQACtgEgABYdKrSoNEPAAAAK0wY6iQACWAEgABYc2Jj/8GI
+IsCUCYgC+EBGFa/+3gAAAAAAAAD8Q6gVpIkBAACBBAC9Gg3MAvxDphWv+h4AiieNEMDA6qwgLtgE
+gABYbarSoNEP2iBYcsBj/1EAAGwQDC0gBSYiEC8gByshNeUWAynABIAA+wCIFac1AQDyf8AV4AwV
+AAPDOftBAA1wFYUA64ICLGAEgAD3XgAKsf8BAPcAMBWgFUUA9aAf1WO7AQCJIigWAPM9XA3gDoUA
+mBDywB4HEgCdAJ8SnxqbFhbv75MV6hYEL68CgADmVQgCMA0AAOYWCSJwBQAAiBouFggrEgn1AAZi
+EgCdACpSnvtACaviAJ0AL1KdZPO7GO/giIj3AAlYkgCdABnv3CmSrgwDPurv2hSJ+YAAKqKtFu/Y
+6hYLJGv9AADrEgslCWmAAO1mCCWbmYAAiCmHKgh3DPLgCWPiAJ0AKRoA8yIyDeD69QArIBacEftg
+Ca0iAJ0AGO/QhhSNwyogOP3g5hXgCQUA+eEmFeBHBQD34QYVoKoZAAp5ORfvxysiF5v6KyIbm/uN
+xAp4OfzADxLiAJ0AmBeeHYYVnBGZHOcSDCsIHgAAYAF+GO+ziIhqgSaKGSlSnnqTQytSnZsbjRvp
+760UM/0AAO/UAAaB2YAAlphl/xxgAtWeHfwgJhWgCgUAWY1rGO+kiIiMEe4SDSQPBwAA//9oDaAP
+BQAAwJD4IWYV7/7uABvvm8CqCoo0+2EGFa/+/gAAAAAAAAD/+zgNoA8FAACeHZ8e/CAmFaAKBQBZ
+jVcY75CMEYiIjx6OHfkf9diSAJ0AYAJRwJCZG4obHe+JwLoLizTr1ggtdo4AAGACOACeHZ8enBHq
+JAAJ2ASAAFhMrowRjx7uEg0ldfmAAGAB7wCeHZ8e+kDwFaAMBQBYTaWMEY8e7hINLXXGAABgAsYA
+iBGOF/YgyBWvjAUALCQ7jBQGdgIG7gKsuQzaDJqE6SYbLFgEgADtIhApUASAAFhz744djBH6s6YV
+oQcFAHN7CCsgFigK/3i5XoopKSA4o6rqJgkk+aaAAC8iEC0hNfuAiBXgCBUA+CCmFaAGNQCWEw27
+NvoghhXgHYUA/34ADv/2tgCKJ58eixDqrCAqYASAAFhwkI8emhErIhv9QIgV7/2GAAAAAAAA6iAH
+KeAEgABYTV+MEf4hqBWv/kIA2iBYcfeMEf4hqBWv/kIAAC0iEIoWKyA7Fu9ICpkCCYkC5pgCDYn2
+AAAa70X4RIQV42kBAIfA6yAHKzICgAAGmQImIQf64AQDsLsRAOrvNR3agoAAC3cCKyEiCncCKiEJ
+l/CHIJ31+eDGFapmAQDp9gQrMwKAAAaqAhbvK+r2Ayu+AoAA5+cCB8jBAADn9gEmQIEAAOa7AgJT
++QAA6/YCIhQ1AABtqQUIAIYJAmEoIBSkiAgIRygkFPUABq3SAJ0Aihj6s6YVoQkFAPMh8g3g/PUA
+KyAW/WAJFSIAnQAtIhex3e0mFyGAqYAAjykuIDij/58p88AHv5IAnQCGFWVg0sAg0Q8AAAAAKCBO
+ZIw9DpsCmyLrEgApUASAAO0SAypgBIAAWHHn0qDRDwDrEgMpUASAAFhzfNKg0Q8A2iD8QGgdoBvF
+AFhyNWP/xwCLEtog67wYKWAEgABYcjBj/7QAAAAAAOokAA5YBIAA/CCIFa+OBQDuJDsscASAAFhz
+bPohBhWgDwUALyYb/kdmHe/8ggCLGyohCfxCsBWv/QUADY0BDY4MLiQU5MwQDVYCgAAMqgL9YGYd
+4A4FAP9gBh2gBhUABqoCmrEZ7tL3NaYVr/vKAACKJ+tEAApoBIAA+0QAFaAMBQBYbGXSoNEPAADa
+IFhxe2P/BAAAAAAA6iAHKeAEgABYTNtj/tOLEtog67wSKWAEgABYcgFj/vdsEAgoIAXt7rwZ0ASA
+APPdcgXgHkUA/wAKdSAMpQArIE4p0gjTD+oWAyXb/QAAKyRO9yAIWJAHFQAvMq5k8igqMq3mpAAF
+EVGAALCY6NYIJQhBgAApIBSzmQkJRykkFPUgEO3SAJ0AKSBzKyId+yAEAN//9QDgehoEwAUAAP9X
+AA/0iAEAKCRz+0AEBXAIFQAKijkPuwHrJh0tBv4AAIoifKcEKyBOyrR9pwgtIEwsIE59wxnMbC4g
+FO8iAi9YHAAAZPH0wCDRDwAAAAAAAIgnx5MJqQHpJgIkUMEAAFhkOOPukhUBEYAAKKAAA4gKiIzs
+oActWASAAPpAaB2gDUUAC4AAZa/hiSdkn6iKmsqnKpIJZK+eKKAAA4gKiIzsoActWASAAPpAaB2g
+DTUAC4AAZa/hY/99AAD//1gNoAoFAMCgWYw0He5sidgsCgr5P/dAkB5FACYKACkgFLOZ+EKGHe/8
+GgAAAADqJAAK2ASAAFhy5tKg0Q8AACogBSsgBw8CAP9ADxUhuwEABQVH+KAPKVIAnQCOE+7iBi94
+BIAAnhQLvgL1YApyEgCdAAy6EQOqCCiinvcADnzSAJ0AKqKd7hYBJQrxgAD6QAgV4AwVAFgf9hvu
+Si8hCR7uQCghIi0gBxzuUikhJP8GAAww3REA7hIELuqCgAANmQIMmQKZoIwgKKYC/0BmFeANJQDu
+pgUuZgKAAA3MAv1AJhWgCQUA6wAVBVBhAACxmeqDHgyP6AAAjxEM/xHz4ABH8A6lAC72nfS/8sES
+AJ0AKiIH60QACmgEgAD7RAAVoAwFAFhrwGP+OgAAAAAA//dYDaAKBQAMmzTr1ggtbu4AAGP+2QAA
+LyEJ+EKwFaALBQD6wAYd7/oFAAqaASpkA+qaDAxBAoAA6iQUL/4CgAAI/wIH/wKfYfZ1phXv9soA
+iifAsPtEABWgDBUAWG47He4anaCMIBvuGeumAi5mAoAAB8wC/UAmFaAbxQDsJAAJUASAAFhxRMAg
+0Q8AAInY9yAEqJIAnQAM6hGjqiiinvcABXzSAJ0AKqKdZKCmsJiY2O4WAS11VgAAiSLrFgAkhRmA
+AJ8S+L/rYVIAnQCKJ8Cw+0QAFaAMFQBYby4e7fqeoI0gG+377BICLu4CgAAH3QKdoYzGnKP7QEYV
+7/TqAOtUAAlQBIAAWHJmY/0njxOP8/4ghhXv+I4AAAAAAAAA//jQDaAKBQAAnxKbEfogBhXgCgUA
+WYudHe3WixCJ2I8SjhH5P/qIkAylAP/9jA2gCgUAwKAMmDT5oQYVr/1aAAAAAIsQ7xYCKVAEgADr
+vBgpYASAAFhxCP4gSBXv/SIAbBAEKCAU74seahgEgACKJ/pgaB3gDAUA6qwgKegEgABYa1XSoNEP
+AIsic75+FO24iUhqkXob7bXTDyyyrmTAWCqyrWSgVLCd7UYIJQLhgAApIBTpJBQs2twAAC8hCfhC
+sBWgDQUA/UAGHe/8BQAMnAEspAPsnAwMQQKAAOwkFC/+AoAA+eYAD7AOFQAO/wKfof91phWv/eYA
+wKDA6g6eNO5GCC19ZgAAjyLJ9cAg0Q/AoFmLXolI+T/70JIAnQBj/+UA2iD8QGgdoBvFAFhw0sAg
+0Q9sEAgpIg/vITQpsASAAPZg6BXnhQEA7iAHKlgEgAD7H8AVoAQVAPqNAA0wHUUA/uEAC/HuAQDp
+fR8MFHQAACggT+8gTSRABQAACAhHKCRP+eATC6IAnQAvIAWbEZoQ/eARLWIAnQCJIsej+UAN0OIA
+nQAsIhmLMv1gE00iAJ0AjTgY7W3vEgEmkaGAAAzkEahEGO1r6BYCJ/gNAAD1wA0CEgCdAClCnv8g
+GYviAJ0AKUKd7ZQABJHBgACLKSoiCgwFPg8CAAuqDPVACeviAJ0ALBoA9YIyDeD49QArIBbTD/lg
+GAUiAJ0AGu1mKSEkKyEHCpkCKiEJCwtKDLsQC6oCKyAHHO1SCytA6O1eHdqCgAAMuwIsISKb0Isg
+mdSa0wjMApzS/WAAFbAMVQAMuwKb0RvtVSoiDyrWBSkgOPvapgWgDAUA/aDmFaBIJQD3oQYV4JkZ
+APlNAA3wCiUACYo5KWIEKdYJKGIFKNYK/MDIFaAJBQDs1gsjh+GAAOntRRzCgoAACYgCmNyMaJff
+nN6MEolpKdYQiGoo1hHsABUGySEAAAkAioxn/OAKq6IAnQAZ7S0KuAIJiAKY1sD1/pOmFeEOBQD1
+wfIN4Pr1ACsgFvtgEgUiAJ0ALiIZjCktIE8rIDjlzAgHcAUAAO4mGSbr/QAALSRPnCnzYA4HkgCd
+AI0QZdG+wCDRD58TnhSeFZ0W6iQACtgEgABYSjaNFo4U7xIDJXVhgACOEGXv14on2zDsEgElUMEA
+AFhuHMAg0Q8a7P+KqPdADsiSAJ0AK0Ke/2APs+IAnQApQp0d7PjkkeplY/0AAJzY7ZQADPJ2AABg
+AHoAKCA58R/4DhIAnQD/++QNoAkVAMGjevkSKSA6/iCmFaAL9QD7IBAlYgCdAOokAArYBIAAWHFq
+0qDRDwAAAAAAAPAAGA2gGtUAwKGMNyshCY04jjLrrxEN3QKAAA+7AuS7AglQBIAAWHFMwCDRDwAA
+AP//WA2gGoUAAAAr7BjqJAAJYASAAFhwEmP/KAAACrkCmdbAhfiTphWhDAUAdcsNKyAWKgr/+2AN
+PSIAnQCLEGSxNYtqjGeKaat7B8wMnGf3YNIN4A0FALGqjGWbaotmmmms2qt7d7sBsaqbZppliCkt
+IDiliJgp86AJN5IAnQCJJ4qayqWLmcqxnxMZ7L8osACeFJ4VCYgKiIwssAf6QGgdoA01AAuAAI4U
+jxOLIsej+1/zaOIAnQAoITSHZ/xB6BXgCRUAmRD44QALsBxFAPz+AA5/85YAANogWG9SY/47iifq
+rDArWASAAFhcw9Kg0Q8AAAAAAAAA//NIDaAJBQCfE54UnhWdFvpA8BWgDAUAWEq+jRaOFO8SAy1n
+TgAAK+wS6iQACWAEgABYb81j/hPqIAcq4ASAAFhKn2P9tZ8TnhT+IKYVoAoFAFmKShrsgoqojhSP
+E/lf8HiSAJ0A//iIDaAJBQDAkBzsfMC6C6s0+4EGFe/4QgCfE4onnhTuFgUp2ASAAOwSASVQwQAA
+WG2O7hIELTAEgAD+IGgV7/qWAJ8TnhTuFgUpUASAAFhvHY4U/iBoFe/7JgAAwVP6QGgdoAsFAPwA
+Ah2gDTUAWGjGKyAFjhX1f91NYgCdAGP9Y58TnhSeFeogByrgBIAAWEpyjhT+IGgV7/kaAAAAAAAA
+bBAMlRMmIAUvIAeHL+oyBCnABIAA/EaEFec1AQDyf8AV4A4VAAPjOf1BAA1wG0UA56sfDGAEgAD6
+wB6lYf8BAIkiKBYA8zr8DeAOhQAmgAEoFgDywBy3EgCdAJ8SnxoZ7D6TFxbsPOoWBiJYDQAA6xYJ
+L68CgADmVQgCcAUAAIganhiNGfUABVoSAJ0AK1Ke/WAII+IAnQAvUp1k85KImPcAB+iSAJ0AFuwr
+JmKuDAM+6uwoEwiJgAAqoq3qFgska/0AAOsSCyUIEYAA7ZYIJZqBgACHKYYqB2YM8sAH6+IAnQAo
+GgDzAjIN4Pr1ACsgFpwR+2AILSIAnQAW7CsqIDj72FAF4A0FAJ3394CIFeCqGQAKazmGFsSACo05
+9sAPguIAnQCdFI0X6xYFLoduAABgAZCImGqBIY0ZK1KefbM+L1KdnxuGG7CK72QAAwHhgACamGX/
+RmAC1gCeHPwgJhWgCgUAWYnDGev8iJiMEe4SDCQPGwAA//9kDaAPBQAAwLD6IWYV7/8CAMDaDY00
+/SEGFe//BgAA//v8DaAPBQAAnhyfHfwgJhWgCgUAWYmxGevqjBGImI8djhz5H/dIkgCdAGACWcBg
+lhuKG8C6C4s065YILXf+AABgAkOeHJ8dnBHqJAAJ2ASAAFhJCYwRjx3uEgwld3GAAGAB+54cnx36
+QPAVoAwFAFhKAIwRjx3uEgwtd0YAAGAC05wR/iGGFa+IBQDoJDsmOEEAAOcDHgewgQAABgJhhhaW
++I3Hh8SIxq1tBncMl8R22wouFgzsFgEkQAUAAIwWixGGFI4VmLadtwbuAu0iDylQBIAAWHBBGeu6
+jhyMEfqzphWhBwUAc3sIKyAWKAr/eLlciykqIDiju+smCSV5qoAAhi8vITT9gIgV4AoVAPog5hWg
+CDUAmBMP3Tb8IMYV4B9FAPe+AA+/9v4AAJ4ciiefHYsQ6qwgKmAEgABYbOHvEg0tYASAAP4hiBWv
+/NoA6iAHKeAEgABYSbGMEY4c+dcwBe/+QgAA2iBYbkiMEY4c+dcmBe/+NgAmIDsX65vtuwIHyIEA
+APmCABWjqwEA57cCCwjGAACTH43AE+uUA90BIyAHAyNACjMQA90CE+uIJiEkA90CIyEH6yEJLVIC
+gAD6xgALOjMBAOohIimbAoAAA7sCgy+d8I0glvSX9pP1m/ODH+vrfB7uAoAADe0CnfELqgLq9gIi
+DD0AALBKbakFCACGCQJhKCAUpIgICEcoJBT1AAZd0gCdACoSCPqzphWhCQUA8yHyDeD89QArIBb9
+YAilIgCdAMg/jiktIDij7p4p86AHr5IAnQCPF2Xw0sAg0Q8AJiBOZGxnDpsCmyLrEgApUASAAO0S
+AypgBIAAWG4/0qDRDwDqJAAK2ASAAFhv1NKg0Q8A2iD8QGgdoBvFAFhujWP/xwCLEtog67wYKWAE
+gABYbohj/7TbwPwgyBWvjgUALiQ7CCCGCQJj7PYIKVAEgADtIg8r8ASAAFhvw/ohBhWgDwUA/kdm
+He/8qgCLGyohCfxCsBWv/QUADY0BDY4MLiQU5MwQDVYCgAAMqgL9YGYd4A4FAP9gBh2gBhUABqoC
+mrEZ6yn3NaYVr/vyAACKJ+tEAApoBIAA+0QAFaAMBQBYaLzSoNEP2iBYbdNj/wYAAAAA6iAHKeAE
+gABYSTNj/uGLEtog67wSKWAEgABYbllj/vdsEAYoIAUlIAckCgP3AAVkUVUBACggImSAoQIqAlhm
+5vlABMDQBhUAKSAh4+sKGAQKgADzIAQv0gCdAOxZEQKlaQAAo5kqkp5uo3Qrkp1ksGopICH6QAgV
+oPzlAAyZAfcmAAywDQUA+EQmHeAIBQD4IAYVoA6VAPggJhWgDwUA+CBGFaAMBQBYa/YMXRGj3fWz
+phWgAgUA0Q8X6u+KeGqhJgxZEaOZLpKebuMtK5Kd5LApZWP9AACceGW/lMAg0Q///igNoAsFAMCg
+WYiqinhroc7//4wNoAsFAMCwwNoNrTT84QYV7/9SAAAAAGwQCiwgBfhA8BXgCxUA+GBoHaelAQDo
+FgElU/kAAOq6OQoYBIAA6hYFLCAEgAD9gcAEUZkBAMGz+4AZhWIAnQCMIhvqybQ+5cKxbMcCgACr
+iJ4U7RIEKAQKgAD1IAQCEgCdACyCnv2ABxPiAJ0AL4Kd7xYGJ5SJgAAlIRuKQocpmBAFpTb1TwAL
+cQ8FAHbzAdWghioHZgz0wAXT4gCdACoaAPVCMg3g/PUAKyAWmBD9YAX1IgCdAI0ppd2dKYpC+qAK
+cqIAnQCZGIwVG+q+h0OZGZgQ63cBBgfpgABgAK0a6qOKqOgWACUMn4AAjBQrgp58sz8vgp0e6p3k
+8Dhla/0AAJ3o7xYGL/uOAABgAfaZGPghJhXgCgUAWYhbGuqUiqiIEOkSCCUPFwAA//9UDaAPBQAA
+wPAc6o3AugurNPuBBhXv/woAAAAAAAAA//yEDaAPBQAAmRiZGeokAArYBIAAWEewiBDpEggleamA
+AGABipkYmRn6QPAVoAwFAFhIqIgQ6RIILXmOAABgAmDudAAKWASAAOWsDAroBIAA7xIGKVAEgADs
+RgIp4ASAAFhr5okZiRiIEPsTphWhDQUAddsIKyAWLgr/frkxwPH+IKYV7/oOAACKJ4sR6qwgKeAE
+gABYa6PAsuukAi0gBIAA+0BIFa/+bgAAAAAAAADqIAcq4ASAAFhIcYgQ+CEIFe/+9gCJQIwVh0P4
+IAYVp9kBAO0WAi4HpgAAKiAH+uBoHeGqAQBYJ3mJFteg6jz/IkBBAADpnCAhjDUAAG2pBQgAhgkC
+YcCgmhMvIQcW6lyIEvvUtAWq/wEA6eo6H/8CgADm/wIEaD0AAPYgyBWk3R0A7iEaJugFAAANPQyf
+YOsiACvgBIAA7ak5AbgFAADpZgIkQEEAAOhmAy3+AoAAD38C72YBKugEgADvQgMjUEEAAFhrmZcX
+6iQACdgEgABYYfaPQOMSByep7oAAhxDy86YV4QYFAPTB8g3g+PUAKyAW+WAE3SIAnQCIE9KA0Q8A
+iRVkkJvAINEPACucGOokAAlgBIAAWG1YY//kiif4IAYVp7lBAA8CAOqsICgECoAA9WAEUdIAnQCM
+FisKAezMICnoBIAAWGek+iBmFa/8OgAAAACLFuw9EQlQBIAA/WAARfAMFQBYZazyYGAV7/3CAGWs
+0Pmf5mjSAJ0ALyAg8f/mF5IAnQBj/3sAAAAAAAAA6iAHKuAEgABYSA2IE9KA0Q+KJ9ww6xIBJVCB
+AABYazHAsvtARh3gAgUA0Q8AANsw/GBoHeAMBQBYZ4PbQOw0AAroBIAA6hYDK/AEgADvEgYpUASA
+AFhrWfdAaB3v+2YAAAArnBLqJAAJYASAAFhtHmP+/ABsEAQU6fMkQIAIRBH6gGgdoAsVAFmEixjp
+32SgQvhGAAwwCSUAmaHopgAhAcmAAGghHG8kGe4iFmVIIQAAA0CICQiKAyCICQSKAwCICQCK2kD6
+AEId4AwVAFmJWMAg0Q/HJNEPD+gwn6IO7jCeow3AMJ2kDLEw/UCmFaALBQCbpvtA5hXv/y4AAAAA
+AGwQFOIWGynwBIAA/iNGFaAMFQD6I2gVp2UBAOjiACNb+QAAC8s5KaAHiqf6IaYV54gBAPgihhWh
+mQEA6RYKJVCBAADqFh4qGASAAPTAL2ESAJ0ALRIbjdJl1B8f6aGP+BLpn/fgL8iQDqUAJiKuZGYc
+KSKtZJYYGumasPiYqOiUAASvwYAALxIeKRIa++BoFa/FBQAF/wEvFhzvrwgEyIEAAO/8QCyoBIAA
+/yAvkuIAnQAmEhotEhQlFhX2wGgVr/wFAOYWESboPQAADNkBpZbmFhArKASAAP7ALmLiAJ0AmBeZ
+FZMWJBIb7xIKItgRAACbG/4iZhXkrR0A6hYWIbBBAADmFhIi0CEAAJocFul1lhgqEhomEhzkQQcv
+/wKAAKL/7xYYIzEBAACWGRbphftBhBWqRAEA6hYZKicCgAAGRAKUH/XTAgWgB6IAJyAA6v8MBMgF
+AADqEh4nQAUAAP8AaB2gaAEA6BIdJJWJgAArEhwsMACKowXMC6ur67xALmgEgAD7gBUC4gCdAAkM
+QPoAIh3gCgUADLo4DasL7aoKBeghAAD6ACId4AwFAAa8OBbpZwh3C6bGJmCQ58sLDUAEgADnzAoF
+2GEAAORkCAZgQQAAioANAIkPqjaawAsAi4yA4zwBIRAFAAD/n/rz4gCdAIMUD8sMCsIMkoD/oAgV
+4AcVAPOgKBWgBgUAC3Y4qWmiopLReisBsf+f0PKAGefSAJ0AHOlNLRIbIhIaFulJGulI7hIPJ0AF
+AAAGNgHqOgEMzgKAAAlmAikSHQqIAiMSGZiUllCPJygSFyYSFgP/DP5A5hXhNB0Ao2MvEhQS6TOT
+Hp6AjdAuEh7ihgIhmAUAAO+GAy7OAoAA+GYADPALBQD5ACYV4ApVAOYWASmgBIAA6BIVJBBBAADo
+FgApeASAAFmGcy8SHioSFiYSHI/zKBIVKxIQ5v8ICUgEgADmEhEn+QEAAPvgFVviAJ0AbakFCACG
+CQJhAzQCKBIa6IIHKw0eAABkgaj10igFoPL1ABzpFy4SGi8SGC0SGy7hDfPzphXgClUA/aAIFeAL
+BQBZhlgmEhsmYBbywAoFIgCdAC0SGy4SGigSGf2gCBXgClUA/8DoFeALBQDoFgAqYASAAFmGSy4S
+Gy7gFiIK/3LhCioSG4sdWCgsZKKMLxITJhIYJxIS9eAFwhIAnQAmYp4pEhj2wBNT4gCdACmSnekW
+FySHeYAAKhIaLxIZiVCKpy4SF/gghhXgBCUA++EAD7eZQQDvFhkkkRmAACoSHhPo1CsSHIqjo5Mj
+MAAX6NGrqwUzC+00AAXZAQAA+mAQUuDJAQD6ACId4AoFAAy6OA2rC+2qCgXoIQAAjBXYoOeTCAuQ
+BIAA/4AARjAOBQDsFh0mWGEAAP2CgBWv9u4AjRz6IWgVr/YOAAAA+48ADr/1ggAf6KyP+PfgDpiS
+AJ0AJhIYJxISJmKeKRIY9sAOy+IAnQApkp0b6KPkkc1n0/0AAJq46RYXLPmGAABgABMrEhoqEhsr
+sQ1YJ9Jj/rTAINEPAIsaLBIb67wYLlAEgABYa9bAINEPLGEAscz8wAQdr/liACUSGiYSGSVRDAZV
+DGVSACYSGyZgBPTAENkSAJ0AIhIa4xIXKbcCgACIIaYzIiIC5oI2adgEgADzABKgUAcFACkSG4oW
+KJAUhB6qiPaAAEJ3iAEA6JQUIiAFAAD1ABIeUgCdABzoly4SGi8SGC0SGy7hDST2nf2gCBXgClUA
+9c8AD3ALBQBZhdYvEhsv8BYmCv928Q4rEhorsQ0qEhsFuwxYJ58qEhuNFoqnwMDqrCAu2ASAAFhl
+/NKg0Q8nEh2LGPaAAgPwDwUA6wAVA7hBAACx/+eDHg+P6AAA9IAgFa/ylgAAAC0SFdMP7foMCUAE
+gAD4IsgV5OodAPHBIA3gDwUADQCG6AwAB/gFAAB++fEoEheNGQ6eDPlAAEQwDwUA5O0mZEBBAAAN
+IIboLAAH+AUAAH758WP9EBfoTY0c+iFoFa/4WgAAAPpvAA6/99oA//ZkDaAJBQCLGiwSG+u8Ei5Q
+BIAAWGt4wCDRD8CgWYX7H+gzj/j5//EYkgCdAP/4/A2gCQUAwJAY6C7Aagb2NPcBBhWv+LYAAAAA
+2+DtjA8qYASAAPojyBWk3R0AWQWy+iNGFaAOFQD+IaYVr+feAMCgWYXmH+gej/j5/8/okA6lAP/o
+IA2gCQUALBIb+4BoHaAbxQBYa1jAINEPAADAkBjoFA72NPcBBhWv55IAAAD7LwAKv+g6APrPAAq/
+6NIAACwSGi7AFS3AFCvAEezBCSlQBIAA7t0IC3AEgABZBYdj/dwAACoSG4sWWF/PLxIaj/Dx//Dy
+kgCdACsSF+oSGynvAoAA/WAARfAMBQBYY6L0YGAVr/gCAAAAKhIb6zQACWAEgABb9pgoEhqIgQyr
+Ees7CA04BIAA8R/toFIAnQDqEhspYASAAFv2Z/dAAEP/9oYAjBf2I2gV7/8FAA+PAQ+GDCZ0FC1x
+Cf7isBWgCwUAK8QAL8QD5O4QDu4CgAD/pgAOsAkVAAndAp3BGufY+VWmFe/2BgAAbBAIiCIvIAeV
+FPQgZhWg+/UA8RgsDeH/AQAoIBZ7gSwrEgTTD9MP/iDGFee7AQD7f8AV4AkVAOubOQlQBIAAWCcU
+LxIG808QDeD79QAsMA8V57od58EW57/lUIAuC4YAAIcTsHclXDf+IKYV5FUdAOV1CA/PAoAA5pkI
+AqgNAAD14AbiEAylACiSnvUAFQviAJ0AJZKd5FQAAooBgACK2PdACjiSAJ0ALmKuZOEBKWKt5JD9
+ZXv9AADv1ggkiAGAACggFtMPe4EOmRDrMQYpUASAAFgm2YkQKiAEixP1QAk5EgCdACogFKuqCgpH
+KiQU9UAM5lIAnQAsMA+JFPGRnA3nmQEA+SAOKVIAnQDpVAABwEEAAG15BQgAhgkCYcCgmhIMdBGk
+VCggBPUACjkSAJ0AiTHkFgEqWASAAOUyAiyNYgAA8yAOQFAEBQCkeYoV4hICLVcCgACmqimmndEP
+AIrY90APUJIAnQCJFQyZEaaZLpKe9cAQA+IAnQAukp2eEIgQ5YQABA/ZgACwqfmhBhXv/BYAAAAA
+7BIDKVAEgADtEgQp2ASAAFhqV9Kg0Q8AwJAMrjTu1ggs+EYAANog/EBoHaAbxQBYaqZj/8onMA72
+4ACD//pGAAAAK/wY6iQACWAEgABYap5j/6zAoFmFIR3nWorYKwr/+V/1YJAMpQBj/7kAAAAAAOsS
+AylQBIAAWF8fY/7hAAAAACwhBx3nZvvO0gXqzAEA7jAOLmcCgAANzAIstiiKIBjnaf1AABUwDDUA
+DKoCKrYp6AQFAfhBAAD5IAnBUgCdAG3pDgQCYw9AhgQCZQ8AhgQCYcDQ/CBGFe/62gCOMPPACuqS
+AJ0AjxXiEgIv/wKAAKb/J/ad0Q8rIQn8QrAVr/0FAA2tAQ2vDP5Chh3gDgUA7ZQDLmECgADulAAt
+3gKAAP1mAA2wCBUACLsCm5H41aYVr/i6AIon/KBoHaALFQDtEgMlUIEAAFhkt/ogRhWv+O4AANog
+60QACuAEgABb9b6LEYkxDKwR7LsIDSAEgADxP/IAUgCdAOokAArgBIAAW/WNpKSkeYoV4hICLVcC
+gACmqimmndEP//WIDaAFBQAAACv8EuokAAlgBIAAWGpGY/5MAAAAAAD+IMYV4AoFAFmExh3m/4rY
+/iDIFeD79QD5X+/wkAylAP/0iA2gBQUAwOD+IAYVr/gOAAyoNPmhBhWv9DYAiieFq/tEABWvyQUA
+CakBqVkpnEBt6RMEAmMPgIYEAmkPYIYEAmd5+xnTD40TDwIA+6BoHeAMBQBYZH76IEYVr/VuAPXv
+AA///4oA2iD6gGgd4AwFAFhih7N7jBXiEgIuZwKAAKbMK8ad0Q9sEAQjIAAkCu10MQYiIQO8ItEP
+hiCFI4Qh9nAABDs2IQD4YABBs2YBAKYzDjMR8q8ACX1EAQDjPBohE8kAAAQkLAQzKKMi0Q9sEAiK
+IicgB4kwlRT4QtAVoXcBAPFbDA3omQEA+CAmFeD79QB7gSArEgQLC0f7f8AV4AkVAOubOQlQBIAA
+WCYE80/gDeD79QAa5rSIqBbmsfcADGCSAJ0ALWKuZNGsJWKtZFGosIiYqOlUAAKMeYAAFeaiJVCA
+JVw3+CAGFeRVHQDlRQgLzwKAAOaZCAKoDQAA9OAIWhIAnQAokp71ABMD4gCdACWSnWRRbyogFvtD
+Jg3g7NUAKzAQ/WASZCIAnQArMQu8u9ogWCXMLCAE9YAK+RIAnQAoIBSkiAgIRygkFPUADIZSAJ0A
+ihQe5qKNESghBxzmghnmoP+h4BXqiAEA/wAAFDT/HQDpiAIH+AUAAA9PDJhQiyAP7Dn8oGYV56oB
+AOxWAi3eAoAA60sCAshBAADrVgEhwEEAAPlACAFSAJ0A6EENYlP9AABtqQUIAIYJAmHAgJgT6SAE
+Ilv9AAAMuxGrW/UgB5kSAJ0AiDHlMgIl2EEAAOsWAiwJ8gAA8wAK8FADBQCjTIgTDH0Rpt3s1p0s
+EASAANEPAAAAAAAAAPcADXiSAJ0ADHkRppkukp71wA3T4gCdACWSnWRRsbCMnKhlXuRgAFHqJAAJ
+2ASAAO0SBCpgBIAAWGk70qDRDwDAoFmEFBrmTIio+R/zUJD79QD/+cgNoAUFAADaIPxAaB2gG8UA
+WGmGY/+8wFDA2g2INPlBBhWv+UoAK3wY6iQACWAEgABYaX5j/5wAAAAAAOokAApYBIAAWF4FY/6p
+iif9IGgdoAsVAOqsICpoBIAAWGPL+iBmFa/8AgCLMPNgCOKSAJ0A4hIDK+cCgACmzCTGndEPjxAu
+IQn4QrAV7/oFAAqKAQqMDCwkFOSZEA92AoAACe4C++BmHaALBQD74AYd4A0VAA3uAp7x/NWmFe/4
+6gAAAAAAAADqJAAK4ASAAFv0u4sSKDIB6hYFLWcCgADsuwgNGASAAPEf9VBSAJ0A6iQACuAEgABb
+9ImIE6Ojo0wMfRGm3ezWnSwQBIAA0Q//9owNoAUFAI40izeNNf5wAAe7ziEA/4AARnPuAQCuzA7M
+Ef1vAA293QEA7MwaJdvJAAANvSwNzCj9YABFv/YiAAArfBLqJAAJYASAAFhpNGP+dMCgWYO3GuXw
+iKj5H/I4kPv1AP/5ZA2gBQUAAMBQwPoPjzT/QQYV7/kmALBLDLsR61sICVAEgAD7YgAV4AwFAFhh
+i7NM4hIDK+8CgACm3SzWndEPAABsEATaIFgluIQ3JTAW+cvmBaKmBQAGpigX5fioaAVVCghVC6dV
+iFC4RPUEBg3gBxUAiDLqUgEpAQqAAAB5GgmIApSgmkGVQJRRmDLRD9ogWCWmG+XqHeXqK7Iy6tKB
+LWAEgACsu+8wFi3eQoAAq6oe5eYZ5eTo5doeZwKAAK7MqWkrkn3u5cUfgQqAAO/CASvoCoAADbsC
+LZJ/CP8BK5Z9D90CDe04DbsCm8Ipkn9kn39YAraIMupSASkBCoAAAHkaCYgClKCaQZVAlFGYMtEP
+bBAI2iBYJYTUoBvlzvnLmAXipgUABkQoFeW96UkICVcCgACrqoqgKZJ/GOXEpUX7IAQEsGMFAPgg
+BhXgBxUA4QAFATO5AAD4gABCMADiAAAAAAM8CvWAAgZ8OEUA6MgICVAEgADogn8qWASAAP50ABWu
+LQUA7cwIC2gEgAALgAABAYcDN2DhAQcJ9yAAANEPbBAEKCAFJSAH+mCoFa/01QD6QEgV4AMlAP0B
+IBHRVQEAwCDRDwCIKRnlpJor+wAHfCIAnQAJWQkpnQIqkQgpkQT7IARbogCdAMGv+0AECOIAnQDa
+IFhhN4siA7oBZK/AiicEuwHrJgIlUMEAAFhbGuPldBUBEYAAKKAAA4gKiIzsoActWASAAPpAaB2g
+DUUAC4AAZa/hiSdkn4WKmsqnKpIJZK97KKAAA4gKiIzsoActWASAAPpAaB2gDTUAC4AAZa/hY/9a
+AAD//1gNoAoFANogWGEnKyAi6rsMCVAEgABYYnfaUPoAIh3gDAUAWGMmiyIDugHzf/smYgCdACwg
+B+S9AQlQBIAA/EBGFeG8AQDrvB8pYASAAFhof8Ag0Q8A6yAiKVAEgABYYmUqIAXB436hDGioKYsi
+82AEBX/8hgAvIDrAj3j56vpAaB2gCwUA/AACHaANJQBYYZFj/9cAAPpAaB2gCwUA/AACHaANJQBY
+YQ9j/78AAGwQCogrHeVPLiAhizf8YMgVoP/lAA/uAS4kIQ3MAQy7DOuJCHjIBIAAwCDRDwMAhgkC
+YZsVKCAFJSAH+CEGFe/01QD8QEgV4AMlAP0bQEHRVQEAiimbK/tAB+xiAJ0AG+U4C1sJK70CLLEI
+K7EE/WAEs6IAnQDBz/2ABGDiAJ0AAioCWGDOiyIDugFkr5qKJwS7AesmAiVQwQAAWFqx26Dj5QoV
+ASGAACiwANMPA4gKiIwssAf6QGgdoA1FAAuAAOukAA1/JgAAiScPAgBkn1iKmiuSCcqnZL9OKLAA
+A4gKiIwssAf6QGgdoA01AAuAAOukAA1/NgAAY/8tAAAAAAD//0wNoAsFANogWGC7KyAi6rsMCVAE
+gABYYgvaUPoAIh3gDAUAWGK6iyIDugHzf/rWYgCdACwgB+S9AQlQBIAA/EBGFeG8AQDrvB8pYASA
+AFhoE8Ag0Q8A6yAiKVAEgABYYfkqIAXB436hDGioKYsi82AEBX/8XgAvIDrAj3j56vpAaB2gCwUA
+/AACHaANJQBYYSVj/9cAAPpAaB2gCwUA/AACHaANJQBYYKNj/78AAGwQBCkwFglZFPUgBliSAJ0A
+8S2wDe/65QDj5L8UpfkAAGiVBMAg0Q8AKyAGsLsLC0frJAYt/34AAI0ijCcK3QHtJgImUMEAAFha
+WcmsKKAAA4gKiIzsoActWASAAPpAaB2gDUUAC4AAZa/hiSdkn7OKmmSgmoqZZK+pKKAAA4gKiIzs
+oActWASAAPpAaB2gDTUAC4AAZa/hY/+IKSAGsJkJCUfpJAYs++4AAIwiiScKzAGcIouaZLBOi5ko
+sAADiAqIjNog/WDwFaANNQALgADAINEPAAAAAOokAAnYBIAA7EQACugEgABYaX3AINEPAOokAAnY
+BIAA7EQACugEgABb/1PAINEPAP/+vA2gCwUA//2MDaAKBQBsEATRDwAAAGwQCBXknRTkfBfknZIS
++CBIFaAKBQD6IGYVoAlFAJkUGuSXCIIJ4IEECReCgAD2QABD8AgVAOoiCAxACoAA+CAmFa/59QD5
+FwAMcAYFAPggBhWgAIoAmxOMFLFm4iwMI7gxAADlXAImY/0AAOwWBCYE8YAALVHC+sAEANALFQDg
+uxoOo0wAAC5xfmTvygIqAlhiyY8R+sAEANAIFQDgiBoNGASAAOgWAyeAaYAAiaKKEAqZAZkyijcq
+rDBYWfXJrCigAASICoiM7KAHLVgEgAD6YGgdoA1FAAuAAGWv4Yk3ZJ90iprLpyqSCWSvaiigAASI
+CoiM7KAHLVgEgAD6YGgdoA01AAuAAGWv4WP/SYsT+iBIFaAJFQALmzlYY5vRD///GA2gCgUAbBAG
+HeRWCysRrbMqMn8Z5FQV5D6IoPigAETwBAUA6bkIBAGRgAAsMngvMnv5gAWEYgCdAGXw7Cw2fCsy
+eSs2e91ADeQWlKAN5BbAyfxABhQiAJ0ALzJ7wcDt5EIXg5mAACIyfCohBI4g8+H+Daa6AQAkNnz0
+b2YVoAAeAC42fO2vAQXD/QAACP8C7yUEJYxZAAAiMnywzO8yeyEA8YAAycZj/7/aIFhiNmWgnSoh
+BP9BAAwWmgEAyJjRD9ogWGNh0Q8A2iBYY5TRDwAAAAAAAPpAaB2gCwUAWGNh0Q8AAADq0mAhY+EA
+APuABADQCxUA/WABBd/89QAMuwMLqgEq1mBZhiEkNnwkNnv6b+gVr/zKAFl781hh6C1So2TfNVl7
+xGP/LxzkEf5viBWgClUA+G9IFaALRQDoFgAha+UAAFmBQPpv6BWv+9IAKTJ74jZ8LPtGAAAiNnvR
+DwAAbBAEFOQDGeP/6OPpGV7CgACktCNCf6mI6LgIAYJBgACKMHipAipCexzj+CsxBCpGfwy6Aeo1
+BCnQBIAAWGH5zq4pMQT/IQAMFtkBAMjX0Q/aMFhjJdEP2jBYY1jRDwAAAAAAAPpAaB2gCwUAWGMl
+0Q8jRn/RDwAAbBAE8GDwDe/59QCIIgk5AwmIASgmAoonDwIADwIAKqwwWFlc4+O2FQERgAAooAAD
+iAqIjOygBy1YBIAA+kBoHaANRQALgABlr+GJJ8uUiprKqIqZyawooAADiAqIjOygBy1YBIAA+kBo
+HaANNQALgABlr+HRDwAAAAAAAP//UA2gCgUA0Q8AAGwQBPJdABXgGMUA+EAHXCczAQAU44v0YAXS
+EgCdAAw5EaSZKJKe0w/3AAcG0gCdACmSnWSQzxzjnhvjtgIqCQyqCquqWGH7+kAEANAJFQD9IAEE
+3/v1AOKkAASAcYAAiqILmwMLqgGaIoonDwIAKqwwWFkm4+OAFQERgAAooAADiAqIjOygBy1YBIAA
++kBoHaANRQALgABlr+GJJ2SQZCqSCsqmKpIJyawooAADiAqIjOygBy1YBIAA+kBoHaANNQALgABl
+r+HRDwAAAP//XA2gCgUAFeNcilhqoTcMORGkmSuSnm69PimSneSQOmVb/QAAm1hlnz5gAAvaMFl7
+amWvM9EP0Q/RDwAAAAD//IwNoAkFAMCgWYESilhrob3//0gNoAkFAMCQwMoMrDT8oQYVr/8OAAAA
+AGwQBBjjQQIDRwwzEagzKzKEGeNKKLAAKrIBCYgKCiGMAgo+KIIMAwI+/EBoHaANJQALgAAiNoQM
+AgDRD2wQBBTjMgIDRwwzEaQzJDKEikEmQAAoQAj6mGgdoKklAAIFPgMCPnmBJRjjNQhoCoiM6lQA
+ClgEgAD8QGgdoA0lAAuAACI2hAwCANEPAAAA6yQAClAEgABYYbvzQGgdr/8uAAAAAAAAbBAEGuM0
+KqJGK3rQC6ooFONL/0AAFTALFQALqgL6luYVoAkFAAnkMRXjRhjjKyhWhCVShCNCt2YwDW0IBStC
+t2awBGP/8wAAHOM/IsaKY//8AAAAbBAEWX/sEuMCE+MdKSKC0w8JGo4DqAqIgAuAAGP/7ABsEAQq
+IgcqrBBYYpjRDwAAbBAEiCcijBDaIFhid2ihAdEP2iBYYnES4ysLqBHoIggFAdmAAAzqMCsihSuy
+ACKs/+y7CAlQBIAAWYTvHOMjKsJ/+kAEANALFQAAuxoLqgIqxn9ZhR7RDwAAAAD6AOIdoAsVAFhi
+Tywifywmg9EPAGwQBCYiBw8CAOZsECnQBIAAWGKy7DQACmgEgADuVAANWASAAO8iACtQBIAAWGH1
+0Q8AAAAS4woD6DAE7jAFsTCTIJQhlSIS4wYT4tSEIAQzApMgEuMEwDAoN0AoN0QoN0goN0wjPQFy
+M+0DAgAS4v4T4t2TIMcvE+L9AyMDEuL8hCAENAGUIBLi+4QgBDQBlCAS4vmEIAQ0AZQgEuL4hCAE
+NAGUIMcvwDEDIwMS4vWEIAQ0AZQgY//8AAAAEuLygyADExQPMxGTIFf/2hDi75EAkgGTApQDEeLt
+ghAB6jCiEQHwMcBABOQWAAIAEeLpghAjGgADIgKSEBHi5sAhkhAE5DGEA4MCggGBAADSMAEjAAAA
+ABDi4ZEAkgGTApQDEeLfghAB6jCiEQHxMcBABOQWAAIAEeLXghAjKgADIgKSEBHi18AhkhAE5DGE
+A4MCggGBAADTMAEzAAAAABDi0pEAkgGTApQDEeLQghAB6jCiEQHyMcBABOQWAAIAEeLFghAjSgAD
+IgKSEBHiyMAhkhAE5DGEA4MCggGBAADUMAFDAAAAAABclAFdlAJelANflABDAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXJABXZACXpADX5AAUwAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyUAB2QAZ2UAp6U
+A5+UBAiUBQmUBgqUBwuUAEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACckAGd
+kAKekAcdkAOfkAR4kAV5kAZ6kAd7kABTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAA3JQAHZAB3ZQC3pQD35QEBJQFBZQGBpQHB5QICJQJCZQKCpQLC5QAQwAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAANyQAd2QAt6QCx2QA9+QBLSQBbWQBraQB7eQCLiQCbmQCrqQC7uQAFMAAAAf//uQ
+ANIxEP/+CgAAAAAAH//72ADTMRD//goAAAAAAB///CAA1DEQ//4KAAAAAAAA9DAKAAAAAAD0MAoA
+AAAAAPQwCgAAAABsEAQqIhAooAUpCpL5AATlYgCdACsiGPrgAAZwjbUA/YAETWIAnQDzYAQr0gCd
+AP9uwAwfyQUAi62Ot4jqjOiN6y/sIOn/AQZQwQAA790IBEDBAADo5gom6QEAAOrTYH5IBIAAfaFp
+muga4RwKAIcJAmEJAmEJAmHAgejGBSlQBIAA+YDmFaAOBQD/gIYVoA0lAP+AxhWv//UA78YDL2AE
+gABYA3vAINEPWMcSwCDRDxnhDAm5AfhDBhXgAgUA0Q8M2gwK+gwqrHD7wQYVr/5yAC38QP3BBhXv
+/kYAbBAEE+EBAyIC0Q8AbBAEFuD/JCAHiWDAc/EyQA3hRAEAKSIYCehR9QAJiJIAnQDzwfAF4anh
+APVACYiSAJ0A9IAGchIAnQAMSRGjmSuSnvdgCsnSAJ0AKpKdZKEzG+Do6wAFDUgEgAAJAmEJAmEJ
+AmEpIQcb4Oj/wdAF6pkBAOzg5xzPAoAAC5kCmaAZ4OX+QAgVoD0FAJ2n/UCmFaAbhQCbo5mi7+4C
+D0YCgACepPcGAAxwDgUAnqaYoSgiGAiIQe6mCCxHAoAAmKnt4NYafwKAAKP/J/adLCIYnmAqIhAN
+zALsJhgpWASAAFi35QUKR2iiGIon+gAiHeAMBQD7RAAVoA0VAFheCdKg0Q/AINEPHODFi8j3YATQ
+kgCdAAxJEaOZLZKe96AFIdIAnQAqkp3koJtl6/0AAJ3IZa8eYABPjiKxn+9mACcBqYAABQhH9QAE
+SRIAnQDAINEPKhoACpkC+EMGFe/7JgAAACsqAAubAvpDBhXv+yYAAAAAACtMGOokAAlgBIAAWGOQ
+Y/+9AACMImXPtitMGOokAAlgBIAAWGOKY/+lAAAAAAD/+qgNoAoFAMCgWX4KHOCbi8j5f/rgkgCd
+AP/9xA2gCgUAwKDA2g29NP2BBhXv/YoAjCePyorJ/4QAFa/IBQDo7gEH+EEAAO/GCiVTwQAA6sYJ
+J3EBAAB+qymJyx3giaqamsmdoIwg+8EOBeANFQDrpgIuZgKAAA3MAv1AJhWgAgUA0Q8d4H+doIwg
++8D8BeANFQDrpgIuZgKAAA3MAv1AJhWgAgUA0Q9sEAjkIhAqYASAAOdCByvQBIAA6+BzGXAEgADy
+gsgVoBg1AOdyDiL76QAAePspGOBtCPgKiICaFJwS7hYBLAAigAAAAACSECqykexUAAnYBIAAWXzN
+ZKYv8oLGFaACBQDRDwAAAAAAK+IYC5tS7hYBJf85gAAa4FriFgAp2ASAAOqisyrgBIAAWXy/ZKRZ
+IiqAonKSFSIg3hrgUtsw6qK1KuAEgABZfLj7QEEAEgCdABrgTNsw6qK3KuAEgABZfLL7QEFoEgCd
+ABrgRtsw6qK5KuAEgABZfKxkppQa4EHbMOqiuyrgBIAAWXyn+0BC4BIAnQDBOPJAHrhiAJ0AaScj
+ixUjtN2LEPqCxhXgAgUA0Q+SECqyiexUAAnYBIAAWXyaZKbbixD6gsYV4AIFANEPAACSECqyl+xU
+AAnYBIAAWXySZa8S+iBoHaALtQBYtNT6ACId4AMFAOqzOAUBiYAA6hICK1gEgABZedLDsOzgHh0o
+BIAA/KBoHeAKVQBZfSTIWRzgGo0RDFw2LNYXZTTgjRD8gsYV4AIFANEPLkByZO61khAqsq3sVAAJ
+2ASAAFl8dmWuovogaB2gG2UAWLS4+gAiHeACBQDqsjgFAKmAAOoSAitYBIAAWXm2LH0DKsUoZSSM
+jRD8gsYV4AIFANEPAJIQKrKf7FQACdgEgABZfGJkovsa3/fbMOqiiyrgBIAAWXxdZa5A+iBoHaAL
+VQBYtKD6ACId4AIFAOqyOAUpmYAA6hICK1gEgABZeZ4sQHPxgCju0gCdAGSlFYoU+gCiHeAM1QBY
+tHzSoNEPkhAqsqXsVAAJ2ASAAFl8R2WutPogaB2gGyUAWLSKZKPzK0By+2BEIBIAnQDqEgIrWASA
+AFl5iCxCF4sQK0YWCsw2/ILmFaACBQDRDwCSECqyo+xUAAnYBIAAWXw0ZKJzGt/J2zDqop0q4ASA
+AFl8L2WuVPogaB2gC+UAWLRyZKOT6hICK1gEgABZeXMrfQIqtRSLEPqCxhXgAgUA0Q+SECqylexU
+AAnYBIAAWXwgZKJ6Gt+02zDqoqEq4ASAAFl8G2SjtxrfsNsw0w/qoo8q4ASAAFl8FmWt7vogaB2g
+C3UAWLRYZKMtK0ByZLfyGt+lixLqotsrYASAAFl8DGWm5ytAc8DIDLsCK0RzixD6gsYV4AIFANEP
+AACSECqyq+xUAAnYBIAAWXwBZKI/Gt+W2zDTD+qijSrgBIAAWXv8Za2G+iBoHaALZQBYtD5kosUr
+QHJkt3ka34uLEuqi2ytgBIAAWXvyZKeIK0BzLAr9DLsBK0RzixD6gsYV4AIFANEPAJIQKrKT7FQA
+CdgEgABZe+dkogca33zbMNMP6qKHKuAEgABZe+Jkowoa33bbMOqipyrgBIAAWXvdZKw/Gt9y2zDq
+oq8q4ASAAFl72GWsLMCl/b7gBaA7BQBZfHYa32qLEuqiyStgBIAAWXvQZaQYixErshgLmVLImWiS
+B/kgBPnSAJ0AjRGMECvWGPyCxhWgAgUA0Q+SECqyg+xUAAnYBIAAWXvCZKG7Gt9X2zDqooUq4ASA
+AFl7vWWsjPogaB2gCyUAWLQAZKHLGt9OixLqotsrYASAAFl7tWWsa4oU+gBCHeAM1QBYs+HSoNEP
+AAAAAAAAAOoSASpYBIAAWLP7zayCFSIg3mP8FwAAAOoSAitYBIAAWXjw9UAq8pIAnQDHL9EPAPog
+aB2gC/UAWLPlZKFi6hICK1gEgABZeOfoEgAjyAsAACqVFfiCxhWgAgUA0Q8AAPogaB2gGxUAWLPZ
+ZKEyKkByZKXUKUBz8T/ez5IAnQDxP96P0gCdAOoSAitYBIAAWXjVLUIYHN8j+6EADrA7BQD8gwYV
+4ApVAFl8JYsQ+oLGFeACBQDRDwD6IGgdoAulAFizw2Sg2i5ActMPZOTl6hICK1gEgABZeMMvQTb7
+4A8CogCdAIoU+gFCHeAM1QBYs6LSoNEPAAAA+iBoHaAbVQBYs7NkoJrqEgEqWASAAOwSAitoBIAA
+WLM6ixD6gsYV4AIFANEPAAAA+iBoHaALlQBYs6dkoGooQHJkhIga3vWLEuqi2ytgBIAAWXtbZaHN
+K0BzjRD8gsYV4AwVAAy7AvqOZh3gAgUA0Q8AAAAAAAAA+iBoHaALFQBYs5XKohre5IsS6qLbK2AE
+gABZe0tlqsOKFPoAIh3gDNUAWLN30qDRD8Cl/b3CBaA7BQBZe+XAINEPAAAAAAAA+iBoHaALhQBY
+s4P6ACId4AIFAOqyOAUBSYAALEByDwIAZMP5Gt7U6xICK2AEgABZezRlof0tQHPA6A7dAi1Ec2Uv
+pY8Q/oLGFeACBQDRDwD6IGgdoBsFAFizb2SviihActMPZIOE6hICK1gEgABZeG8pQhmLECtGFgqZ
+NviDJhXgAgUA0Q8AAPogaB2gCzUAWLNhZK9SGt6wixLTD+qiwStgBIAAWXsW4960HQO2AACLESuy
+GAvJUciZaJIH+T/tkdIAnQCOEYwQA70BLeYY/ILGFaACBQDRD2UvDI8Q/oLGFeACBQDRD4gVwJgJ
+IgIihN74IEgVpyIBAPj6xhWv5VYAAAAAAAAA6hICK1gEgABZeEYqRTaKEPqCxhWgAgUA0Q8a3o2L
+EuqiwytgBIAAWXr0Za09ixErshgLyVFokQpokgf5P+lh0gCdAB7ejAO9AQ7dAo4RjBAt5hj8gsYV
+oAIFANEPihT6ASId4AzVAFizFNKg0Q8AAPogaB2gC0UAWLMlZK5ijRH9vPwFoApVAP2jCBXgOwUA
+WXt7Gt5vixLqosErYASAAFl61ePedh0N1gAAixErshgL6VHImWiSB/k/5XnSAJ0AjhGMEAO9AS3m
+GPyCxhWgAgUA0Q8a3l+LEuqiyytgBIAAWXrFZayDixErshgLmVJokQpokgf5P+OR0gCdABLeYPgg
+KBWijgUArn4CsgIihhgt4N38IAgVoA8VAA/dAi3k3fyCxhWgAgUA0Q+KFPoBAh3gDNUAWLLg0qDR
+D4gV+iBIFaAPJQAPLwLvhN4rWASAAFl39IgVIoDe+xuGHa/fDgCKEo0V+7yOBeAJRQAJKQL5u8Yd
+4AwlAFl6n2ShqYoS+7yEBeAMJQBZeptkoZkb3j/6IEgVoAwlAFl6l2ShoIoS+7x2BeAMJQBZepNk
+oZCCFfJb0BWv3g4AAADAsPggqBXgGAUA+EYADDNjRQDy4ABB8IwFAOiU3inQBIAAWXdt+HyCHaAL
+BQD44ABDsIwFAOMWAyvQBIAAWXdmhRLacOVcAiMb+QAA7DQACtgEgABZd1Ub3hz6IEgVoAwlAFl6
+dmShNBveGfogSBWgDCUAWXpyZKEjG94W+iBIFaAMJQBZem5koSKKEvu8JAXgDCUAWXpqZKESghXy
+W9AVr9wiAAAAGt37ixLqosMrYASAAFl6YmWq9osRK7IYC+lRaJEKaJIH+T/XKdIAnQAe3gKMEQO9
+AQ7dAv2DBhXgClUA/bv8BaA7BQBZevaLEPqCxhXgAgUA0Q+KFPoA4h3gDNUAWLJ+0qDRDy8qgK9/
+IvDewIEIIgL+IKYV5yIBAPP7xh2v2KoAAIoU+gICHeAMxQBYsnLSoNEPihT6AUId4AzFAFiybtKg
+0Q+KFPoBIh3gDMUAWLJq0qDRD4oU+gECHeAMxQBYsmXSoNEPAIoS/N/AFaNrRQDrewgFUAkAAFi0
+E2P+TYoS/N/AFaNrRQDrewgFUAkAAFizU2P+VtpQ6xIDKeAEgABYtAlj/svaUOsSAyngBIAAWLNL
+Y/7cihT6AkId4AzFAFiyTdKg0Q+KFPoCIh3gDMUAWLJJ0qDRDwCKFPoAwh3gDMUAWLJE0qDRD4oU
++gDiHeAMxQBYskDSoNEPihT6AMId4AzVAFiyPNKg0Q8AAGwQBCgiGPjgAAQwicUAeYEn9EIIFeeV
+AQD1IAmpEAcFAIk3iprkkgklAKGAAItD7EIFJYRlAADJwcAg0Q+Nc9Rw7nIFJoQdAABl7+wmIAf6
+QGgdoWYBAPrAaB3gPAUAWDArZKHUi0MpQgUPAgD1YAd4EgCdAGSRX/tC5h3vjgUA/0AmHaj7HQD/
+QsYd6P8dAP9Cph3o/x0AL6QULSIW/UPmHejdHQD9Q8Yd6N0dAP1Dph3o3R0ALaQcHN2EDGoR/UAA
+RTAJVQCZoCogFvpA8BXg+PUA+UbGDaAZ9QD5uvoFoqwFAAy8HajIKIJ/CpkM+QALemIAnQAf3Xf1
+QAAWsDgFAOjdAg33AoAAr+6d4Ik4jEfqMgkkgJGAAJc7maCLOJqxJzYIJzYJ7t1sFgBpgAAtIhgO
+3QItJhiKN/oAYh3gDAUA+0QAFaANNQBYWovAINEPizhkvslj/94AAAAAAAD5P/ig0gCdACekAC1S
+E7Hf/qJmFejtHQD9Q2Yd6M4dACykGf9DRh2ozB0ALKQYKVIQHd0wsZkNnQL4ogYV6IcdAPlAxh2o
++B0A/0CmHejvHQAupAQnpAf9QmYd6M0dAP1CRh2ozB0A/UImHajMHQD9QgYdr/qWAADE0C2kAIxG
+/UDmHajMHQD9QMYdqMwdAP1Aph2ozB0ALKQEKVIT+UNmHeiZHQD5Q0Yd6JkdAPlDJh3omR0AKaQY
+iET5QmYdqIgdAPlCRh2oiB0A+UImHaiIHQD5QgYdr/kKAI44Ze35iS4a3SbqNgsh+IEAAO+WASFA
+4QAAmDmZOP5BxhXgAgUA0Q8f3R8KrQoe3R+vzw/dC67dK9F/K7zQB7s1+6/kHe/6PgAAbBAEJCIQ
+ZEB1KDAYKTAZKyIW6jAaLEYCgAAJiALpMBssRgKAAAqIAgiIEQmIAuuJB3XIBQAAKSYWKSIY0w/q
+3QkUwCiAAAqaASomGCswECwwEe0wEi3eAoAADLsC7DATLd4CgAANuwIIuxEMuwJosBIsQAUtCpX9
+gAhMYgCdAMAg0Q8ALjAULzAV6DAWL3YCgAAP7gLvMBcvdgKAAAjuAgjuEQ/uAv3Y4ABfyQUAi02N
+t4jajtjs0gsm+IEAAAn/AersMC9IBIAA78wIBEDBAADo1gomYQEAAPuABYOiAJ0A/UAFzCIAnQCa
+2Bzct/wACB2gCjUAbaoCCQJhKTAUKjAV7DAWLM4CgAAKmQLqMBcszgKAAAyZAgiZEQqZApnjKDAQ
+KTAR6jASLEYCgAAJiALpMBMsRgKAAPsGAAwwDAUA7OYFLEYCgAAJiAKY5C8wBCgwBekwBi/+AoAA
+CP8C6DAHL/4CgAAJ/wII/xH55gAPsA0lAO/mBilQBIAAW/7/Y/7tANpAWMJawCDRDw7KDAr6DCqs
+cPuhBhWv/UYALPxA/aEGFa/9GgAAAABsEAgW3K7Apf25XAWgOwUA9NYoFaANBQBZeZkoYk75uP4F
+4AUFAPEc4A3gBhUAmRUY3KWYFoxMLcEEjsD7v+AV7/U5AO/FBS3PAoAA6ekID78CgAAHlwwHAIf3
+gGQV5qUBAAqmYP1DQEdWdwEADPgRCJgMCCCHwKAKpmL1QAwPUgCdAH+5Cch2+uAMpCIAnQAY3I4X
+3IrogigvzkKAAKmpJ3KrqYgJiBGod4l68yAJxSIAnQDy4AmEYgCdAJcU/bkGBaAKVQD84AgV4DsF
+AP7gsBWgCQUA+CAGFeAPBQBZeWiNFPe47AXvmHUAKNQFitj29igV755lAP+gph2gDAUA7NYKJQC5
+gAD8IMgVoAolAPwgiBXgOwUAWXlZHdxojBQt0p4qwh6MwA3MDOwWByV8/IAAixQqshkrshj+7ggV
+qAA9APtrAA0wDAUA++AABTANFQD7WgANMC8FAO6qCg+CCoAA+0AIFaC7nQBYWSGLFI23jNrkwAlm
+0IEAAI7ZYAABwOCN4Q0NR/ugaB3gDAUAWFltjhWLFIoX7gAFBciBAAAJAmEJAmEJAmEJAmEJAmEJ
+AmGIt/8EABXvyQUA+eAEB/AJBQDphgon+QEAAP8BBhXgDAUA/wEmFeANFQDqcgwtWASAAFhZAhrc
+NSqiTrFV+r/yC6AGFQDRDwAAAAAAAO3BBCf4BQAADw9PL8UFffFcsNsMuRH5wABE//lOAAAACfsR
++0AARf/59QD/oAATNfsdAObuCA//goAA/88AD3AGFQD/34AVpLsBAOjiAC2BCoAA78EFK1gKgAAJ
+uQMJiAEIuwKb4P+ACBWv/loAwPAvxQX//mgNoA8FAABsEAyIIs6PKSIYGtwSF9vk9iBmFeGZQQDn
+2+Yc3oKAAOsWAizPgoAA+yAARLAb5QD4IIYV4ARaAMAg0Q8uUhsc3AaurnrrAbGILlYb+KNGFaAI
+BQAd3AKKGA2qCgiNCejcABRIBQAALiEHCJkCGNvRDg5KDO4RCO4CnkAY2/qOIPiARhWgSAUAmEMY
+2/cO3REt3G/5xgAMNN0dAOhGBC92AoAADt4CGNvxnkEqoqEuYiUpRhQZ2+8IqgH/zwAPcAgFAA6Y
+OY4SCO4CDqoCDKoCmkeKFigiFYkpqojqmQgEQMEAAOgmFSTIwQAAmSmOFwzuEafuLead+ELQFa+a
+hQAqNAUqIAf/t44F4Pn1APkFZg3irgUADq4dr+8v8n/BnwiZDPngIzJiAJ0AHdvSCI8Q778CDU8C
+gACtmZ+TKWImKGIl+QAdtGAb5QAsIAcMDEEMyBGniCqCnpwYnBf7QCDD4gCdACSCnY0T+iCIFeAZ
+5QDoRAACIBmAAA0Ah+uyqCJ5gQAAnxVtmgIIAmGINyoiF40pjoqGjokqJYIJ7GImJxqhgAAoYiUu
+YiwNmQwMiAwO7gkF7gsKiDYoFgvouwgHccEAAOsWBiXYwQAA6xYALGAEgAD7IBRr4gCdACogFhnb
+lf5A8BXg/fUAfaF5HduilR70IaYVoqUFAAX1HQqkCq1dqVUFRAsV252THKVE5dJ+JRhBAAD6YAQA
+0AMVAAA5GglVASnSfwWZAinWfyVCfwChBOMSDCnQCoAA5BYBIqgFAAAlRn8t0oCEHYUe+6AX2KIA
+nQAd24cM+RENmQgpkgAJqgFkov0qXDjqBgACSKEAAPiCaB3gD1UAL0QgLTIb/IZmHejdHQD8hkYd
+6N0dAPyGJh3o3R0ALUQwKmIk+obmHaiqHQD6hsYdqKodAPqGph2oqh0AKkQ0KSIW+IfmHeiZHQD4
+h8Yd6JkdAPiHph3omR0AKUQ8LWIo/IjmHej9HQD+iMYd6P8dAP6Iph3o/x0A70REJugFAAAtZigq
+YicpYib4hOYdoA8FAP6EJh3o2B0A/ITGHej9HQAvRCX5QABFeN8dAC1EJPqJZh2oqh0A+olGHaiq
+HQD6iSYdqKodACpESC9iJQn/DO+JCnJJYQAALfqALUQhKlIZDwIADwIA8VIADeANBQAtZiAtZiwK
+ijbqRhUi4aEAAAwgiAkEii9iJqr/L2YmKVIZCowMKFIaCpkM6VYZLOUmAADxl5AN4AgFAP7ECBXg
+2AEADvoKjxWKoA/ZCgrKNpqQKWIgDpkL798LBMghAADpRgAH+CEAAA8IiiliIC9iJg6ZCqr/L2Ym
+j5AK/wyfkC9iIA75ComQsYjqzAwEgSmAAA7+C4XjHNsWj+KlpZXjelsBsf+f4v7EyBXv8QIAAAAA
+APHjcA3gCgUAKWIsLuwY6mYgJMgFAAD4xYYV4A8FAIkVKpwY/U0ADPDYAQDpFgUuew4AAP22BAWv
+/vYAwPEvZiD//2gNoA8VAACeGYsQ6BYKKVAEgABYN6qIG4wajhnrEgAlavGAAGP7si9iIA76Coqg
+7v8LAmlhAADkrwNn+CEAAAqKNipGFQ9giA0MiiliICxiJg6ZCqrMLGYmj5AK/wyfkC9iIA79Co3Q
+6owMBoLRgAAO/guP4xza4Yjir696+wGxiJ/j+cBGFaAIBQD+xMgV7+2eAAAAAP/ysA2gBQUAiDhk
+izaJOcAgkjuYkIo4maGSOPJhJhWgAgUA0Q8c2s//+8ANoAgFAMn5LWIs/8MAFaAPBQDvZiAm6AUA
+APzFhhXv+X4AwIH4xAYVr/lWAACNES3dAirRAinRAS3RBQqZAf0/6BrgChUAixjaIOu8EilgBIAA
+WF1+wCDRD4sY2iDrvBgpYASAAFhdecAg0Q8AGdqqCI8KqekJ/wsZ2qip/4kWLfF/Cd0M/boAFeAJ
+BQAJ3TX97+Qd7+4mAABsEAaLJycgB4i68wlgDeF3AQAjsgkFCEdogggpIHQImRApNgD9tVIFoApV
+AO2yAilwBIAA/kAIFeA7BQBZd4P9tUYFoApVAPoGAh3gDUUAWXd/Ftpp9OASmhIAnQAMeRGmmSqS
+nvdAFppSAJ0AJJKdZEKh/bUuBaAKVQD8YBAV4DsFAFl3ciowAMO0DwIA+0ASVGIAnQAqPQYloAHD
+sA8CAP21GAWmVQEA/KBoHeAKVQBZd2bp2k0Z0ASAAPSgESCSAJ0A9KANIRIAnQD0oAzikgCdAMDA
+CQCH6RYAKlgEgAALAmELAmELAmELAmEjIQcoIAce2nr+QQQV6jMBAPgCAAWxiAEA6rsQDEQCgADo
+/wIJnwKAAAszAhjabxvaOw7/AggzApNAjSD+gIYV4DgFAPiAZhWgAwUAk0WTR/qARhXgCUUA7kYG
+IliBAAD9oAAWsA5FAP+mAA6wDiUA7UYBLm4CgAAKIIYLAmMKAIbrDAABUMEAAA7dAu1GCSJZAQAA
+CoCGCwJpCmCGCwJnCkCGCwJlDH8Rpv8p9p30oAqqkgCdABTaT/hBCBWvmnUAKiQF8pEoFe+ZZQD4
+QKYd4AYFAOYmCiQAuYAA+gBCHaA7BQDs2i8ZaASAAFl3HCsiHihCdiQiAOhEDAgECoAA82AEH9IA
+nQArIgcpsgrkkO1l0IEAACuyCS2yAfQgCBXn3QEA+6BoHeAMBQBYVz7lAAUBSIEAAAkCYQkCYQkC
+YQkCYQkCYQkCYY8n/+QAFa/IBQAI7gHm9goncQEAAO72CSpYBIAA/+EGFaAMBQD6YYgVoA0VAFhW
+1sAg0Q8AAPxGUBWv+ZoAKiIZKyIY/m4IFagAPQAKuhgKCk8Kqg//QAEFMAwFAPtACBWgDRUAWFbI
+Y/9TAAAA//W0DaADBQAV2dmKWPdABHiSAJ0ADHkRppkrkp73YAT6UgCdACSSnWRAlrCr+qEGFe/2
+bgAAAAD6YIAlr/bmAPwQQh2v97oA//xYDaALBQD9s/gFoApVAPoGAh3gDQUAWXbR6iIKKVgEgABb
+/S9j/o2JJ4yay8+DmY0iZNBR/GAIFeAKVQD9s94FoDsFAFl2xsAg0Q8AAAD/9MANoAQFAMCgWXcg
+ilj5X/tQkgCdAP/0ZA2gBAUAAP/+9A2gAwUAwEDA6g6uNP6hBhWv9AYAANog79ndGWAEgADvNgAj
+2GEAAFhci2P/lWwQBoknIyAHKJIKAwNB55IJJA7xgAAFCEfogg1p0ASAACkgdAiZECl2ABnZkAw7
+EfRgDiISAJ0Aqbsssp73gBI6UgCdACuyneS0AAWPoYAAFtmDmhAT2YnmAAUKWASAAAsCYQsCYQsC
+YQsCYS0gByghBxvZtvlAAAQwzREA6swQDEcCgAAMiAILiAKYQI4gw1D0gGYV4A9FAONGAi9mAoAA
+D8wCnEErIDP0Q8gV4AMFAPxgaB2giJUAC4w58qAM35APJQAY2aMuIQiTReNGBy4uAoAA/qYACvHd
+AQDoRgYu7AKAAA3uAvnGAA8wC0UA7kYEImiBAAAHIIYNAmMHAIYNAmGVSRXZkwyuEanu+9OmFe+d
+dQAtJAWOKPSxKBWvmGUAKCQF4yYKJwC5gAD6AEIdoDsFAOzZcxloBIAAWXZgKCIeKVJ2hSDpVQwE
+fdKAAIkni5rksOBk0IEAACuSCS2yAQ0NR/ugaB3gDAUAWFaG5gAFAUiBAAAJAmEJAmEJAmEJAmEJ
+AmEJAmGPJ//kABWvyAUACO4B4/YKJ3EBAADu9gkq2ASAAP/hBhWgDAUA+oGIFaANFQBYVh7AINEP
+AAAqIhkrIhj+jggVqAA9AAq6GAoKTwqqD/9AAQUwDAUA+0AIFaANFQBYVhJj/2IAAAD/+IgNoAcF
+ABTZI4xI4xYAKAQKgAD3gAQ4kgCdAAyrEam7LbKe96AEwlIAnQArsp1ksI+wzZ1I5LQADfEuAABg
+AA0AAAAAAAD//IwNoAsFANog7tlIGWAEgADudgAh2GEAAFhb9cAg0Q8AAI0q/bKEBaA7BQD9oAgV
+4ApVAFl2FBnY/4oQ/EDwFeAPJQD8EaIdr/kOAAAAAP/28A2gCwUAwKBZdmqMSIoQ6dj0GAQKgAD5
+n/tAkgCdAP/96A2gCwUAwLDA6g7ONP6BBhWv/a4AbBAIiCcjIAeJigMDQeeCCSSPOYAABQhHaIIH
+KSB0CJkQmXAqIDMV2OHyIKYV4AwFAPNAPA3gCwUAnBL6IIYV4ARFAPRgDcoSAJ0ADDkRpZkukp71
+wBgLogCdACiSnegWAyxQBIAA5tjNFBARgAD2AAgdoAMFAG1JAggCYSsgM2WyDSwhBy0gBxjZAvhB
+BBXqzAEA/CAABfDdEQDq3RAOZwKAAO3MAg3cAoAAC5kCHdj3CJkCG9jCDcwCnKCOIJimk6WTp/tA
+RhXgPwUAn6P5QIYV4A9FAOkSBC92AoAAD+4C7qYBJWCBAAAHIIYMAmMHAIYMAmEX2Of9IAAUsAsl
+AAuZApmpiBXtIggsRwKAAKWI9ROmFa+fdQAvJAX08SgVr55lAC4kBeMmCiaAuYAA+gBCHaA7BQDs
+2MMZaASAAFl1sCoiHihydoUgDwIADwIA6FUMBX3SgACIJ4mK6IIJJFCBAABkkMgtggENDUf7oGgd
+4AwFAFhV1OYABQFAgQAACAJhCAJhCAJhCAJhCAJhCAJhjyf/5AAVr8gFAAjuAeP2CidxAQAA7vYJ
+KtgEgAD/4QYVoAwFAPqBiBWgDRUAWFVswCDRDwAAKiIZKyIY/o4IFagAPQAKuhgKCk8Kqg//QAEF
+MAwFAPtACBWgDRUAWFVgY/9iAAAA//hkDaAHBQAW2HGKaPdACriSAJ0AiRUMmRGlmSuSnvVgCyui
+AJ0AKJKdZIFcsKv6wQYV7/jOAAD//MwNoAgFACggNSkgNiQgN+iZEQxEAoAACYgC+IYACjCIlQDk
+FgIiIZ0AAPgghhWkRB0A9ICAFa/3bgCIJ4qKZKEEh4naIOvYjRlgBIAA63YAIdhhAABYWzjAINEP
+AAAa2EuIEhnYhi0hCI4nKyEHLCAHju7+IAYVqrsBAPwgAAcwzBEA7LsRDmKCgADsuwIPdAKAAA7d
+AhzYcY4TCd0CDLsCm+CMIOPmBSR5IQAAn+Pq5gIkWZ0AAP3AhhXkux0A6xYBLmYCgAAMuwKb4QcE
+iQ4gi/nAxhXgugUAmucvIAz5BgAVoDwFAOjmBy/8AoAA790CAVjBAADt5gQnUKEAAFlxbIoTixDs
+EgIlUWEAAFlxaIsRihMMuxH7QABFf/TSAAAAAAAAAP/0CA2gCAUAwKBZdYaKaPlf9RCSAJ0A//Os
+DaAIBQAA//vkDaAHBQDAgMDKDKw0/MEGFa/zTgAAbBAEGthIKSIYGNhHCpkBKSYYLjIJ/wAWIKIA
+nQAuIhMtMQsqIhQb2EEO3QgK2gztJhMlYQMAAHyzBR/YPXr7EvpAaB2gCwUA/AACHaANJQBYAgcr
+IhIkCgDTD/NvkA3gPhUALbAwDQ1FftEvL7BIKLBJLCIW6bBKL/4CgAAI/wLosEsv/gKAAAn/Agj/
+EQj/Auz5B3ZABQAAKCYWKQoh+aAP7GAqJQD7oBCsICxVAP2gC0wiAJ0AftEXKgoC/bA6BaA7BQBZ
+dOr0QkYVoAIFANEPLbAxLrA0irrxoAmWEgCdAC+wNeiwNi92AoAADwIAD+4C77A3L3YCgAAI7gII
+7hEP7gJl4QgssFwtsF3usF4uZgKAAA3MAu2wXy5mAoAADswCCMwRDcwCZMDjLaIQLdIZ/aAG06IA
+nQD9YOgVr52VAC20BR3XsYzO/AAIHeCZBQAJyQgJAmEJAmEvsFwosF3psF4v/gKAAAj/AuiwXy/+
+AoAACf8CCP8RCP8CL8YlLrBYL7BZ6LBaL3YCgAAP7gLvsFsvdgKAAAjuAuiiDy92AoAAD+4CLsYn
+LbBELrBFGdfi77BGLu4CgAAO3QIusEfkxigu7gKAAA/dAuTGJi7uAoAADt0CLcYk6bYLJfCBAADu
+hgAleOEAAC+2CPlhJhWgDSUA/0HmFaAMBQBb+5v0QkYVoAIFANEPAAAAAAAA9EJGFaACBQDRDwAA
+KLAxf4ftLLBML7BNKiIQ7rBOLmYCgAAPzALtsE8uZgKAAA7MAumiFC5mAoAADcwCLaIVfJECLKYU
+LLBQLrBRDwIA77BSLmYCgAAOzALusFMuZgKAAA/MAgjMEQ7MAnzRAiymFftgaB2gDAUA/ABCHeAL
+BQBb/cf0QkYVoAIFANEPAAAA+2BoHaAMBQD8AEId4AsFAFv+b/RCRhWgAgUA0Q8AAAD7YGgdoAwF
+APwAQh3gCwUAW/zU9EJGFaACBQDRDy8iEY/3j/4s8BAp8BEd15To8BIuZgKAAAnMAu/wEy5mAoAA
+CMwCCMwRD8wCfNATDHtY/XAAFbWsAQD7RgANcAAeAADGqh/XZR3Xhi/yKC3Shqr/Cf8Rr90t3f4s
+0n7AogrMAizWfhzXgPxACBXgOwUAWXRIY/zIAAAAAOsxCylQBIAAWLg/9EJGFaACBQDRDwAAAGwQ
+BC4gBSgKdP8ACtuiAJ0AKyIYHtdx82AMA1A09QCNLIk2KjAgH9dt/GFEFaCItQD9IAp9ZaoBAP9m
+AA3/+cUA6yYYJmNtAAD5gAQGd/sBAPngBhwiAJ0ArNiYLPVAB74QKTUA+UAHfGArZQD7QAc8YCxF
+AP1ABvwgPSUA/UAGvGIAnQD1QAZ8IgCdACswMCwwMR/XTu0wMi3eAoAADLsC7DAzLd4CgAANuwII
+uxH9ZgANv+mlAPvioB3oq7kA/VAAFTWbAQD7JgAMsAAWAAAb1x4a1z8rsigqooapuQmZEampK5yA
+6yYSJMrBAAAqPCAKQIYJAmUKIIYJAmMKAIYJAmEsIhgOzAL8QwYVoAIFANEPAAAAAAD+AGId44vh
+APn/+a4iAJ0AKzAkLzAl6DAmLd4CgAAPuwLvMCct3gKAAAi7Agi7Ee+7AgZIEQAA+y0ADn/8GgAA
+KSIRiZf5IcgV7/42AAAAAP2uPAWgClUA/EAIFeA7BQBZc+EqIAUrCnh7oRL6QigVoAsFAPwAAh2g
+DSUAWLWhwCDRDykiEsmYiZf5IcgV4AtlACo8IG25BQpghgkCZ8Ag0Q8pIhGJlysxC4mev7sLS0vl
+v91kyMEAAGP/wmwQBBvXAyoxDNMPK7J/HNcB+GIQFeAUZQD7Q/YN4AUFAHyhF+okAArYBIAA7DQA
+CmgEgABYtcjAINEPAGiRQWiSIWiUCcBA//9kDaAFBQB8odF7q87aMFi19tWg//8QDaAEBQD9QOYN
+oBRlAHujAmAAAcBA2jBYtgL//pwNoAUFANowWLYT5aQABQERgAD9rcQFoApVAPxgKBXgOwUAWXOj
+//38DaAEBQAAAAD//dANoATFAGwQBCkwE/EmcA3g9YUAaJEDwCDRD4QnDwIAhE4c1tP8YjAV4ogF
+AAhICC2E3/5iUBWgClUA/xwGHaA7BQBZc478YjAVpHpFAOpKCAHYYQAAWW/CpTv8YlAVpVpFAKpK
+WW+/6iQAClgEgABYtlbAINEPhCcPAgAPAgAkQg4c1rwtMBEtRAL+YlAVoApVAP6AZh2gOwUAWXN4
+/GIwFaHKhQDqSggB2GEAAFlvrKU7/GJQFaKqhQCqSllvqcAg0Q8AAGwQBIg3FtaqiI70wBAV4okF
+APkAAEHwB3UA9npGHeAENQD0emYdoAcFACc01PZ6ph3g8vUA4lEPcsgFAAAnNNYlNNcpZADRD/zA
+MBWgCxUAKzTX/HrGHaAKJQDqZAAmYAUAACxkAdEPbBAEjzj9rSIFoApVAPxiEBXgOwUA/+BoHaH/
+8QBZc0wpMBD1IASokgCdAGiSA8Ag0Q8S1oeDNiIifwkzEaMiiiqLLYqoj7ctohj94QgVoI7FAA7d
+Ai2mGIj6jvvz5AAV78kFAOkzAQZowQAA4+4IBEDBAADo9goncQEAAH3jeP+gBDQiAJ0AnfgY1hjo
+AAUOSASAAAkCYQkCYQkCYfOABhWgCQUA+YJEHeANJQDpxREs4ASAAFi1scAg0Q/aMFi2v/9WkA3g
+DXUAi6eLviyyjgyeVn7QGfwAYh3o7LkAftAO+2BAJeAMBQBYtonAINEPWLXqwCDRDwAM6AwIOAwo
+jHD54QYVr/4SACk8QPnhBhXv/eYAbBAEiC4jLDhzgQOJIsiUwCDRDwAAiy6Is+xEAAroBIAA67zg
+KVAEgAALgACMLnPB3Y0iZN/eY//VAAAAbBAEKiIUKSIT/avQBec1AQDqmQwBlB0AAGSQkCwgBwwM
+QQzKEa2qK6Ke92AFEVIAnQAqop3rpAAFBQGAABXV1xTV7R/WMAUAhwoCYQoCYS4hBxjV1/UmAAo6
+7gEA6tXXH3cCgAAI7gKesP5ACBWgGAUAmLOaspS1/8YAD/AEJQDvtgQvdgKAAATuAp6x5QIVBdBh
+AAAKAIoMyBGtiCSGnS8iFKn/7yYUIZR1AACKJ/oAIh3gDAUA+0QAFaANFQBYUwLSoNEPwCDRDwAA
+AAAAAP/9hA2gCgUAAIsiyLVoMhTAINEPK8wY6iQACWAEgABYWJ5pMuqMJ47Kisn9hAAV788FAO/d
+AQdwQQAA7sYKJVPBAADqxgkm6QEAAH2rKYjLqoqayRzVqZygiyD5q+4F4AwVAOmmAi3eAoAADLsC
++0AmFeACBQDRDxzVoJygiyD5q9wF4AwVAOmmAi3eAoAADLsC+0AmFeACBQDRD2wQBBzV5y0yBv5h
+ZBWgClUA/mPwFeA7BQBZcp4sMQskIhGILBrV4IVHrIiYLIlMwLD0ocgV4A0FAOqeAgSQRoAAnkz8
+g2YV4AAqAAAAACtCG+taCAHYgQAAWW7HLkIbLTELrt0tRhsqUAQrUAXpUAYtVgKAAAuqAuhQBy0u
+AoAACVUC7NXJGq4CgAAIVQL0oGAV7/jFAPigBAKwOwUA/qBoHaAKVQBZcnspIhMoMQsrQhupiOgm
+EyL4wQAAf7EJwCDRDwAAAAAAABzVuIpMDKoB6kYMKVAEgABYtmr6QGgdoAsFAPwAAh2gDSUAW/9p
+wCDRDwBsEAiIIicgBykiFJkT8RL8DeF3AQAa1alkkQEW1UwqoIAMeBHmiAgFUN0AAPkTyBXkqh0A
+qkrr1UsVUAkAAPsgCfOgDKUAKIKd6BYEJAnZgACNuPegCjiSAJ0ALmKu8c9wDeAJBQAqYq3koO5m
++/0AAO+2CCUHiYAAKyAUpLsLC0crJBT1YAleUgCdAIs5iRT4YgAVp8UBAPmACpFWux0A/IHgANAF
+BQCwSm2pBQgAhgkCYYkTGtWCiZDoEgQiY/0AAOqZAgzuAoAADc0C/QAmFeAKBQBtuQfphgYkQQEA
+AIgU6zIBLk8CgACpiJgV6TICLYwyAACaEPNgDThSAJ0AixDrSwgL5wKAAObMCAXb/QAA68adKpAE
+gADRDwAFDEdowhiKJ/qAaB3gDAUA6qwgKmgEgABYUkzSoNEPwCDRD+okAAnYBIAA7EQACugEgABY
+V5fSoNEPAADAoAzeNO62CC14vgAAjyJl/9TaIPxAaB2gG8UAWFfkY//EAAAAAAD/+xQNoAgFAIgi
+ZY+yK3wY6iQACWAEgABYV9tj/6HAoFlyXhvU8I24+b/1eJAMpQBj/7ItIQn+QrAVr/8FAA+/AQ+4
+DCgkFO+kAy9xAoAA6aQALu4CgAD/pgAOsAwVAAzdAp2h/NWmFa/6kgAAAI4nnhGF6fnBSBWvyQUA
+7OILJ2iBAAAJ2QGZEunJCApXAoAA6ogMAqhBAACV6ejmCiTJAQAA+KAIYuIAnQBoq0GlrCzM8P0g
+BNuiAJ0A7xIEIgyFAACwTm3pBQUAhg8CYYzRDwIADwIArKzo0gImY8EAAPmABuRiAJ0A7NYBLigE
+gABljj9gAKAAAOsSBSzgBIAA7BYGKVAEgABb4wOJFogVizHqFgAtbwKAAK2I8X/zCFIAnQDaIOyU
+AAxYBIAAW+LSjhDurggKkASAAO5OCAv/AoAA5v8IB3P9AAAu9p3RDwAAAAWZDPwgiBWk+R0AbfkF
+BSCGDAJjjBIPRQyPFCzMQOn/CAKMPQAAsFhtiQUMQIYPAmWFEozSCagMqFUlXDDl1gEubQYAAIkS
+wKDq1gIkyQEAAPmgJhXgBQUA+aAGFe/2EgCOEQxVDPXBJhXv+74AhRIlXED1oCYV7/yeAAAAAGwQ
+BB3UpRrU2w8CAC3SHSyixyqhcKPd6joMDu5CgAD9gABGcAsFACvEBCvEBVjxPfpAaB2gCwUAW/Bq
+0Q8AAABsEBYrIAcjFhrlFhcqSASAAPghJhXgChUAmh8V1McmEhr8IugV4bsBACsWFodl+MCIFaP+
+9QD6uAQVp90BAPbB5BWgd/kA+AoAAbDIWQD8I2YVrEgdAPqPAA0wtnkA+iJmFe+qAQDqFhQkVEqA
+AAYLSfohxhXgACYAAAAAnh4uEhotFhUv4T0o4B0oFAAvFhIu4h8uFhD1oDshEgCdAIki+yBCYJIA
+nQDw5WAN4AwFAOwWESOASYAA2kBY2sX0AAId4AYFAC4SG9pw/ABiHeAMJQDu3DkJ2ASAAFjas/dA
+AEMwD/UAdvBV9CEGFaSGHQDjFgckQAUAAPgjBhWgAT4AAAApEhJkl3cqEhqKpX2mn/wiCBWgCxUA
+6xYRKlAEgADrEhIo6ASAAFja2manqfwAYh2gBQUACsU6ZFeTw2CUGPIg5hXk1h0ALRYYLxIWHtQh
+E9Qa6RIYL6AEgAD14AhyEA2lAAz2EaNmKGKe+QBDA+IAnQAmYp3bYOa0AAW+QYAAj+ibFffgPniS
+AJ0AKDKu0w/qEgkkPJGAACsyreS3iWfL/QAA6eYIJbxhgAApIBTTDw8CAKqZCQlHKSQU9SA9ZlIA
+nQArEhsuEhTxYMAN4A01AP+gQAiiAJ0AZFDFjxcPAgDI8WRQY+tkAAlQBIAA/ABiHaAdhQBY2tDu
+Eg4teASAAOYSCCKvWYAAKBIT+6faBeAMBQCc8pzznPSc9etrAg9UAoAA6/YALECCgAAKiALs1EIa
+zsKAAPkGAAxwClUA+eAmFaAbxQBZcPEtEhX5oDqpUgCdAMAg7hIYKn8CgACj/y72ndEPAAAAAAAA
+j+j34DtgkgCdAOkSGCo3AoAAo2YoYp75ADu74gCdACtinea0AAW7oYAAsPiY6PrAaB3v+2YAKhIR
+ZKB66xIFKVAEgAD8AGIdoB2FAFjaoCsQABbUHh/UH44YJmL6GdQe/8YAD3H7HQDmtgsP+wKAAOn/
+AgX8pIAALBIQ7RISI1v/AAAosj8rsX2eoJ+hnaKco5uk+UCmFaAAdgAAACwSEC0SEithBYhjnqCf
+oZuimKOdpJylJqwYLRITjB4C3RDtFgouZAKAAOwWCyum/gAAGtOh+CEIFaAPBQD+IMYV4A8lAJ8d
+CogCKBYM62QACVAEgAD8AGIdoB2FAFjadI0cLxIaiRYrEhqP9fE1YA3j/vUAHNPyi7T/QEYVoI+Z
+AP1ABhXgb4kA/UAmFaDfoQDw0AATMM+RAO7T6h7pQoAA7qYDLEECgAD9BgAMebsBAOumBC5gwoAA
+DGYCCGYClqWMHemcASUwYQAA6RYGJmP9AADsFg0ue7YAAOtkAAlQBIAA/ABiHaAdhQBY2lEW09WJ
+Go8b+iGIFeANBQCdEZ0SnROdFJ2k/UCmFe/+9QCeop6jm6AuEhrp/wIKxsKAAOj/AgDgMQAA5v8C
+ANghAADtHBAlMGEAAO+mASDQEQAAWNkqwMHqyjkNKASAANmg6hYeIqHZgAAkFh/+ACIdoA0FAAnt
+OOUWICbrUYAAE9O3iBuMGhrTtisSG4QYFdOv8XgAFLAOFQDr6zkKJ4KAAPSGAAp2DwUAC685/SYA
+DLANNQD5JgAMMAwlAAvcOSwWHQn5AikWGfnmAA+wBQUA/iOGFeADIgAPVlD+GAAF8M/JAPwhiBXg
+j7EA/UAGFeDveQDs7hEMRAKAAOvMEA3agoAA7LsCCzPCgAD4xgALMM+BAP2IABYxj2kA7O4CDEUC
+gAAI7gIc04mcoSgQAAbuAvvGAA9wb7kA9MgAEzu/AQD3xgAPMAYlAObuAg3dAoAA7qYELEICgAAL
+iAKYpRvTgZuiGNOB+UBmFa/5pgAAAAAAAAAAmaGUoJ6inqOepJ6lnaadp52onakvEh3lXAElMKEA
+AP6gEZxiAJ0A62QACVAEgAD8AIIdoC2FAFjZ5eRQUWrOwoAA9KAKYJIAnQArEhzH7/smAAzwDQUA
+45kCC/0uAACNEywSGo4SjxGLzCzCEJmhm6n1QAYVoAgFAJiimKafo56knaecpYwU/UEGFa/+JgAt
+EhssEhkb01gMmQLrmQIGhBmAAPDiQA3v/vUAmaGUoJ6inqOepP9AphWgDQUAnaadp52o/UEmFe/9
+NgAvEhoiFiEr8hYm8Tgi8Tos8hXo8TkrNAKAAAYiAibxOy3yG+7yGixEAoAACGYCKPIXL/IZn6Ke
+o52knKabp5iolqWZoZSgkqnyJCgVr/v2AAAAAAAAAADw4kAN7/v1AJmhlKCbopujm6T7QKYV4AgF
+AJimmKeYqPlBJhWv+zoALBIajRIvwTsmwTkowTguwTrrwhgrNAKAAOb/AgxEAoAACO4CJsIUiMws
+whCbpJinlqiZoZ2ilKCco5+lnqmMFP1AxhWv+hoAKxIb7BIZJYNRgAAb0xbH7/0mAAywDQUA65kC
+A4DxgACZoZSgnqKeo56knqWdpp2nnaj9QSYV7/kyAC4SGiIWIS3iEiziEyviGIjthu4v4hSC7y7i
+EZ6inaOcpJulmKaWp5+pmaGUoJKo8iQoFa/4VgArEhzH3/smAAzwDAUA45kCA4DxgACZoZSgnaKd
+o52knaWcppynnKj9QSYVr/eaAJmhlKCOE/4gKBXgCAUAmKKYo5ikmKaYp5ion6X/QSYVr/cKACoS
+GhnS6IqlE9J8JRIg5BIfJUwwgADj0ngThVmAABzS4osYDLsC+z9GFe/nwgCFH8DS960ACv/oRgDA
+pf2luAWgG8UA7k4RCmgEgABZb39j+IcAAPoiiBWgDgUAnhGeEp4TnhRY2C3IqfoiiBWgCwUAWNgi
+wKBZRRskFh/lFiAlYaGAAB/SvC/wFCQWH+UWIC/hHgAA+6WMBaFLFQBZY48s6v8MrAH7pYQFoUsV
+AFlmoyQWH/QkBhXv7/IALRIQZdiBY/gmH9KYjhgP7gL/P0YVr+UmAMCgWUUDyKkY0qbTDyiAFGSA
+XCoSFFjYDOkSHi1dbgAA+iKIFaALFQBY1//4I8gV7+5qAAAAAAD/38QNoDYFAOsSEipQBIAA7BIQ
+KOgEgABY2Mlj+D8AACsSGowZ7RIXKVAEgABYVMjSoNEPAAAAAPulNgWhSxUAWWNjLBoADKwC+6Us
+BaFLFQBZZndj/4MAwLAN+DTo5ggtw+YAANog/EBoHaAbxQBYUM1j/6orEhbaIOu8GClgBIAAWFDI
+Y/+XwKBZb4we0h2P6Pn/wTiQDaUAY//HjB8tIQn+QrAVr/8FAA+fAQ+YDOgkFC9xAoAA/2BmHeAI
+BQDotAAu7gKAAA7dAgzdAp2x/HWmFa/ghgCKJ40ZwMDqrCAu2ASAAFhPSNKg6xIYKmcCgACjzCvG
+ndEPAAAAAAAA/96MDaAGBQD/4AgNoAVFAMCgWW9qHtH7j+j5/8RQkA2lAP/imA2gBgUAAAAAAAAA
+/+IwDaALBQAN+DT5wQYVr+I2AAAAAAAAbBAGKCAFLSAHwZQPAgD5AA61Yd0BACkiAmWRky4wARbR
+4f/BQAbQDKUALyBOZfJX7tHjHsgEgAD1oAnSEgCdAAzaEaaqKKKenRD3ABGU0gCdACqineekAAUN
+AYAAi+iZEfdgDTCSAJ0ALWKuZNFYKmKt5KFUZfv9AADv5gglCrmAACsgFKS7CwtHKyQU9WAMvdAN
+BQAY0cUf0eSOIP3lxhXgC0UA6O4CD1YCgAALqgIb0iwu9jTq9i0r6ASAAOsPHg3QBIAADQJnC0CG
+DQJlCyCGDQJjCwCG7QwAA9kBAAAK4IYd0iALAm8KwIYLAm0KoIYLAmsKgIYLAmkqIQkvIAcuMAEo
+MQErIST+IAAHMP8RAOr/EA90AoAAD+4CDrsCH9ISLiEiDbsCK3YgD+4CjSAqdiP45IYVoJqFAKp6
+GNILLnYi/aAAFrAOJQAO3QItdiGLMyt2JQgAiQoAigyaEaaq/VOmFaeFAQD5AAeZUgCdAMAg0Q+L
+6J0R92AI0JIAnQAMmhGmqi+invfgCYTSAJ0AKqKdZKEnsL+f6OekAA117gAA/CAGFeABRgAAAAAA
+6iQACdgEgADsRAAK6ASAAFhUEdKg0Q8AwKAMuDTo5ggtdY4AANog/EBoHaAbxQBYVGBj/8oAAADq
+JAAK2ASAAFhVntKg0Q8AAIsQ2iDrvBgpYASAAFhUVmP/pMCgWW7ZHtFri+iJEfl/8nCQDKUAY/+y
+AAAAAAAA+EKwFa/+BQAOvgEOvwwvJBQvIQntpAAsQQKAAO6kAy/+AoAA+eYAD7AOFQAO/wKfof7V
+phWv+OIAiifrRAAKaASAAPtEABWgDAUAWE6T0qDRDwAAAAAAAP/3RA2gCgUAwLgLmwL6QEYV7/x+
+AAAAAPwgBhXgCgUAWW60HtFGi+iNEIkR+X/2kJAMpQD/+5ANoAoFAAAAwKAMvzT/wQYV7/tWAABs
+EAgpIAUmIAfnNAAJwASAAPoCgh2gAzUA+yAOvSFmAQAFCUfl0S0UlFEAAIwi5GQABgORgADAINEP
+AAAtIh1l0cmJJwxNEZ0TiJr/IWgV784FAOuSCCTggQAADs4BnhKr2q7/rYjolgon+QEAAPvgDVOi
+AJ0AyXLJQAu5Am1JBQcAhgkCYY0TisCtqv9AEeRiAJ0AmsD5YGgdr/5KAAAAAAAAAOxqEQMkoQAA
+BaoILqKe98AKcdIAnQAqop3Prtog7CQAA1hhAABYU/LAINEPF9EIiXiYFPcgD/CSAJ0ADEoRpaor
+op73YBA50gCdACqineSh/mTb/QAAm3hkr78Z0QuZoI4g/aLOBeAPFQDvpgIvdgKAAAPuAp6hjoMt
+0n8b0PL9or4FqO4dAK7d7aYDJUhBAAD8AAoVoAgFALGI6YMeDA/oAACbpvmirgWgGQUAmaeYqI8g
+CP8RA/8Cn6nv0OUadwKAAKXuI+adiyIsIAb4QOgV4A0VAA27AusmAiZgBQAA7CQGJMiBAACIkYyS
+/aKOBe/LBQDrmwEEQ0EAAOiWASZgwQAA7JYCJdkBAAB7iyCMk6jImJGfgI4g7YYCL3YCgAAD7gL/
+ACYVoAIFANEPAAAf0MifgI4gHdE07YYCL3YCgAAD7gL/ACYVoAIFANEPAOokAArYBIAAWFTo0qDR
+DwD/+tQNoAoFAPqwyBXgGpUA+iAmFaACBgDr+gwDgbmAAApOFO3sCCvABIAA7U02DcgEgADTD23Z
+BQgAhgkCYYkSqnjuTwwEyQEAAG35BQgghgkCY44TjRIK7gyu3S3cQP2ABhXv+L4AAChShC+ACCmA
+B/ggBhXgqiUAevEuGNC3iIDAoAuAAIoQiREKmQzpFgEk7WmAACtSgn+3CSxSgn/PxmP9mQBZaBxj
+/+8vgQsv/PgPD0Pv/Pwk8/0AAA/pOPggBhXv/uYAAIgSKIxA+YAGFa/3BgDAoFlt84l4iBT5P+/I
+kgCdAP/4OA2gCgUAwKDAugubNPrhBhXv9/4AAAAAbBAIiCeJIvxA8BWvxgUA6oILKl8CgADrOwgE
+QIEAAAaIAflAAEQwDzUA6IxALegEgAD5YCCSocwBAC7QB+3QZR6oBIAADMsR6uwDJzv5AADtuwgE
+gEGAAMAg0Q8osp6aEe7QYhdIGQAA+QAfG+IAnQApsp0sFgDmlAAEnvmAACniCPcgHzCSAJ0ALNKu
+ZMOVKtKt5KORZMP9AADo5gglHLGAACwgFCtQB6y7CwtHKyQU9WAendAOFQAZ0H4e0LyLEIogiDTs
+0Ecd3wKAAO27CA1WAoAA8QAE+l/NBQAtIAcjUQH/RgAMcN0RAO0hJC7SgoAACaoCmGGaYBrQMvzA
+RhWgGIUA+MBmFaAIJQDqAAUDUEEAAG2KAgoCYSwhCfpA8BWgCAUA+MCmFaA/pQDjZgkuZQKAAP+G
+AA5xqgEA7GYGLVQCgAAK2gIOqgKaZCghCfpAaB2gDAUA/qAkFaAJNQDptp0sXQKAAP9mAA3wDQUA
+WFQ5wCDRD48nsX4OrgKJ++kWAif4gQAADf0BnRWtme1cICTJAQAAedMEiBII3QyJ0Pj4AATwiBUA
+eJkanmHp0IATw/0AAPjABhXhiB0A+MBGFaAATgAAnmEZ0HqZYIjRCFgUmGIY0HiJNh3QePkQCBWi
+mR0ADZkBjfGpiJhjiPPvEgUicAkAAAzuEa7dr4/oFgMn+QEAAH/TAgjdDKdIsogMiBHuiAwL9wKA
+AO3pCAQCIYAAKGwQmBT54A8S4gCdAA3/DPkAaB3krx0AbakFDQCGCQJhiRUKfQym+OqMECTJAQAA
+bdkFCSCGCgJjiiDTDwiqERjQUq5p/6CuBaAPFQD/IMYV4A1FAA2qApiUGNBOmpWKUyiCfhbQTf+g
+iAXoqh0Aqojolgck6IEAAP4AChXgCgUAsartgx4ND+gAAP0hRhWgKgUAmpuPNIhTijUG/wH3oIAF
+p4gBAO6qAQxCQoAACP8CBv8Cn5woUAktUAsvUAomUAju0Dke6QKAAOb/EAxDAoAA+wYADDCmMQDt
+/wINUcKAAAr/Agj/Aoo2GNAwn53+YUgV5dYdAO6qAQ7oQoAADaoC+yHGFaRmAQDo/wELMgKAAAb/
+AohVmJ+GViaWEI5XLpYRL5YSjVQtlhMqUAH/n7AF4BiFAO5RASgECoAA8UAED9IAnQAqIAcKKkDt
+ISQtUoKAAA+qAiqWFI8gKJYX/eAAF7AINQAI/wIYz40slhbvlhUk0YEAAPgACB2gDyUAbfoCCgJh
+LyEJLCAH++AAF7AYpQAI/wIvlhr/n/YF4cwBAADMEQzcAg/MAv4gKBXgCgUAKpYZLpYd7JYYJ/gN
+AACfEY4RLradLVAHiif1oABGsAwFAOvUAAVQgQAAWEy70qDRDwAAAAAAAADphAAD8omAANMPbXkF
+DUCGCQJlY/43wKDAigiYNOjmCC1jlgAA2iD8QGgdoBvFAFhSVMAg0Q8AAPtvAA6/77oAwJD8IAYV
+r/CGACvMGOokAAlgBIAAWFJKwCDRD8CgWWzNHs9eiegdz1f5P+BokA81AGP/sAAAAAD4QrAVr/kF
+AAm5AQm8DCwkFCwhCQSIEPlAZh3gCQUA6aQALmYCgAAIzAIOzAKcof+1phWv7/oAAGwQBikgBSYg
+B9gw9gBiHeAaRQD7IA4NIWYBAAUJR/0iwAFfxQUAiiITzzvkZAAFA4mAAMAg0Q8AiCeOio2L64II
+JGCBAAAFyQHpFgEqfwKAAKv6qd2v7u6GCibpAQAAnRD7oA3bogCdAO0SACGA2YAA6bQAAgCZgABt
+SQUDAIYJAmEqwgAPqgj9QA8MYgCdAJrA+WBoHa/+QgAAAAAAAADsahEDJKEAAAOqCC6invfACbHS
+AJ0AKqKdz67aIOwkAANYYQAAWFICwCDRDxvPGIm4mBL3IAjIkgCdAAxKEaOqLKKe94AJKdIAnQAq
+op3koRxk4/0AAJy4ZK+/Gc8bmaCPIP+e7gWgCxUA66YCL/4CgAAH/wKfoY+DLuJ/HM8C/Z7eBej/
+HQCv7u6mAyVIQQAA/AAKFeAIBQCxiOmDHgwP6AAAnKYYz2f5QQYVoBkFAJmnjyAI/xEH/wKfqQxO
+EaPuJ+adjSIsIAaJJwvdAu0mAiZgBQAA7CQGJMiBAACIkY2SH87r5ZwBBENBAADolgEm6MEAAO2W
+AiZhAQAAfIsajZOo2JiRn4COIMAg4oYCL3YCgAAH7gKegdEPH87dn4COIMAg4oYCL3YCgAAH7gKe
+gdEPAAAAAADqJAAK2ASAAFhS/tKg0Q8A//s0DaAKBQDAoFlsPBvOzYm4iBL5P/bYkgCdAP/7wA2g
+CgUAwKDAygycNP1hBhWv+4YAAAAAAADr2gwBgbmAAApOFO3sCCnABIAA7U02DcgEgADTD23ZBQgA
+hgkCYYkRqjjuTQwEyQEAAG3ZBQgghgkCY40RCv4Mrt0t3ED9gAYV7/imAI8RL/xA/4AGFe/4cgAA
+AGwQBBXOpxbOxfCIABOwCUUA5M8QGcYCgAAJiAIoZi0FNQLnZi4qGASAAOVmNCkwBIAAA2CGBgJn
+A0CGBgJlAyCGBgJjAwCG5gwAARkBAAD1yGgdoIoFAKoiAwJvBMCGAwJtBKCGAwJrBICGAwJp0Q8A
+AAAAbBAGIyAHFM6HAwNBDDkRpJkokp79CCBB0AU1ACuSncu2H88AGM8A+kAIFaAJBQD4IAYV4AwF
+APggRhXgDVUA+CAmFaAe5QBYTyYMOhGkqvVTphXgAgUA0Q/aIOs8GClgBIAAWFFfxyTRDwAAbBAG
+KCBwwGTlzmwUdbSAACQgBwQEQQxJEaWZKpKe4yIALSFsAAAqkp1koFDbMFjqVcDB/AACHeAOFQD5
+nR4FoAkFAPggJhXgDwUA6RYCLVgEgADoFgAp0ASAAFhPBgxMEaXMJsadKiBwKwr7C6oB+k4GHaAC
+BQDRD8Ag0Q/aIOtMGClgBIAAWFE7xyTRDwAAbBAEJCAHE87JFc5HBARB4zJ/Kk8CgAAFmQgokp4P
+AgDkMwgMETgAACqSnWSgQwM7AvwAAh2gDSUA/gBCHaAfBQBZbV/9nXYFoA4VAOymACnuAoAADt0C
+naGLIJuiDEkR9SAARPAIJQD5M6YVoAIFANEP2iDrTBgpYASAAFhRGcck0Q8AbBAWLjAQ95xOBeAf
+RQDzwfAN4AYFAPXAQPCSAJ0AaOIDwCDRDyogBwUJR9MP+COGFeGqAQDqFh4slGgAACsgBfdgWDxS
+AJ0ALCBy84BX55IAnQDaIFhRMmWnxI0iZde/LhIeiDUqIhD4IUYVoBmFAO4WECR4XQAA+x4ADLT/
+HQDvFgsn+A0AAJ8dnxz1wFDiEgCdACwSEAzMEafMK8Ket039YFrb4gCdACvCnftgWKASAJ0AjCmN
+KgwOPi4WGgzdDH7beSogIikgIwqZDPsgWoASAJ0AKCAHGs52/VgAFeGIAQANiAkojQIugQYJ7zYP
+7gwuhQYtICKv3Q0NRy0kIvugWbgSAJ0AKKJ/7iILJsv9AAD7AAQA0AgVAOCZGgxACoAA6e4IBEP9
+AAAI7gKeKigSGgzpDPkgWFuiAJ0AiR0ezl0sIAcoIQcdzjP+QSQV4MwRAPWQABY6iAEA7cwCDEMC
+gAAI/wItISScsIogiBoczdLu3QINVgKAAAqZApmxKiEinbSfswyqApqyHM5LKSIQmbUZzkr8RxAV
+4A8lAJ+5lrf5YQYVoA4VAP9hRhWgCnUA/AMABvBOdQAN6jkNyTkKmQKKG+a2CyHAQQAA6bYGJcjB
+AABtqQUIAIYJAmEezbWevI0w86BEQpIAnQAqEhDpEgwtVwKAAKeqKaadKCAULxIapIjoJBQngMGA
+AC0SGowpKyA4rcycKfNgTq+SAJ0ALhIc+cBNeVIAnQDAINEPKyAHKCAFKjAR/EBIFaG7AQArFh75
+AC48UKo5APuARjiQHqUADLwRp8wtwp4rFhAqFhn/oEdLogCdACnCnSkWEekWHSgECoAA+yBG2BIA
+nQD6QGgdoAtFAFlrCxvNjPtARsBSAJ0Ai7j3YEbwkgCdACxyrveARE1SAJ0AKnKtHs2D7wIABev9
+AAD7QEdYEgCdAO3mCCgECoAA+0BDaBIAnQAtMBQtJDgrMBUmJDsrJDmJO4s8iDqPOY42jDgsJQkv
+JSMuJSIoJSQpJSUrJEyJPSkkTSgyES4yECYkTiYkTyYmGyYmHSYkcCYkcvZOJh2gDxUALyUpLyYX
+LyYYLyYZLyRzLiUoKCYVLiEaLDARx7z7wAQF88wBAPxHRh2gCCUA+aAEBjAPRQDo0Bx127EAAP8A
+AAQwCRUA+S0ADDmeHQCpiA6IEQi7DBjN0f+gBAbwDhUADOw5C4ksDe05C4guCOg5Hs2m6YgIC0gE
+gAAN6TkdzVrfYAzfOQn/Ai0gFAi5HOklNCXz8QAACOgcKRIZpN3oJTUvdAKAAA7+Ai4mEO0kFC3E
+AoAA+eYAD7AsBQDvJg8kr+GAABvNtxnNZi4gB4wpnCyIPvgiRhWg/hEA6BIRL/qCgAAJ/wIpIQj/
+AAYV4e4BAO8iAC90AoAADpkC+yYADPAONQDr+wIP/gKAAA7/Ap+B/5o+BaAvBQCfg+6GAiR4wQAA
+LxYdjiuWhZ6JnIj7AMYV4A8VAPkAhhXgCwUA+iJmFeAZZQD4I2YV4BxFAOwWCS7yAoAAD+4Cnof2
+QoYdoCwFAC0gBw0NQevNjhboUQAA6hYILoEKgADtMg8vyAqAAAuZAhvNIC0WFCkWFSm2QCkSHRvN
+hZsXCyCGCQJjCwCGCQJhKyA4IxYg6mQACxgEgAD6AgAG8OsBAP+NAAmwDCUA/Y0ADXDrGQDq7gIL
+SASAAP1gBAWwGgUAC6k5KiA572QAC0AEgAD4ZgAJ8IsFAP1ABAYwSQUA/WIADDCqAQAKnzgrEh0c
+zWn6QAgVoA0FAJ0RCP8CA/8C/CAGFaANBQDyJAgV4AwVAO/uAgXYgQAA/8AAFzAPRQD/xgAPcA8F
+AP4gRhWgDgUAWE18wMHvzVgdWASAAPpACBWkCQUA+CAGFeANBQD4IEYV4AgFAPggJhWgDhUAWE1x
+KBIU6RISLVgEgAD6QAgVr/71AJ4Q/ESkFe//9QD8RIQVqJkBAPs4ABS4iAEA6YgCDuwCgAD9hgAO
+cB6lAPggRhWgDQUA/CAmFaAMFQBYTV3boPpACBWv/fUA/CAGFeAMBQCcESkhIighCcHs+SAAFL//
+9QD5BgAMcAwVAPggRhWgDQUAWE1PKhYWKiEoWVCH7c0qHWAEgAD6QAgVr/71AJ4QLhITLdCMG8zB
+7t0CBmP9AADi6RAO6EKAAO2ZAg5mQoAADJkCC5kCmREoIhUZzRz//+Id4B7lAPoiyBXmiB0A+QYA
+DHANBQD4IEYVoAwVAFhNNBjMpYwXLxIV74ZALUgEgAAMYIYJAmcMQIYJAmWJMPMgGCqSAJ0AG8yi
+LxIQHc0GLCEHLhIb6tKYL/8CgACn/y72nSuyH48gjiAoIA0pIAyuu+4gFS3eQoAAq6oqFhcrIAcr
+pAcppAwspQcopA2MOS6kFS3SHC4yEfhiCBWgCRUAKaUpKKUoL6Ye/UEkHaAbRQD7QKYd78wBACyl
+I/ohCBXm7h0A/6AARrD/9QD8IwYVoA4FAP1CxhXgDRUAWOhULBIXKxIYJsQU/YKwFaAtBQBZQP8t
+Ehlk0vUuIDrA///AF6xiAJ0AKTBXKApACYgMKBYOLQoB/h/iHeAOBQDsIQktWASAAOwWDylQBIAA
+WOhAJiQUix8sIBWNHllA7cC8iicczDiKrokZDACHCgJhCgJhCgJhCgJhCgJhCgJhCgJhCgJhLRIZ
+K3at+ECmHeAOFQDuJBcmgVGAAC8gOsCPePEdGcy7KDBQCYgKiIzsMFch2UEAAPpAaB2gDSUAC4AA
+BQpH+UAbyVIAnQDAINEPAOokAAnYBIAA7EQACugEgABYTrXSoNEPAAULRysWHPlgBuFSAJ0AiSeM
+mi2cIOTCl2TwwQAAjJmL4Cn6wPmgBATwCgUA7rgMBdshAADoujkGAyGAAJkViNB8gVgrwAD/YARc
+YBlVAPlgBBxgGGUA+W9mDaAZhQD5bmYN4BiVAPltZg2gGaUAebFjixUpwAco0gMoFgbriAgMzwKA
+AOnMCARBAQAA6Ms7flgEgADstAAN/TYAAMmows0roAB8sS6LrsCg6+0MBdshAAANujllr+ctIE76
+wGgd4BxlAP2NAA3wADoAixb7jwAN//8OACwgBeskcS5B8AAALSByft9x2iBYTv9loHmOImXgdCgg
+FKSIKCQUjzB69lcqIAcKCkEMqxGnuyyyngqpAveAGxpSAJ0AK7Kd6RYfJZsRgAAvIHHllAAJ4ASA
+APpAaB2g7qUA7+Y5CmgEgAD+wGgdoA8VAFhOjwxZEfcgAETwCEUAKJadKhIc+UATiVIAnQDAINEP
+AOokAAnYBIAA7EQACugEgABYTlXSoNEPAOw0AApoBIAA+0QAFeAOBQD6QGgdoA8VAFhOeisSG7S7
++iNmFe/zbgAuEh4bzEAdzED+ACId4Ak1AOuwgC8BCoAA6dSAL/AKgAD6IIYV594BAHvYL/gjyBXv
++PUACNgDCLsBGMvNCJkKGMvQKJahiBQZzC8L6wILC0frlIAkBdmAAGSwvsHj/iEmFaANFQD8ImYV
+4AsFAPoiRhXgGTUA+CNmFe/otgAAAP/1MA2gC2UAxPD+IcYV7/RWAC4gcegSDSngBIAA6iQACmgE
+gAD4HUId4A8VAO6WOQxHAoAA6LsIC3AEgABYTkeJHbSZ+CGGFe/dGgAby4SLuPdgELCSAJ0ALBIQ
+DMwRp8wtwp63Tv+gEOOiAJ0AKcKdZJITHst6sL2d6NuQ+z+umJIAnQBgANv/9awNoAwFAGS/SPAA
+GA2gCRUAwJAby/sostLH3g2IAQiYAvl6RhWv/LYAAAAAAADqJAAJ2ASAAOxEAAroBIAAWE330qDR
+DwAAH8tiwOoOvjSe+Nog/EBoHaAbxQBYTkZj/8zAINEPAP/caA2gCQUAKxIe2iDrvBgpYASAAFhO
+PmP/rNog/EBoHaAbxQBYTjpj/5zAoFlovRvLT4u4+X+4wJIAnQBj/6qKJ/qAaB3gDAUA6qwgKmgE
+gABYSIfSoNEPHctEwMoMvDTs1ggoBAqAAPtfuKiSAJ0AY/92KxIe2iDrvBgpYASAAFhOI2P8SACK
+J/qAaB3gDAUA6qwgKmgEgABYSHXSoNEPAADaIFhNi2P2JgAAAAAA/9KgDaALBQCKJ+tEAApoBIAA
++0QAFaAMBQBYSGnSoNEPKyAF9X/fwJIAnQCMIsDSDcwC/EBGFa/vpgCcKv+AaB2v074AKyAHGMuq
+/68ADPG7AQAIuAnpJCIkQAsAAC6BBq/uLoUGLSAizNiMKfxBRhWgALIAKaJ//kFoFaAPFQDgkQQG
+w/0AAOCIGg/4CoAA6O4IB/v9AAAP7gKeKiu8H+okAAlgBIAAWE3tY/txAAD/8oANoAsFAAAAK6wY
+7CQACVAEgABYTeZj/NTAoFloaRvK+4u4+X/vAJIAnQD/9+gNoAkFAADAkB3K9cDKDLw0/aEGFa/3
+ngBsEAQbyxEpIgAYy2krsh8ogor7IABE8AsFAOskFCzOQoAA+QAARHAZBQApJAXrhBQpUASAAFvm
+19EPAABsEAQZyzCKMimSfwmqEaqZLJAGiJLA2/0gph3v++UA64gBBmP9AADslAYs0ASAAPkgRhWg
+CwUAW+bIwCDRDwAAbBAIiCIvIAeHMJUS9CBmFaH/AQDzA5wN53cBAO8WASOI4YAA63wBKVAEgABZ
+aFnmogFtIASAAPZgaB2vhdUA4hYAI4aJgAAHcgnnPBApFwKAAPJAAEFwAJoAAAAAaYEIihCLZVjm
+5dSgZkDX53wwIzDBAADywATkIgCdAChgEMiNaIFAaYLkKGARZY/PYABuKGARyIpogR1nT9B1Qc1g
+AKKKEOtiBSvgBIAAWOck9UBoHa//mgCKEItlWOcb9UBoHa//XgAoYBHIi2iBH2dPm3VBmGAAbQCK
+EOtiBSvgBIAAWOcW9UBoHa//lgAAihCLZVjnDfVAaB2v/1YAAAAAihDrYgUr4ASAAFjmwfVAaB2v
+/WYAihD8H6IdoAsFAFlpbdSg9UAKDG8GBQCIMAaIAfhgBhWgAEIAAAAAAPIgBhWgBAUAiREWyoAX
+ynnllAAMxwKAAPUgBUIQD6UAB4gIKoKeIhIA90AQGlIAnQArgp3otAAFjHGAAIlomBT3IAygkgCd
+ACpyrmShWityreSxVmTj/QAA7GYIJYrJgACKEykgFKqZCQlHKSQU9SAL1lIAnQD8YGgdp+QBAO0S
+AylQBIAA+wBoHeAPFQBYTR+LEv6gABawDEUA96AARve7AQDs1p0llGUAAIonjRPAwOqsIC7YBIAA
+WEeV0qDRD8Ag0Q+JaIIQ9yALYJIAnQAMWBGniCuCnvdgC6JSAJ0AK4KdZLFrsJqaaOi0AA36dgAA
+YADQAAAA8iAGFa/7RQD7X/glYgCdANog/EBoHaAbxQBYSObsEgMpUASAAO0SAinYBIAAWEzM0qDR
+D4wSDAxHaMIOjTAG3QH8YAYV4AIFANEPjxCP94QTjvr14QgV78wFAO3yCye4gQAA7HwBCicCgACl
+QqzdpO7u9gom6QEAAPOgB1uiAJ0AyTOIE8iP2VBtiQUDAIYJAmEicgAEIgj8QAkEYgCdAIhQknAG
+iAH4oAYVoAIFANEPwLAPmjTqZggt9X4AANog/EBoHaAbxQBYSLpj/06LEdog67wYKWAEgABYSLZj
+/zzAoFlneoloiBT5P/MYkA+lAGP/yS0hCf5CsBWv/wUAD58BD5oM+kKGHaAGBQDvtAMvcQKAAOa0
+AC7uAoAA/6YADrAMFQAM3QKdsfz1phWv+UIAAAAAAAAA//gADaALBQDAoFlnYolo+T/0aJAPpQD/
++nwNoAsFAADAsA+YNPjBBhWv+kYAAAAA5d8MAYG5gACKEw9CFOssCCnABIAA66o2CsgEgABtqQUI
+AIYJAmGNE6844t0MBkkBAABt2QUIIIYJAmOIUA9ODK7OLuxAnnAGiAH4oAYVoAIFANEPiFAvzECf
+cAaIAfigBhWgAgUA0Q9sEAQoIAXNjioiByuiDC2iCu6iCSVIwQAA6bEHdeMhAABlwAPI3cjr+kBo
+HaALBQBb5bjRDx3KURvKUizSX/+wxBXv+PUA+UAGFaAOBQDuJgclQCEAAJjBm6Mp0l+ZoujWXyf+
+gYAAKdF5iiB5q8MpIRpulArZ4P5DRB2gACIAAGiTr8CxC5sCCwtP6yUaLZ6QAAAs0YIMqgxY5m7R
+DwAAbBAEHMnJGsn/LMIdK6LHo8wJzBGsuymxGsDy/SGgQlANBQD9Y0Qd4AAiAABokxAusRoP7gIO
+Dk/utRonHEUAAPpAaB2gCwUAW+WK0Q8soXCKsAyqDFjmV2P/5ABsEDLjIAcp2ASAAB3JiQMDQeIW
+Jyn/AoAArf8o8p4rFlHyKgYV4EmlAPkAevviAJ0AK/Kd7snxHbAEgAD7YHqgEC0FAIhI6xYxJ0vB
+AAD/DMAAEHj5AA4AiekWMCD4wQAADwCKKEIQ6UIRLoIKgAD4IgYV4IidAJgfLkISL0IT/iJGFeDu
+nQAuFhGLTIxN/CKGFaC7nQArFhOKTotP+iLGFeCqnQAqFhWJS/gi5hXgAKoAAAAAAAAADh+H6RYw
+IPjBAAAPAmEPAmGMTSwWFYtMKxYWiksqFhcqHDBY5jcSyerTDw8CACghreshti0oBIAA+UBwoaIA
+nQB7ogwpIbermflAcCNiAJ0AWOZJ+0B04B/1RQDacFk73CUhtiMWLScWKqWl+qB1oFIAnQAfyWgv
+8h0Yyb4uIuqvX+wSUS/+QoAA/8AAR3ANFQAt5RovQSuVwS8WQxzJzSZCGiNCGCdCGS5CFCtCFylC
+FikWRisWRQjoAfgo5hWjrsEA+iiGFaPu4QAuFiwpFgLqFgAq6ASAAPogJhXgClUA+CBmFaALBQBZ
+Zjj9k3gFoAsFAOgSKivwBIAA6sm3G3gEgAD6ICYVoCkFAPjgAAQwClUA6BZILIIKgAD4IAYVoNOd
+AFlmKS0SLPwQAh2gCRUA/OAEBjALBQDsnDkN0ASAAAqaOQyqAvWgUYEQDyUAKRY3/gACHaAIBQD4
+JqYVoAwFAOwWNCbD9QAA/ibGFaAOpQAI7TgYyVn8ACIdoAkFAAnJOQg4AQjIOQmIAvsAUHAQPnUA
+AOAEAwkbCQlDKRY4AIQEBz4Y8MBJilIAnQAGWFD4KSYVoMahACwWSvLARysSAJ0AKSIYCYlBKRZL
+8MBHFRIAnQAGzEEsFkzywEejUgCdACwiGA8CAAwsQfgAIh3gDwUA/y0AD/AYBQAIeAEImDkI/wL7
+4E0YEgCdAB/I2P4nJhXgCQUAKRY6BslQCfgTCYgC+wBMsBIAnQD/ka4F4AgFACgWOy8WPAbfUA/5
+Ew+ZAvsgTEgSAJ0A+ZGSBaAJBQApFj0oFj4G6FAI/xMI/wL74EvoEgCdAPmSugXgDwUALxY/KRZA
+BrlQCfgTCYgC+wBLsBIAnQAtFiz/kiYF4AgFACgWQS8WQi4WVhvJIiwWVfwAAh3gDBUA/Y0ADvAp
+BQAJeQEJyTn5pgAM8B8FAPpgBAXwCAUA68s5DHAEgAAJ/jn9ZgAN8IkFAOuYOQx4BIAAG8k+CO4C
+CzsB+40ADfAJhQD9ZgAN8AhlAPstAA/wDUUACo05D90CDt0CLxJJLhJKKxJLGMkm5/8RD3WCgAAP
+7gIfyS/4wAQEMQA9AP+mAA6xDgUA+e0ADzuTIQDnPxgN3AKAAP+mAA6+AD0A9msADHLmuQD30AAX
+Mf8BAO6+Ag/9AoAA/6YADv+tjQD+KqgV77uNAOuqAgzNAoAA6xI6LEICgADu3QIP+oKAAPkGAAx/
+740ADrsCLhI5C6oCKxJMD+4CDt0CLxJW7hI2LdjCgAAL3QL78AAl8/8BAO8WKS93goAADrsCCP8C
+LhI7nxIvEj8O3QIuEj0P7gIO3QIuEkELqgIrEjcO3QKdES0SPA27EQ27AguqAi0SQCsSPg27Aguq
+Ai0SSCsSNObdEA3aQoAADbsCC6oCHcjyKxJCKfr/KRYA/WYADf//9QD7RgANcA4FAPopphWgDQUA
+6xIxKtAEgABYSPr2CgAEN/YBAP2RzAWgDQUA/CAGFasAPQD2awAPc5PhAOj9OQzKAoAA87IAB/Xu
+AQDoEiwvdYKAAO7dAg/5AoAACf8C6RJNLVgEgAD+JwgVoCoFAPtACADQDBUA+QAAFDCZnQDpFgIv
+cwKAAOjuAgrQBIAA/8YAD3//9QD/pgAOsA4lAPwgJhXgDQUAWEjX9iUoFaAMFQD+Q0gV4A0FAOoS
+Qy1YBIAA+CiIFe/49QD4IAYVr/8BAO8WTi1UAoAA+yYADLAORQDvFgEq0ASAAPggRhXv//UAWEjE
+///iHe/99QD+KOgVoAwFAO4WAi1YBIAA7BYBKtAEgAD8IAYV4AwVAPwAAh3gDmUAWEi3/AAiHaAN
+BQD4KcgVoA6FAPgoqBXv//UA6RYBLVgEgADvFgAq0ASAAPggRhWv//UAWEiqLhI1LPr/7BYALVgE
+gADo7xAPaQKAAP3GAA707h0A7+4CCtAEgAD8IEYV4AwVAPwAAh3v//UA/iAmFaAOpQBYSJosCgH7
+QGgd4A0FAP5CyBWv//UA/iAGFeAPBQDvFgIq0ASAAP5YAAc///UA7hZPL3QCgAD+ICYVoA7FAFhI
+i8e/+iAGFe8JBQCZESkiF/gp6BWgDBUA/AACHeAO5QD54AAE///1APsgABS/iIEA6YgCDVgEgADo
+FgIq0ASAAFhIevtAaB3gDBUA+CjIFe/69QD6IAYVpgA9APZrAAvwDQUA9yAAA/mJsQD7MAAVM/n1
+AOmqAgvLAoAA+QYADHAeBQD6IEYVr//1AOgWASrQBIAAWEhlwDD//+Id7/31APcsAAdwDAUA7hYC
+LVgEgADsFgEq0ASAAPwgBhXgDBUA/AACHeAeJQBYSFjAwfwAAh3gHkUA///iHeAJBQD4ICYV7/j1
+AOkWAi1YBIAA6BYAKtAEgABYSE39kHYFoB5lAPtAaB3v/fUA/CAGFeAKBQD6IEYVr//1AOwWASrQ
+BIAA/AAiHaANBQBYSEDAwfwAAh3gHoUA///iHe/59QD4IAYV4AgFAOkWAi1YBIAA6BYBKtAEgABY
+SDXppAADLXmAAPTALTkSAJ0A9MAx+JIAnQD0wDG6kgCdACYSKiMWGCMWGfosABXv/vUA7rYCIOn9
+AACes560nrWetp63nrieuZ66LrYLHsdz7JwgJPghAAD7JgAVoIsFAOubCAC5QQAA6xYzJtgFAADt
+x24TIgGAACgSLRbHyekWKCuYBIAA58fWGpeCgAD2RgAJMYgBACgWUuIWVCq2AoAA8gACHaAIRQD4
+xgALMAg1AOYWUyywBIAAbYpxnmApElPpZgEvyASAAOcAFQf5AQAACQCKwpiZZSkSUigSVOhmBilG
+woAACJkCGMfqnWTomQIBEAUAAOu88C3ABIAA6WYHKcgEgADoCx4Bm8EAAOjEAAMxAQAA6EwABmEB
+AADpBx4NQASAAOgsAAVRAQAALxIo+CYIFeDGhQD34ABDMOoFAPvgAEUw+wUA++AARfADBQDpDAUA
+wYEAAPgMqB2gCSUAbZqE/+YGFaAshQDoElMrSASAAOj2MSMxAQAA5wAVAcANAAAJAIot9jTpElQs
+FsKAACz2Nen2NiGYBQAA/QDAQlAJFQDAkCgSUgiZEQKZAgmIAhnHuS/8QOmIAgCRgQAA6PYnLcgE
+gADiCx4NQASAAOhMAACQwQAA4gceBdkBAADpLAAFUQEAACYSKCgaQPjAAEMwQ0UAKUEqKxIn8SAN
+nBACRQAZx1ofx5KeYIqwLWYC/sCmFeAMhQAsZgP4pgAM8AwlAOlmBC1WAoAADKoCKmYB5wAVA0hh
+AAAJAIrjPAIjMIEAAIhA8QANgpIAnQApElEpkAEAmTItQhooQhknQhj0KigV56kBAPol5hWhAD0A
+CHcY9KAoFeF3AQAnFi7xQYAN6X0BAClCFBzHYgnKU+yZAQVT+QAACpU467IAK1AEgAD8GgAGcA5F
+AP4GAh3gDRUAWWX+LRIwKRIuKxIv7QAFDWAEgAAMAmEMAmEMAmEdxwoYx3LopgIs5AKAAAx8Ag3M
+AuymACJ4IQAA7wYABXBBAAAOAIqVpixCFAsNBv1Dph3jzOEA7KQcIfgRAAAoElAcxsHuElEsRwKA
+AKyIL4ad88AGHaACBQDRDwAAACgiFQiYUCgWSsCQKRZJ8N+5GxIAnQAGDFEsFkvy37k1EgCdACgi
+GNMP0w8IDED97QANsIgJAAuIAigWTPDfuKNSAJ0A/9xUDaHGcQD4ACId4AgFAPIrJhWjzgEA/Z/g
+FaACBQD9IgAMMAwFAAKcOCISWXjAisCB+ClGFa/+OgAAAAAAAPE/9HRSAJ0AH8asLEIanmCKsPzA
+RhXgGAUA+MBmFaAJBQCZZpxlnGcPXwKfZP1AABUwDCUADKoC6mYBIZgJAAD2xAAVr/k6ACkSUBrG
+hugSUSzPAoAAqpkjlp3zAAYdoAIFANEPAAAA+CamFeAOFQD+JsYVoAwFAOwWNy/ABIAACrg5+CaG
+Fa/XbgAuIhkODlP+JwYVr9fiAMCA+CcmFaAPBQD+J0YV79mGAMDw/idmFeAJBQD4J4YV79m6AMCQ
++CemFeAIBQD4J8YVr9nuAADAgPgn5hWgDwUA/igGFe/aHgAAAAAAAAD8JYYV4A8FAP4oJhXgCQUA
++ChGFe/aLgAqFiv4JggVoAoFACoWMhrGt+gQBQCxwQAA9hCoHaAIRQDjFh8qtgKAAAhmAiYWUyYS
+LeMWICrHgoAA6ogCDNAEgAD4KoYVoWYBAPYqRhWgCCUA58a2G7AEgABtipYjEiueoPgqaBXgAhUA
++UAmFeAIBQDnABUPyASAAAkAiikSMgkoOOmcASyWwoAA6RYyLEYCgAAIIgIpElIYxtSdpOKZAgmQ
+BIAA6JkCAZkBAAAjFisoElTppgcn+QEAAPlAxhWgKYUA67zwLcAEgADppgUuSASAAOgfHgZhAQAA
+6ewAC0AEgADoGx4FUQEAAOLMAAMzwQAAJhIz//EgDaAzhQAA/AACHeAepQD9jXQFr//1APmNcgXg
+CAUA6RYBLVgEgADsFgAq0ASAAPggRhWgDBUAWEa7/j/iHaAMFQD9jV4F7//1AO8WAC1YBIAA7RYC
+KtAEgAD+ICYVoA0FAP+NSgXgHsUAWEavwMH8AAId4B7lAPgAAh3uDxUA+CAmFe/49QDpFgItWASA
+AOgWACrQBIAAWEaj+UBoHe/nWgAAAAAAAPwAIh2gDQUA+EMIFaAepQD7QGgd7//1APqgaB2gCQUA
++CBGFeCIwQDvFgAsQ4KAAPggJhWv//UAWEaRwMH8AAId4B7FAP//4h3gCQUA+CAmFe/49QDpFgIt
+WASAAOgWACrQBIAAWEaGwMH8AAId4B7lAP//4h3gCQUA+CAmFe/49QDpFgItWASAAOgWACrQBIAA
+WEZ7+UBoHe/k0gAtQRYuQRfrQgkjh+mAABzGbClCEYpOL0INKEISJRYJKBYDKxYIKhYH+CAmFeAK
+VQD+IKYV4AkFAPggBhXgDwUA/iCGFeALBQD6IMYV4AgFAPggRhWgK4UAWWLI+r+NCFIAnQD8KigV
+oAJFAPok6BXvmeUA+/PCHaADBQD7gCYdr+umAP/CkA2gCwUALBIn6sQAAdhhAABYSJPHJNEPAAAA
+AAAA8gCCHaAKVQD9jIwFoBuFAFlisS0SUSsSJ/n+gh3gAwUA9aAmHe/qggAAAAAAAAAA8gCCHaAK
+VQD9jHYFoBuFAFlipS8SUfok6BXv+UUA8gACHe/+RQD/4CYdr+muAAAAAAAAABzGMYhMj02VEvog
+JhXgClUA+CAGFaArhQBZYpb6v4bIUgCdAGP/NABsEAonIAccxXwHB0EMehGsqiiinsGV+QAW0+AO
+NQArop3qtAAFlrmAACswAxbGAe3F8R2W1gAAJUIUBYhTmBf8oAQC84XhAPUADHGSAJ0AwFAuQSob
+xWoZxWzxwAi0EA8lAI4xm6CIIAiIEQ+IApihGMW4maKWpQjpAh7F0flAhhXgCIUA6KYDJUhhAADu
+ABUFUIEAAAkAirJViUDxIAjikgCdACkwAQCZMihCGSZCGC5CGgkLR/ohRhXhAD0A+MsACzn+AQD+
+IQYV4WYBAJYZ5jIBJYCpgAApQhQJy1PtmQEF2/kAAAuWOIsg/hoABjANFQD+BgId4A5FAFlkZYkY
+ixmMGh3FOR7FdRjF3O0ABQ1oBIAADQJhDQJhDQJh6KYCLewCgAANnQIO3QLtpgAiECEAAOIGAAV4
+QQAADwCKlqYtQhQMDgb/Q6Ydo93hAO2kHCL4EQAAGMUoDHIRqCL+U6YV4A5FAP5gBh2gAgUA0Q8A
+AADx3/kUUgCdAC5CGogxm6CGIJminqWep+7FMBs2AoAAD2YC90AmFaAWBQCWow6IAvlAhhWgDgUA
+7qYGIqgJAAD7RAAVr/uOAAAMchGsIvRTphXgD0UA/mAGHeACBQDRDwAAAAAAAC5BKylCFuoyAS1Y
+BIAAmhb4IKYV4AwVAP4ghhWgCAUA+CAGFaANBQD4ICYVoA8lAPggRhWgDgUAWEWo6MWjHVgEgAD6
+IMgVoAnFAPggBhXgDBUA+CAmFaAPhQD+IEYV4A0FAP+LNAXgDiUAWEWbjRf+IIgVoA8FAOzFlR1Y
+BIAA/CAGFaAKBQD6ICYVoAwVAOoSBi90AoAA/6YADrAORQD8IEYV4A0FAFhFjJUS/AAiHaANBQD7
+QGgd4A5lAPogyBWgDwUA/iAmFe/49QD4IAYVoA8FAFhFgYsV+YACHeANBQD4IAYV4B4FAPtwABW5
+y7EA+iBGFeP/9QDsFgEtWASAAPogyBWgDBUAWEV0HMTEHcVC//WEDaAF9QD/9KQNoAsFANog7CQA
+A9hhAABYR6vHJNEPaLMrweZ+sRbG+v5gJh3v6aUA//YcDaAFBQAAAAAAAPnzwh3vmOUA+GAmHa//
+ngD+YAYdoAIFANEPAABsEBIrIAcZxKoLC0HlQggt1wKAAKmqKKKeKxYZ9wAT0tBV+QAnop3mxU8T
+k3mAACxhgOnEmxYEMYAA8LFgDeAsBQDpAhUA0MEAAAoAii1CEO5CES4CCoAA/iIGFaDdnQCdHypC
+EitCE/oiRhXgqp0AKhYRj0yITfgihhWg/50ALxYTjk4vQg/+IsYV4O6dAC4WFS1CCy0WFyocMFjh
+Zy9hcythfP9ABnHiAJ0Ae6IMKGF9q4j5QAXzIgCdAOsiACqPZgAA2nD8AAIdoA0FAP4AYh2gLwUA
+WWOcHMUjLWLEiyApQRYppQIuQRcNuwwMuwKboIhNmKKPTJ+jK0IZLEIYLqUD/UCGFaCNBQANuwKb
+pYlJmab4g0gVoAwVAPlA5hWgDjUALxIZGMRiDP8RqP8u9p0sNAAtIAaLIuy7AgboBQAALSQG+kBG
+FeACBQDRDwAAAAAA6QAFANDBAAAKAmEKAmGITSgWFY9MLxYWjkv+IuYVr/yaAC1BFi5BF4tJ6hYY
+Io6ZgAAcxPApQhGPTShCEopOmheZEZsYnxX4IGYVoA8FAP4ghhXgCAUA+CBGFaALBQD6IMYV4AkF
+AJkQ+CMIFeAKVQD4ISYV4CuFAFlhTSoSGNMPZq7jhTH9iWgFr53lAC00AfiDKBWgDkUA+oKIFaA/
+BQD2gwgVoQA9APiDSBXgDRUA/UAEBTO64QDoZhgF2/kAAPtCAArwydEA+uBoHaFmAQD6QAgV6SkB
+AFljRh/EHNmg/gAIHeAONQBt6gIJAmEYxFQexLvupgIrfAKAAA8vAgj/Au+mACJoIQAA7QYABWBB
+AAAMAIqVpitCFCkKYvlDph3ju+EA+0OGHeACRQAoEhkZxAoMiBGpiCKGnfJgBh2gAgUA0Q/aIOwk
+AAXYYQAAWEbxxyTRDwDacPwAAh2gDQUA/gCiHaA/hQBZYyIYxKqPIClixC5BFi6lAitBFwn/DAj/
+Ap+gLUIRnaMsQhCcoilCE5mlKEISmKSPTZ+njkyepo1PnamMTpyoKEIYL0IZK6UD+UFGFaCJBQAJ
+/wKfq45Jnqz8g0gV4AtVAP1BphXgCRUALBIZHcPhDMwRrcwrxp0pNAAqIAaIIumIAgVQBQAAKiQG
++EBGFaACBQDRDwAAHMR/KBIYj02JTJkQ+iAmFeAKVQD4IEYVoCuFAFlg5CoSGGatQWP+WgAAAGwQ
+DNYw9OAABHAHFQD1AAdhEAUFAIkizZIpMBhkkHz1IARIkgCdAGiTBmiUGcAg0Q8mPBjbYOokAAng
+BIAAW/owZKCIZq/lE8PAiTj3IAyQkgCdABvDtyqyrmSgfyqyreSge2Tj/QAA7DYIJQQBgAApIBSk
+mQkJRykkFPUgC65SAJ0Aiif6gGgd4AwFAOqsICpoBIAAWEDt0qDRD9og7DQAAdhhAABb/vZj/5Tm
+PBgpUASAAOw0AAtYBIAAW/4eKzAY+X/72dIAnQBj/2YsMBj5n/rKUgCdAGP/aAAAwKDA2g2dNO02
+CC18RgAA2iD8QGgdoBvFAFhGfcAg0Q8tMRYuMRePOIo5mh3/5+AAED/xABzEN5Mci26PbShiEili
+EZkRnxWVEJUSlRSaGPggZhWgClUA+iDmFeAIBQD4IMYVoCuFAFlgj2AAHwAAHMQqkxyIHY9tiWz4
+IAYV4ApVAPggJhWgK4UAWWCHiSeImvMhCBXvzQUA75ILJNCBAADtrQEKXwKAAKO+rf+riOiWCif5
+AQAA/+AEo6IAnQDJbAZsAuk0AAIAuYAAbUkFDACGCQJhjqAPAgAPAgCr7v/ABiRiAJ0AnqAvEgxk
+8KslNBglNBn0Y2Yd7/j1APhg5hWv+N4AwKBZYMaJOPk/8ziSAJ0AY/73JaQALCEJ/EKwFe/+BQAO
+ngEupAPungwO6QKAAO4kFC5mAoAADcwCB8wCnKH3daYV7/l+AAAAAADj/gwDAbGAAA5PFOj8CCtI
+BIAA6Eg2CeAEgADTD22JBQkghgwCYw5pCO9IDAbhAQAAbYkFCUCGDAJliRwOvAys3CzMQOymACz6
+xgAAwNP8YwYd7/1GAAAALtxA/0AGFa/87gAAbBAEFMNSBCIK8lQoFaBDcQDuRRAKI8KAAAVEAgQi
+AQIyAtEPbBASKCAF5cPPGsgEgAAsIAeLMCVRfvaAQBXg9vUA+uAABfGsAQD9AQAEUFUJAMAg0Q+I
+IukWCywaBgAALyAWHsNAmxf37gYNoA0VAPmGfAXiqAUACMgdqYnrkn4nsEEAAABhBADWGga7ASaS
+fwtmAhvDJCaWfxbDNAuICA/7Cgi7Cwa7CCayfyZsASa2fymSgADxBOsWCS7YCoAA+yAXiOIAnQAM
+yREOmQgpkgAJuwHqFgQll+mAABnDTSyQgO3C9RZg3QAA94XaBaTMHQAMfAnqFggmYA0AAPVAEhoS
+AJ0ADK8Rpv8o8p6aGP0AJcuiAJ0AKfKdmRPqFgQkljmAAIvY92AWcJIAnQApYq5kkkssYq1kwkew
+uurWCCYSeYAA68OKGpkOAAAqMCAtCu3TD/1AGYRiAJ0AwP5/oQooCu75QCNlIgCdAPwgphWgDQUA
+7RYPIciBAAD4IoYV4AoFAJoemRwZw3ovEgwoICwuIRcv8gDqIg4sRAKAAAjuAgn/AQ/uAi4WE1jg
+PBnDcQkAh8CBCohgjBP5QBfsIgCdAMCwLSAWLgr//6oGDaAKBQArFhcqEhRb24YvIAeME/mFmAWi
+rQUADf0dLiAWqNgogn/6IugV4Bn1AA6ZDPkAHwpiAJ0AHcLXCOgQ6KgCD88CgACtmfkgZhWgCgUA
+HsNYKCEHH8NUGcNV/2ABBzqIAQDu4gAsRwKAAAmIApjwjSAq9QUu9gPuEgcu7gKAAA19Au32ASHI
+QQAA6QceB8BBAAAIAmPu9g8qk9YAACkKACkWEisgFAS7CAsLRyskFPVgFfZSAJ0AJRIAKRIL7Uz+
+KkcCgADoFgou9wKAAP4iBhWnmQEAKRYNH8Mz/4BoHaALBQDqEg0vyASAAOkLHgXYBQAA7kwADafQ
+AAD5QAnxUAsFAO4SFCZ5AQAA/IJAAVAFBQAOYIbvbAAF2AUAAH258YseZbFELhISLxIQiR8oEhOs
+/6nJ6JYQJ+EBAADsFhEvCeYAAIwxKxIR5DICLhLqAADAkCkWFfOAE8BSAJ0AqXKIGAyIEaaI4oad
+KpAEgADRDwCL2JoU92AXQJIAnQCPGAz/Eab/KfKe/SAX26IAnQAo8p2YFYwV6cQABhe5gACwv/+h
+BhXv9o4AAAAAAADAwMCKCLg06NYILm3OAADaIPxAaB2gG8UAWEUw6iQACdgEgADtEgsqYASAAFhE
+1dKg0Q8AAIwZLM0CK8ECKcEBLMEFmhTrmQEO2ASAAP0/6BqiAJ0AixTaIOu8EilgBIAAWEUeY/+0
+K6wY7CQACVAEgABYRRpj/6PAoFlfnR3CLovY+X/pQJIAnQBj/4EALhISiyctFhmcE+XibGXQgQAA
+wLLtRAAGYQEAAFg/ZI4ejBMtEhnlpAAHdfmAAIgW+YIGFaAPBQD/gkYV7/q2ABvCzSoSE8CQKRYS
+66oCC7/CgAD6ImYVr/kSAC0gLB/CaQMCiesAFw7owoAALfYmC4CH+hAgAN/zIgCcFRjCvxnCv+8y
+CCHowQAA/CGGFeAbBQDrFg8h0IEAACoWFJoeCf8BCP8C/iDGFe/zRgAAiy4vsADz4BDGEgCdAMDw
+KrAB80ARthIAnQDAsA+7EQv7Ame842P7bR3CohvCSgOjjA0Aay8gLCuyJPvgBADQDhUA/cABB1j7
+uQD/wAQHcA31AP+gCBYiAJ0ALjAQ88AS59IAnQALC0L1YApIkgCdACm8/vgAIh2gDwUACY84/iJG
+Fe/02gCPFS4hCfhCsBWv+QUACbkBCb0MLSQU5IgQD3YCgAAI7gIp9AP74AYdoA0VAA3uAp7x/NWm
+Fe/0RgAA6iQACmAEgABb0BkrEhGMMeoWFS1vAoAA7bsIDUgEgADxn+yAUgCdACMSFeokAApgBIAA
+W8/no66ufo8YDP8Rpv/u9p0qkASAANEPAAAAAAD/7SgNoAkFAOokAAnYBIAAWN7MwCDRDwAfwdAO
+6AoZwc+v3w+IC6mIL4F/++8AD7AJBQD54CAH8AoFAP8P5B3v8FIAAAAAAAD6QAAG8AkVAP2/YBXg
+CAUADZg4+CJGFa/xJgAAAAAAAPwjBhWgCgUAWV8MHcGei9iKFCwSGPl/6BiSAJ0A/+sUDaAJBQDA
+8P4gphXv9CIAAMCKCLg0+aEGFa/qtgAbwdYpEhPA0C0WEguZAvgiZhXv78YAAI+7/2EoFa/IBQAI
+qgGq++7sICXZAQAA+8AHCuIAnQCJGvU/4i4SAJ0AKBIQ7ogIBnkBAAD5YAfjogCdAPSf4VEQCwUA
+DsCG78wABdgFAAB9ufFj/BQLAYeONi0xCw0OPw4NPwvgh/nBCB3krwEA+yAEmqIAnQD/9yQNoA8V
+AAAAjhyO4vHABMDSAJ0ADs5PC0OHCyKHDg5J2OD4hIgdpJoBAPkA1g3gCxUAwLB6pwz5YGgd4ABS
+AAAAAAAA+gAiHaAJBQALqTjvFhYs7B4AAIwy+kBoHaALFQD98AAGMA0FAFjeUYwTLxIW//WMDa/7
+9QDA0fwiRhXv69YAAP/PAA9//H4AAIwy2iD98AAGMAsFAFjeRYwTiy7/9JwNr//1AB7B+i0xDn7Z
+av5h5BWv/YoAAAAA/28ADLALBQD4IEYV5JkdAOkWASSAuYAAiBEOYIbvbAAF2AUAAHi57wiJAo8S
+7P8IBXEBAADpSQwH+QEAAPU/16kQCwUAKpz+DoCG74wABdgFAAB6ufFj+twAAAAAAAAA8V/ltlIA
+nQAvFhb+IAIdr/yyAAAAAAAAbBAEJiAH9YJsBaKnBQAHZx0iIBakdCRCf8FfAlUMdU0TGsEwCCgQ
+6DgCC08CgACqmZiQ0Q8cwS4bwS8CKgqsfAyqC6uqKaF/8y8ADPALBQALmTUppX/RD2wQBBvBJSYg
+ByQgFvOCaAXiqgUACmodBEkKo6OrqgqZC/uCXgWgAhUA6DJ+IlhBAADnMn8tgQqAAOqZCAlQCoAA
+CogBCHcCJzZ/JZJ/sVUlln8jMoAAQQQAJRp1OA4TwR4MYhGjIoIgAlIB0Q8lnQIoUQIkUQElUQUI
+RAF1SwPAINEP0Q8AAABsEAYqIAeIIh/BPfeBwAWhqgEA5YDBbV8CgAAv8ICmu+6ynif43QAA/YG+
+BaT/HQDv/AMtOASAAP/ABqPgDaUAK7KdZLDTisibEPdABuiSAJ0AKGKuZICXKWKt5JCTZVv9AADr
+xggkhLGAACogFKSqCgpHKiQU9UAGNlIAnQArIAT9ZOAEUPr1AAUMR2jCGIon+oBoHeAMBQDqrCAq
+aASAAFg+AdKg0Q/AINEPKyAserHWiTGLEIwy7BYBLIYiAADzIAc4UAMFAAx8EabM85OmFe/+4gAA
+AADqJAAJ2ASAAOxEAAroBIAAWENB0qDRDwDAkA2uNO7GCCz7lgAA2iD8QGgdoBvFAFhDkGP/ygAA
+AP/8vA2gCwUAAAArrBjsJAAJUASAAFhDiGP/rMCgWV4LHMCdisj5X/jIkA2lAGP/vCghCfpCsBXv
+/AUADKwBDK4M/kKGHaANBQDslAMt2QKAAO2UACxGAoAA+wYADHAPFQAPiAKYkf7VphXv/BIAAADr
+EgApUASAAFvO04wRKxIAKTIB6hYCLW8CgADtuwgNGASAAPE/+QhSAJ0A2iBbzqLzQABB//xSAGwQ
+BCIs7tEPbBAKlRGNQuYWACn4BIAA7xYCIjghAAD3oBA8YAMVAB7AwBXAufpABADQCwUA6xYEKbAK
+gAD2IGYVr/j1APjXAAswDAUAitGdFYPQk6Dr0gAmy/sAAJkWI+J/mrGc0ZzQiEIpkn78gYQV4AsV
+APcPAAxwCgUA6Lo4DM5CgACpM4kymhcoQQ0GmQGZMvhg6BXgAgUA5UUOJAVJgAAqkgwokgornDDr
+qwwFUyEAAOuiOQQEQYAAKpIJKhYIZSBEjhjlwJIXAYGAABnA0CjgABXAjgmICoiM7OAHL1gEgAD6
+YGgdoA01AAuAAC1BEStBDZoYfbNUzCuIGGWPv/xgSBWgAU4AGcDBKCAACYgKiIzsIAcpWASAAPpg
+aB2gDUUAC4AALEERK0EN7LuTfRAEgACMMs3NYAEKAAAA//3sDaAKBQD8gaQd7/1eAIwyzMNlIELP
+rx7A23zgMNrAWUQF26D6YGgdoAIFAFg+oYgWizKKE48ViUILqgKaMp+RJ4aBKYaAn0IiRQ7RDwB+
+xx3H3Q3MAZwyiBaKE44ViUEMqgKaMp6QJIaAKYaBnkGLF8DA7EUNLYTWAACNFLHd7RYEJqA7gACN
+Qv+ArgWv+foAjkB06U+PF2TwSh3Au4sQjhKJERrALOjioC2BCoAA/yAAFL/79QD7IABEsAoVAOyS
+AS1QCoAAC6oDCogBG8BTKuKiKOagDcwBDKoCCro4CogCmJLRD9EPikAPAgAPAgB0oafqRAAL2ASA
+AFjeX/yASBXv944AZa9Oixhlv0lj/wUsQQwfwBCNEY4QDN0R790ID3ICgAAOzAL9oGYVr/2SAABs
+EAgGZAoDRAuLQJMQHMAF+oALBGANFQD5gE4F7/j1APpABADQDwUA7xYBKvcCgADs7ggOqAqAAO4W
+AysBCoAA6FUDDtAKgAD6IEYVoAMFAIyxjrCewI2wnNGTsZOw7kIAJdP7AAAqon4okn/k7gwNVkKA
+AKqIi4eHgpgUirz04AQD8AIFAPcARhXgDRUA+WFIFaAHBQDu1zgF4MEAAOysDAVTIQAA7KI5BANR
+gACKudagzyHJbhnAOShgAAmICoiM7GAHK1gEgAD6IIgVoA01AAuAANagzC1lb9aLE4wSi7B8sFVg
+ADQZwC0oIAAPAgAPAgAJiAooggzsIAcpWASAAPogiBWgDUUAC4AA80BoHa/+kgD//mANoAoFAM16
+jBGxzOwWASYgU4AA+oAIFeADBQD5f8AF7/xqAI1AdNkujBCPEi7CoMePCP8DD+4BjxMZv+YbwEGK
+8SjCoi7GoAuqAQqIAgiYOAjuAp7y0Q/RDwAAAADgYQQKzwKAAOyZCA7QCoAAmhL4IGYV7/7WAAAA
+bBAEGMAyhSAogn8TwDH4rwAKsqkFAAlZKKOTLTJ/DQ1f8aYgDeAMBQAfv5wbv4rHT/9gAEXwDgUA
++yAARfAPFQBtCBcosn/xAUAN4d0dAC62f7HM5NAvZdihAABj/+EpMn74cAgVoBr1AAyqDHqd3irM
+EAChBAD5GgSZAwmIAfhwBhWv/z4AKTKAyZYrMn4JuwIdwBAMXBGtzPuABhXgAgUA0Q/aIFvb+h+/
+qy4ygC0yfg/uAg7dAh/ABwxeEa/u/cAGFeACBQDRDwAAbBAE9YAEBeKoBQAIKCioVS5QfSlSHXPh
+AciR0Q8AwKT9f/gFoCsFAO0kAAn4BIAAWVxJI1Yg6iQACdgEgABZNh3AQNog7DQAClgEgAD+o6gV
+oA0FAFj4mbFEaUvlY/+6bBAEwCDRDwBsEAT1foYFoqUFAAUiKBi/RKQk9I/oFaAV9QADVQyoInVF
+DQM0CgJCCyItDSIhHNEPEr9m0Q8AAGwQBPt/uAXgCQUA+mAIFaAI1QD0QGgd7/z1APyixh2gAgUA
+8qNkHaeqAQDjpAsFDMmAACowCBm/0PlAC+KiAJ0ACakKiZAKkAAAAIYz9kgAA7dmAQDqdAALWASA
+AFleNBu/xSdUDCZUDSihB/ig5B2gBS4AKlAH+mBoFeGqAQBZOXIbv7z6osYdoATKAACMM/yixh2g
+BJ4AijP1QAjqEgCdAPVACKsSAJ0AaKUqaKcn/USABFANlQD9QAf9YgCdAC5QIMCC+KCmHaAPRQAP
+7gL+pAYdoAOeAClQIMCoCpkC+KQGHeADXgCMM/yjZB2gAzYAjTP8o0Qd4AMOACiyfY4zL7KCKbKA
+qO7/3+AVoIhNAOjuAQyCCoAA/p8ADzAIJQAI7jf/wQAPcP/1AA/uNv6kZh2gAiIAjzP+oYYV4AH6
+AClQIoozmlvqVgkkgWGAACyygLCY+4AEANAMFQDgiBoOYAqAAOioCAZj/QAADIgC+KFGFaABHgD6
+oUYVoAD+AACNM/yhBB3gANIAGL98jzMuUAeo+CiAgCkK++nuAQxHgoAA+cYADzD4xQAI7gEP7gL+
+oOYdoAAaAMYquDP0f/OVIAjVAClRG2WQXBy/bS2yfSpQFitRGv2BAA5w+fUA+UumDeKvBQAtUAf/
+fXYFod0BAA/dHK7eLuJ/+0ABBLAf9QAK/wx/5SEevriu3g6ZCymdDSmRHAnPNgv/Nwv/LA+/HC9V
+G9EPANEPGb7aCc82C/83C/8sD78cL1Ub0Q8AAAvILAi4HChVG9EPAGwQCvhAkBWgCRUA/X0GBaAP
+BQD2YGgd56UBAPUADKkQ/RUA678RFTP5AADmljkIBAqAAPVABKkSAJ0ALyAHjiIPDUHp1AAPCq4A
+ACogIQobQmWxt8DVCQpH9UAIChIAnQAMqxGsuy6ynpkV98AT6dIAnQArsp1ksdcpIBSkmSkkFI5w
+88AO6pIAnQAqICH6LgAOMAt1AP1gEhCiAJ0AZGAm/EDoFeD+FQDurgEKWASAAP5EJh2gDAUA7UQA
+BtCBAABYO5zSoNEPwCDRDykgBfUgEciSAJ0AaJcz9SAZzBIAnQBln1Uosl+KgYmAmaCOgIkgmuGf
+gO+GASRT+wAA6aZ+JEPhAACYJy8kIC8kIRy+Yf1+FAXgCgUAKiQUKiQXKiUb+kNEHaALhQArJAXr
+vwIZUASAAFvbCNogW9rrLCAhLQr+7cwBCVAEgADsJCEp2ASAAFv/GP18YAWv+4YAHr40juiaG5kV
+98ATiJIAnQAMqxGsuy+ynvfgFFHSAJ0AK7KdGL4r5LJ+Z3v9AACfiGW+5vggphXgAu4AAADqJAAJ
+2ASAAOxEAAroBIAAWECz0qDRDwCJMPoghhWg/sUA9UAJkReZAQCLIiogB/VlDA3hqgEADKkRrJkr
+kp73YCLp0gCdACmSnWSUJysgFKS7KyQUjTDzoCJqkgCdAIwU+YAmGVIAnQDAINEPAAAA9WAIcJIA
+nQD1YAlBEgCdAPVgGqGSAJ0A9WAcehIAnQDHlfgfAAVwD3UA+AAiHaAOBQD7AgAPMA1VAOn9Ow9w
+ZgAAY/9KixXaIOu8GClgBIAAWEDdY/84ACggBy4hCB++I/ggAAGwiBEACogQ74gCCZwCgAAD7gIf
+vm0TveiYsPhACBWgJQUAlbOTsv/GAA9wAzUA748CDEYCgAADiAKYsYUriCmetJ+2mLj1YSYV4AgF
+AOi2BSyqAoAABdUClbcoJBQMpRGsVfKzphXv9tIAACkK8QmqAfpEJh2v9uIAAAD/9hgNoAsFAGSe
+zgOXC/ZgaB2g/7UA8AcADaANtQAAAC2xeYwgfcsFLrGGZeQmwCDRD4grjyl48QnAkvhARhXv/AYA
+Kwrx+0AEBfAORQAOuwIrJCHZ0PWgE9oSAJ0ADNoRrKouop73wBxx0gCdACuinZkX7RYGJZShgAAZ
+vnP6QAgVoAwFAJwRmRCIcC0KgfjgAAQwDhUA+wAAFDAPBQD4IEYVoAwFAFg+UIgXHL2gDIgR/QAA
+RDAPNQAvhp0oIAYtICGPIi4K8f+gBAawCRUA6f8CBEAFAAAoJAafIvxEJh3gDmUADt0C/EQmHe/5
+UgD8IUYV4AoFAFlbAB69khy9i4kVjuiNGoob+d/rsJIAnQD/9jgNoAsFAMCwGL2KwPoP7zT/AQYV
+7/XyAIkniJr7IQgV78cFAOWSCyT4gQAA5/cBCjcCgACrbqdVpojolgoiqQEAAP6gFTuiAJ0AyTfZ
+MOq0AAIAmYAAbUkFCQCGCgJhLvIABu4I9cAWdGIAnQCe8IqwwOL3YGgd7w8FAPlgaB3nigEAbYkH
+KJAIaIELuJnAYf/uoA2gBTUAiJMPqgEIqgKasCggIQ2IAQ6IAvhEJh2v/3YAAAB9qQSJYykkFrhm
+9t/oJGIAnQAqYAhkoGdooT5ooulooy5pqduJY26T3mmT24sn+2QAFa/IBQD5QAQFMAgFAOi2CiVR
+AQAAmrn7YQYVr/7yAIlj+EEEHe/+ygAYvgiLYyogB6i4KICA76oBDEeCgAAIqgIOqgELqgL6QOYd
+r/4yAItjC4pC+iEGFae7AQCbGVlcaBy9NCihB4kZ+iEIFeANtQD6QYYd4P7FAPhBph3g/7UA+EDk
+Ha/9SgAAAAAAAADz3+Wn0gCdAPjgCBWg+8UA++AEBfD+FQD/QAQHMAmFAPnGAA9/CQUACYkB/SYA
+DPeIAQALiAIoJAeZcP5EJh2gABoAiXD/8cQNp5kBAB69G47onRf3wAxAkgCdAAyaEayqL6Ke9+AN
+AdIAnQArop1ksZcYvRKw75+ImRftFgYt66YAAIsW2iDrvBgpYASAAFg/9By9BP/whA2v+UUAK6wY
+7CQACVAEgABYP+3qJAAJ2ASAAOxEAAroBIAAWD+T0qDRDwAAAAAAAP/umA2gCQUAKCAHIyEI/XpW
+BeHoAQD5wAAXMIgRAO4zAgxCgoAADYgCmJAevPAYvXONIP8gRhWgLwUAn5P4ZgAJsA81AOjYAg7u
+AoAAD90CnZGOK40pk5SemfkgxhWgDkUA/SEGFeAIBQDolgUt6gKAAA7dAp2XKCQUDKMRrDP+c6YV
+7+zyAACKJ/qAaB3gDAUA6qwgKmgEgABYOhfSoNEPAAAAAAAAAP/x1A2gCwUA614MAYGxgAAORRTo
+XAgpyASAAOhINg3QBIAA0w9tiQUJIIYKAmMOOQjlSAwD0QEAAG2JBQlAhgoCZQ5pDKl5KZxA+eAG
+Fe/08gAqfED74AYVr/TGAMCw+kNEHeACBQDRDwAAAAAAAAD8IMYV4AoFAFlaIh68tBy8rY7ojRaJ
+F/nf8wiSAJ0A//nYDaALBQAAwLAYvKzA+g/vNP8BBhXv+Y4AAABsEASJJyggBouaKpwg7ZIJJEP9
+AADxZzAN54gBAOgkBiQAWYAAwCDRDwAAAPGksA3gLKUAK9AAfLlA/yFoFa/4BQD5ogAV788FAO+v
+AQJT/QAA7+4IDV8CgADoMR13cQEAAKvbK7wQ6+MsccBBAABoQQhtqQUIAIYJAmH6QGgdoAsVAFvY
+e8Ag0Q8AAOgkBix8rgAAY//jDe0MLNzwDEwUuMsLqzZtuQUIAIYJAmGj2AxKDOn8QCUPEQAAsK1t
+2QUIIIYJAmNj/7EAAABsEASMMYgy6iQACdgEgAD84AAGMA01AAuAANKg0Q8AAGwQBCggBCMgB/0B
+AANRMwEAwCDRDxu9K9MPK7F++kBoHaK7HQBY/t5lr+XaIOs8GClgBIAAWD9IwCDRD2wQBhi9Ioou
+JyAHHLyq+EDoFeAFBQD5QAccIXcBACXCfwmmEaZVhleGboia65IJJAahgAApsBTtsBUt0ASAAOO0
+AASAiYAA2iBb2PXAINEPAAAAAOnCfyaIIYAAiZeOmvwBAh2gBEUA65IJJwgBgAAtsBaw3e3EOA2Y
+BIAAHLw47wIAC9gEgAD04AQKEgCdAAx7Eay7LrKemhD1wAvzogCdACyynWTAlS0gBfhgKBWgTrUA
+/6AFbCAJBQDtvPUc3gKAAPxgBhXniAEAC4gCmDEvoBTuoBUvgO4AAGTg6SkwFu8CAAT7/QAA9SAE
+OJIAnQAvNBbaIFvYysAg0Q9j/ykAAAAA//ywDaALBQAAHrwajeiaEPegCGCSAJ0ADLsRrLsosp71
+AAkjogCdACyynWTBG7Dfn+jqFgAue3YAAIkQ2iDovNQZYASAAOiWACPYYQAAWD7ywCDRDwAAAP/8
+dA2gBEUA+BAiHe/9TgD//AANoAsFANog6zQACmgEgABZJzNkX28qYCgrYCnsYCotVgKAAAuqAutg
+Ky1WAoAADKoCCKoRC6oCsar6xWYdqKodAPrFRh2oqh0A+sUmHaiqHQD6xQYdr/zCANog6zQACmgE
+gABZJx5kXxsrYCgsYCntYCot3gKAAAy7AuxgKy3eAoAADbsCCLsRDLsCsbv6xWYd6LsdAPrFRh3o
+ux0A+sUmHei7HQD6xQYd7/tyAP/6FA2gDAUA9iAmFeAKBQBZWUAeu9KKEI3oHLvKixH5v/bokgCd
+AP/7vA2gDAUAAMDAwPoP3zT/wQYV7/t+AABsEAgoIAQnIAf5ABzjkgCdAPcAHKIX1QEA9aAd+RF3
+AQAZvA2KLimSf+sxCC1WQoAAqpkpkAUrJQj6QtAV4DrlAPsgH9wgSCUA+SAfnCA61QD7ICBdIPz1
+AIg5DwIA+CAABLAERQAJRAwEBEH0geAVr/mFAAlEAaSIKIw06BYDIiH9AAD9YwYNpEQdAP2/wBWg
+ChUADKw5KiBBWBl0ZKP/5buZG7AEgAD04BgKEgCdAAx6EaWqK6KetEzTD/1gHsOiAJ0AJqKdZGO1
+GLxdGbxb+kREFeAHBQCXEI45KiBBH7xZ+iCGFeANRQD7QACFMb4BAOvdDA1XAoAA++AAR7HdAQCd
+Fq3uL/J/+EVEHeAMNQDvFgUncPEAAP4g5hWgD4UA7yRkKNgEgAD5pgAOsAh1AOgkXC7uAoAA7RYA
+IVGVAABZVL4nJTUnJGiOFCshB/4gqBXgLOUA/ErmHaBdJQAtJAX9dtIFoE0lAC0kdP7AAARyn0EA
++0AABf3eHQDk3REN3wKAAOy7AgzOAoAA+QYADHD/OQDpu4gf/UKAAA/dAgjdAh+8KZtgiiCLF+lm
+Ai91AoAA7+4CDVYCgAAKSgL6wCYVoEpFACpmAywgQRq8IC5mButlCy5kAoAADcwCHbwbJ2UKKmYH
+DcwC7GYEIUkhAADpBx4DQIEAAAgCY/xFRBXgDwUAL2QxL2Qy/sZmHeAOBQAuZDUuZDb+xuYdoAwF
+APzGBh2gCwUA+saGHeinHQAqZC4tZC32xeYd6N0dAC1kLCkgV+psPCFZcQAA+MdmHeiZHQD4x0Yd
+6JkdAPjHJh3omR0A+McGHeAMRQBZVHPpbEAhQYEAAPhQaB2o5x0ACQSKCACI6YMeAcCBAAAnZFMu
+ZFL9dkAFqO4dAP7KJh2o7h0ALmRQ7hIGI0lhAAAIYIgJDIoIQIjpix4KRwKAAK5t7GYaJ3AhAAAu
+ZhsrIHQr1HSKMRm7RPxA5BXnqgEAmjErIAf4wABEOt0BAO67PR7vAoAA+kEEFaBrEQD00AATMbsB
+AObdAg38AoAAD6oCCaoCDt0CnYCPIJyCmoSZhpeF9wDmFeA2BQCWg/3gABewBkUABv8C74YBJDCB
+AAADYIYGAmcDQIYGAmUMuRHlmQgCQBEAACiWnSsgFi8K/w8CAH+xByogQYwTWBirJiEUIyES8MLQ
+DeAEBQAVu7bKYupSfynYBIAA/AACHaANFQBYN80oUoDkTAEhmAUAAAgzLnZJ29ogWDSCwCDRDxm6
+24iY9wAIKJIAnQAMahGlqiuinrRM/WAIc6IAnQAmop1kYQWwi5uYZWzwYACjiScMThGeEoia9yFo
+Fa/PBQDrkggk4IEAAA/PAZ8Rq+qvZq6I6JYKIzEBAAD6wAbjogCdAMk0yULZsG1JBQMAhgkCYS4S
+AirCAA6qCPdACGQiAJ0AmsDzYGgd7++uAAAAAAAAAOokAAnYBIAA/IBoHaCPRQDvNQgq6ASAAFkt
+bsAg0Q8A6iQACdgEgAD8gGgdoIhVAOg1CCroBIAAWS1mwCDRDwCJImWfI9og7CQAA9hhAABYPYzA
+INEPAAD/8KwNoAYFAIoiZa8DKyBB2iDrvBIpYASAAFg9g8Ag0Q8AAMCgWVgFGbqXiJj5H/eIkgCd
+AP/8FA2gBgUAAMBgwMoMjDT9IQYVr/vWAAAAAOtqDAGBuYAACk8U7vwIKcAEgADuTjYNyASAANMP
+bekFCICGCQJpiRGqOO9ODATJAQAAbekFCKCGCQJrjxKOEQr/DK/uLuxA/4AGFa/7/gAAiBEojED5
+gAYVr/vGAAAAAGwQBvhA6BWgDQUAnRAqIEEbuzsnIAcKrAnpggouZwKAAKy7+2/oFeF3AQDrFgEk
+mSmAAISJ8pGwDeBIlQAuQBLz0UAN4FtVACkgBfsgGExg/PUAKyAWKCQFfLETBQxH/Z/AFaANFQAM
+3DlYGC5ko1/AMea6UhvABIAA9OAXKhAKxQAMeBEGiAgvgp4pCgQDqTn54Bmb4gCdACWCnRu6RGRT
+CwsAh/wBgh2gCUUA48k5CsAEgADpFgIq0ASAAG2ZAggCYee6QhGNEYAALCEHHbo8DAxK7rsPHmcC
+gAANzAKcUIog+XYIBeAPhQD2oEYV4GtFAOtWAy1WAoAAD6oCmlH4RUQd4Ah1APhLhh2gDDUA7yRk
+KNgEgADuFgAhUZUAAFlTdCkhIvogKBWgXSUA/ECmHeAu5QD+SuYdoE8lAP5Ohh3gDgUALiU1LiRo
+/kgwFea6AQD6SAAGPYkdAOSIEQ5mAoAA/WYADbCqOQDsuucdVUKAAAqIAv6hRB2gXUUALVULGrrf
+C4gC7FYHL/wCgAAI/wLoutwczQKAAAqZAplWCP8C71YEIVkhAADrBx4C0IEAAAoCY/xFRBXgCQUA
+KVQxKVQy+KZmHeAIBQAoVDUoVDb4puYdoA8FAC9ULv6l5h2gDAUALFQw/KWmHeALBQD6poYd6N0d
+AC1ULCogV/pLgBXgDEUA+qdmHaiqHQD6p0YdqKodAPqnJh2oqh0A6lQ4ItDxAABZUzMoLGDoJgAC
+0QEAAAoEiggAiAoAiioKgPqgAEUwCQUA+KpmHeAJBQD4qkYd4AkFAPiqJh3gCQUAKVRQKCB0KFRw
+i0GIQBy6C/hA5BXnuwEAm0ErIAcfugj0QQQV6pkBAP8gABSw6xEA9dAAFzG7AQDumQIN7AKAAA1V
+Ag9VAgyZApmgjCCXovVAhhXgPgUAnqP/QMYV4A0FAJ2lnaf9gAAWMA1FAP2GAA53iMEA7KYBJXiB
+AAAEYIYPAmcEQIYPAmWOJ+8SAi3PAoAA9yAARL/NBQDvlp0ncIEAAP3ABAbwDwUA7+YCJukBAACd
+4f3ABhXgPGUA/Q7mDaA6VQB6gXrKOCsgFiwK/3yxIPpIMBWgXEUAWBdlwCDRD8TfLSQFLiBose7u
+JGgp/tYAAMAg0Q8oJAX/9EwNoAMFABW5nIlY5xYDJI33gAAMiBGmiC+CnvoBgh3gCkUAA7o5evN7
+KIKdZIB3sJqaWPUAaB3v9CIAZD+m2iBYMzJj/6PFsvpAph3v/f4AAIwiZc+g2iDsJAAD2GEAAFg8
+bsAg0Q8AAAAA//NADaAFBQCNImXffisgQdog67wSKWAEgABYPGXAINEPwKBZVuiJWIgT+T/70JIA
+nQD//kgNoAgFAMCAwMoMnDT8oQYVr/4OAAAAAGwQFJUWlxQiFh3jFgUp+ASAAOMSHSpYBIAAmxeM
+8OcyDiugBIAA5jAHK2gEgAD4aDAVp8wBAKz8IjEi8iFGFa/5BQDiuikWYP0AAAnMAZwZisEIiAn/
+AAAUMWYBAOgiCANAYQAAmBjiIn8mYEEAAPugL/qiAJ0AwODyICYVoAsFAA7SDB65ni7ifwl/Ea/u
+LuE1KHr//wAxWqIAnQAVuWyWExe6Fydyf+8CAAuwBIAA+6AEWqIAnQCOGQKqDI/jlxKO4q8vcvsB
+se6IFPcAKuCQBwUA90AqoJIAnQDAIG0IWgpJNAYoCglZNJmABikLL5YDLpYCKIIACEQMCKoMD4kI
+6RYLIRAFAADomwd/eASAAC/sAe70AAO4BQAA7xILIQwxAAD2wwAVoAIFAPaAJ2CSAJ0A90AnIJIA
+nQBj/56XEgy+Cwy6Coqgj+OO4gKqDK8vcvsBse7AIPIiBhWgAgUA9oAE+JIAnQD8I2YV4ADGACgS
+EOh4CAXYBQAA6BYQJYwxAAD9gwAVoAsFAAy+Cwy6Coqgj+Pu4gIiDZ+AAP9c8A3gBwUAakHHbQhM
+BikLBi0KCkg0CFg0CEQMCKoMmNCekp+T740IARAFAADo2wZ/eASAALHv7vQAA7gFAADoIQxu+ASA
+APbDABWgAgUAZK9/9p/74JIAnQBj/6wAAAAAAC0SG/QgiBWgCwUAmxArMBaGEvwjBhXg+fUAebEa
+jBb6aDAVp8wBAP2fwBWgDRUADNw5WBa3ZKSdLRIQ6bjbFp0JgAAauaqIGo0R7xIDIZGBAADiFhMh
+uSEAAOcWESGpcQAAJRYS/iGmFebNAQD/4AAXvbgdAOn/CAxFAoAA+wYADDLtQQDoFhQvdgKAAO7M
+Ag3dAoAA/iHmFeAOBQD+IyYVoN05AO+4vB7tQoAADbsC/CIIFeAFVQD+IYYV4AcFAP1mAA2wAgUA
+6xYVJugVAAD8IuYV4AA+ACgSF/igGIwiAJ0AwJUJWS/kkm9iqAUAACoKgAp3CC0xBx64rPZAAQe6
+3QEA7LjVHu8CgAAO3QKdcIow/OBGFaBLRQCbc/1AABUwC4UAC6oCmnGJ8MCE+mgwFaGZAQAJiAwp
+EhXvFhYtVAKAAAqZAhq5avwiKBWhiAEAKBYaCpkCmXQpEhT/4AgV4AoFACp1Cpl2qP/ouWEX+PEA
+AC91C5h37AMeA9iBAAALAmH4ZUQVoAwFAPzmhh2gDQUALXQ1+OWmHaAOBQD+5uYdoAsFAPrmZh3g
+CQUAKXQu+uXmHaAJBQD45gYd4AoFAPrmJh2gCwUA+uZGHeAOBQAudDYrEhL+IygVqIgdACh0LC0w
+V6/u/iMmFaAMRQD852Yd6N0dAPznRh3o3R0A/OcmHejdHQDtdDgj0PEAAFlRs+kSEyPRAQAACSCI
+CgSKCQCICgCKLzIcLhIX/upmHej/HQD+6kYd6P8dAP7qJh3o/x0AL3RQflkz+CNIFaBJJQApNHQZ
+uSsqfEX6IGgd4YgBAPkGAAxwCYUA6TRlLEYCgAD4IAYVoAw1AFlRmAYtCykxNflyQAWgOmUAKjRX
+6hIWJMgFAAApNTUodhaPoC92F47TLnYZjdItdhiNoCwyHIs/rcwsNhyKoCwSGA1EDKuqrNzsFhgh
+EAUAAOo2DyEMMQAA9sMAFaACBQAcuDb8I0gV4AtVAAtbLyx2GufdCAbwIQAALnYbLDB07NR0Le7G
+AAAvEhAF/wy2//f/7kFSAJ0Aih+JHimmnSswFigK/3ixCCowQSwSGVgV5I0V/CMIFaBPdQAvNAWc
+1/WhJhWv5I0AntiLMmWwzNow6xIIKeAEgABYOwPRDwAvEhCIHQX/DP/gwBXgClUACv82Df8R7xYO
+JCUFAACIHyiCnv8ABYviAJ0Ahx8ncp1kf56IHP7gaB2gCgUA6AAFB+rRgABtCA/uDAAFUAUAAP9f
+6jxiAJ0AY//pGrgCiqhqoXyLHyuynv9gBLviAJ0Ahx8ncp1kcIwZt/uwqPkhBhWv/r4AixPAoOoW
+GS3fAoAAqbubH44fjR4t5p0rMBYsCv98sQgqMEEsEhlYFa2LFYwX7RIGKdAEgABb/XXRDwCPwycW
+EI7C+4AIFa/s6gAA//+wDaACBQD//VANoAcFAP4jhhXgCgUAWVVMGrfeiqgvEhz5X/tgkgCdAP/8
+xA2gBwUAwHAct9fAugurNPuBBhXv/H4AAI8Zj/SSEar/79NufXAEgADAsPPgaB2gDwUA7/wEKXAE
+gADo9A9l2AUAACzMGP4AAh3gCwUArPKCIK4ictvb/7/OaqIAnQD9zwAJf+ciAAAAAAD2IGYVpAUF
+AAXlNv/nPA2vVQEAKDBBKIwS+CEGFa/5NgAAAAAAAAAA//8ADaALBQBsEAoeuHwvISIqIEHsRAAK
+6ASAAOcyACugBIAA5iAHKygEgACVFJQT/CBGFaAIBQD8ICYV4WYBAOgWACNIYQAAmRUKqAnrIBYs
+RwKAAKju/8/oFaD49QD5ZSYNp3cBAIwRLxYI/iEmFafMAQD9n8AVoAkVAAycOVgVaY4Z7xIIJRNZ
+gAAUt4wMaRH0wBG6EgCdAKSZLZKeDwIA96AUFFIAnQAlkp1kUkr5b2AFrZ8dAP7AAAUyvkEA/WAA
+FbDOOQDrqgIOZUKAAOshByzNAoAADJkCHLd59mAAR3q7AQDqmQIN3wKAAAy7AptQG7hDhyD4oEYV
+oEpFAOpWAydw/QAA++AAFT//BQD/wAQHcAiFAO4WByu+AoAACHcCl1GO4SggQftGAA1wDEUA+qDG
+FaF+AQDnxwwMRAKAAAmIAvlwXgXhdwEA98AAR3APBQDvVQoncPEAAJ4WCYgCLlULmFQYuCjoVgch
+aSEAAO0DHgLYgQAACwJh/kVEFaAJBQApVDUpVDb4puYd4AgFAChULv6l5h3gDQUA/KYGHeALBQD6
+poYd4AoFACpUMSpUMi5ULfqmZh2o7h0ALlQsKiBXKyxc+qdmHaiqHQD6p0YdqKodAPqnJh2oqh0A
+6lQ4ItDxAABZUIIpLGDpJgAC0QEAAAoEigkAiAoAiigiHB64BesUAALRFQAA+KpmHaHXAQD/pgAO
+uIgdAPiqRh2oiB0A+KomHaiIHQD4qgYdoA+FAP5Mph3gTiUA7iR0Lu4CgAD8IAYV4Aw1AFlQaadb
+Hbcejhf+RqQV4DhlACgkV4rg7OIBJ/gFAAAvJTUsVhcqVhaJ4ylWGYjiKFYYj+EvJhyO4Z4v7VYa
+I+AhAAAsVhsqIHQqtHQMaRH1IABEsAiFACiWnSsgFi8K/3+xByogQYwWWBTG7BICKVAEgADtEgEp
+2ASAAFv8jdEPHbcBithqoVoMaRGkmSuSnm64cyWSneRQb2Vb/QAAm9hlXb9gAAcsIEEszBKcFYgT
+/iCIFeBJdQD4QKYd4A4FAJ44nzeYOY0iZd+y2iDrEgUpYASAAFg51dEPAP/2BA2gBQUAnxj+ISYV
+oAoFAFlUVB225YrYjhnvEgglDjcAAP/+dA2gBQUAwFDAugurNPuhBhXv/joAAGwQBCggBPkAB7OS
+AJ0A9wAHchIAnQD6YGgd54UBAPUAB+kSAJ0AGbchii4pkn/ssgAtVkKAAKqZKJAFLbEI/EEEHeA6
+5QD7AAmUJ8wBACoKQvsACTwgPdUA/QAJxWBOdQAqIAX3LIAVr/cFAP1tygXgCAUA/0AJtCBPlQD/
+QAukYC7lAC4kVygkaCgkZvhGpB2vjwUA/kymHeBKFQD6ToYdoAmFACkkZCkkZykiHPlu8AWgWiUA
++EVEHaAIFQDoJFwkgDmAACgkaCokBYi7eNMyrL0t3D8H3QGN0A0NR2nRIi5hA3jjHNog7EQACugE
+gAD/YMgV4A4FAFv+6sAg0Q/AINEP2iDsRAAK6ASAAP9gyBXgDgUAW/0mwCDRDwAAjyeO+vvhCBXv
+xwUA7fILJ+CBAADnxwEKNwKAAKtqp92m7u72CibpAQAA+6AH+6IAnQDJN+m0AAIAqYAA2DBtSQUI
+AIYJAmEqwgAGqgj9QAk0YgCdAPuABhWv+roA2iD8oGgd4IxFAOy1CCpgBIAAWSk2wCDRD9og/IBo
+HaCNVQDttQgq6ASAAFkpMMAg0Q+KJ46qZOBbiKmKi3rTbwy/CC/8Pwf/AS/yAA8PR2nxXSuRNXqz
+V+okAApgBIAA7oIHKugEgADvggksWASAAFv+rcAg0Q8A6iQACdgEgADsRAAK6ASAAFv75cAg0Q8A
+AAAAAACKi3rTFay9Ldw/B90BjdANDUdp0QUukTV666fqJAAKYASAAO6CByroBIAA74IJLFgEgABb
+/NrAINEPAOvaDAGBsYAACk0U79wIKcAEgADvTzYNyASAANMPbfkFCACGCQJhCjgI7U4MA8kBAABt
+6QUIIIYJAmMKbwyvfy/8QP+ABhXv9lIAKHxA+YAGFa/2JgAAAABsEBYjFh8iFiArEiCMMCQWFC2x
+Fflh6BWnzAEA/GAAQ7/6BQDusAcjuP0AAAp3ASuyHPojBhXh7gEALhYZ6xYaJCPBgAAsEiCOcysS
+HyzBExO28vthaBXgCQUA85kQDevuAQCbUZlQLjJkKBIgDcoMKhYbIoEQL4ESJoERKIIW6BYAL/6C
+gACv7i4WHCoymu22chlgBIAA8E7QDe/19QD7QGgd4A4FAG0pIIJzj3Ki4n4rAbH/BfgBDSkB6bYB
+J3BDAADotgAl2CEAAPeABkqiAJ0AbQipiXT5YAAF8A4VAPvNAA32mQ0A+yAARPAOBQDkkKFsnQKA
+AArLC4J3j3ai4u4rBnZgBQAAsf8F+AENKQGZsei2ACdwQwAA4+PcddghAAB2wXGJdflgAAXwDhUA
++80ADfaZDQD7IABE8A4FAOSQNGydAoAACssLgnkvcggPAgCi4g0pAZmx7isHdmAFAAAv/AEF+AHo
+tgAncEMAAOPj13XYIQAA5sscc7hhAABj/08AAAAAAP7UfA3gDAUAYAAEAAB2yY0ftiQetj0UtckT
+tcosEiAbtb8XtcIpwSMoEhwswED9MAAUsAKlAPkAAERwDQUA6BYcLhh2AAAoEhgIZgwsEhopEhsK
+zAvsFh4km/mAACgSGQKVNgVcCeOEAA5nwoAA9QAUShIAnQAMixGnuyiynv0AHLOiAJ0AIrKd7SQA
+ARUBgAArEhspEiAFuwwokhwikRUqkSMIWAqlIqWqIpUVErWbKpUjKJYc4gAFDsgEgABtyQIJAmEj
+FhLrFhsik+mAACUWFy0WIYkQKhIc86BoHeACBQDsFiIszoKAAPgjphXgBwUAbVmsKxIdnjD8I8gV
+pVodAPRgZhXgCCUAmDIlEiAoEh+sfIlQ9GCGFaBNBQCdNZs3/yYADvALZQDtNgYszgKAAAuZApkx
+iIuYOPSh6BXgCQUA+GFmFeAIBQDoNgop6ASAAOU2CSlYBIAA5isjcaihAACPwY7A79YNJdgFAADu
+1gwm6CEAAOXREXZgIQAAdrPgwPD//3wNoA4FAB613x+1xOd8ICEQEQAA6qxAIZmBAAAtEiErEhcX
+tWHyIkgV4AwFAAy7NSwSIi4SGww/Eaf/7PadLwT+AAAuEhQpEiALsgnsEgApFsKAAPOgAEEwCgUA
+KpUVKpUT6pYcLmaCgACc4CyRIfsiJBWgCBUA+SgGHaBYFQAolAUMqgwqlSHRDygSIJtRmVAtgRTi
+hRAjKA0AAPcCJB2iVR0A5RYbLpp+AAALxBSzRAQkFOoSICIgDQAA7BQAClgEgABYCJsoEiAqFhwk
+hRQpEhwqEiDlpRMs5SYAAMAg0Q/scgEnAKGAAP+AAEYwBhUA/Z4AJaAAGgDAYGrBE/1gAAawDxUA
+/e0ADvbsDQCu3a1mjHAMDEfszP8rEASAAPef+zCSAJ0A3XCI1A8CAA8CAPlgAAcwDxUA/+0ADzaI
+DQDo7ggGY/0AAO5mCAYA4YAAjtUOCkv77QANNu4NAA6qCOpmCAZj/QAA7dwYJg7zAABj/xQatRKK
+qPdAFiCSAJ0ADDsRp7sosp79ABbrogCdACmynWSS1Bu1CbComLjtlAAM60YAANLQ0Q+Mcy4SIAwM
+S/3B5hWv7gIAAAAAAAAAAP/5tA2gCwUALBIgKBIfjM+IhwsAh/ghABXgBRUA/K0ADjyIHQD5gABG
+MAVFAG1aAgkCYSzM/wwMQeXAnGDIIQAA6WwLDNgEgAD8IqYVoAg1AOhoNA1gBIAA+CNGFaAIRQBt
+iicpEhV5uw2FwfmACBXgAEIAAAAAAPQAAh3gCQUAlbmZuOzMCCXYIQAAYACwACsSICgSFIIQLbUV
+LbUT/WOGFeAPFQAvtEAusSH9YiQVoFoVAOq0BSkWgoAAkoAOzAzstSEqkASAANEPAAAAAAD/8bQN
+oAIFAACxyOwWEyQpO4AAwLD5gAIC8AhFAOyIDA1gBIAAbYkxdrsMicCIwfgixhWgAD4AAMCQ+CLG
+FeAJBQDpVggl2AUAAOgSFiZgIQAA6FYJIqghAAAsEhPAswy7DHa7B/ojRhXgAB4AJhYaKRIZKRYS
+9SAIShIAnQAMmxGnuyyynveAC3NSAJ0AIrKd+EBoHeACpQDllAAEimGAAJ6QKRIcKZzACVkUmVMp
+EiD4IAgVoAslAJtSjJD0oIYVoEsFAOtWBSxGgoAAmFcPywL6oMYV4AhlAOsSHy5mAoAACMwCnFGL
+u/qhBhXgCAUA6ZIPIuDBAADpVgkg2IEAAPihZhWgCQUA+KFGFeAIVQBtigULAIgMAIooEhLrEhos
+RwKAAPcAAERwDGUALIade2sH8AAoDaAGBQApEhoJZgzoEiAjYA0AAPgjSBXizB0ALBYbKYYcKYUh
+LYRA/QJkHa/rTgAsEiArwRIqMmQswhbsFgAt3oKAAKuq+iOGFa/y/gCMOOoWIyYN34AAKxISDLsR
+p7sosp73AAQjUgCdACmynWSQe7DI+GEGFa/7tgD8JEYVoAoFAFlRyhq0XB60zIqoH7SxLBIi+V/p
+GJIAnQD/9OANoAkFAMCQGLRUAqs0+wEGFe/0ogAqEiDtpRMskASAANEPAAD/+lQNoAIFAMCgWVG4
+HrS6jDgftJ8qEiP5n/vIkA0FAP/59A2gCQUAwJACyzT6YQYV7/nCAAAAAGwQBhe1EoYw+uuIFaAN
+BQDuIAcpKASAAPhB6BWv8gUA/0BEFedmAQD9QIQVoe4BAOuhBSQOYYAAiaDv/P8mY/0AAO+lAi5n
+AoAA7JkIDd8CgAD7LwAM8ADWACuhBSyhBOmiACXYBQAA+Z/gFa+7AQDrpQUsRwKAAPuACORiAJ0A
+6JkIDf8CgAAPmQwJAIcNvWDpAAcF8xeAAC1yoSihBf70SBXgCRUAKVUT6VUULEZCgACouChVEuj/
+CAxGgoAA6N0ID2AEgADvVhYmilGAABu0BQzpEfXAB5ISAJ0Aq5kqkp73QAuTUgCdACmSneqUAASJ
+SYAAGbRy9mAARzWNHQDopgMnaP0AAPlABhXgDiUAnqIC3QEetFASs/fpUgAv/oKAAP9A5hXgSAUA
+mKWSpP8mAA8wAmUA7qYGLM4CgAACmQKZoYg7mKiJX/lBJhXgDgUAnqueqojTmK2O0p6siNMZtErt
+0gIkcEMAAHjrNAnpAemmDybABQAAmK7vRgAuRwKAAKuI8xOmFaBZFQDpVAUtEASAANEPAC2lBf/7
+hA2gCwUAGbQ5na4J6QGZr+9GAC5HAoAAq4jzE6YVoFkVAOlUBS0QBIAA0Q8AAB6zzIro90AEaJIA
+nQAMyRGrmSiSnvcABVNSAJ0AKZKd5JChZUP9AACY6OqUAAz35gAAYAAZpjkpnD8CmQGJkwkJS/ih
+5hXv+J4AwCDRDwAmURQjURLAQOoWAyMBUYAA6nJcKdgEgAD8AAIdoA0VAFgwmyhyXYoT5EwBIZgF
+AAAIMy52SdnSoNEPAAAAAP/6RA2gCQUAAJ8QnRH8IEYVoAoFAFlRER6zoxuznI0RiuiPEIwS+V/6
+sJIAnQD//awNoAkFAMCQwIoIqDT5wQYVr/1yAAAAAGwQGiggBOkgByk4BIAA+QAn05IAnQD3ACeS
+EAoVAOMWKSp/AoAA9OAABHGZAQDpFigkY/kAAOysOQwVhAAAhieOavrBCBXvwgUA7WILI2CBAAAC
+wgGr+gLdCA/uCO5mCibpAQAA+6ArO6IAnQDJN8lF6bQACcAEgABtSQUIAIYJAmEqwgAPqgj9QCx0
+YgCdACrGAPolJhXgDBUAGLO/iX4ogn/uEikszkKAAKmIKIAFLuEI/uEEHaA95QD9ACeMYEklAPkA
+J0xgOtUA+wAqtSBLlQAtcAX7oCt0YP71ACtwFn6xCypwQVgRMWSlhS1wBSJwB8Xx/6vmDeEiAQDF
+hHjRVSoSKRmzeYqrepMiKxIpjLAMDEesu/tn4BXv/AUADLsBK7IACwtH9WAioJIAnQDrEikr0ASA
+AO0cCCjgBIAAW/0TZKRPLhIpjxD/wSYV4A0FAJ3oLXAF8iTmFaBWRQD3oAsMIAMVAJMUFrOBJXEI
+LRIpG7QRFLQPGrOB/2gaBeACBQCSF5IWkhiSHiIWEiIWFCIWGi8WFfokBhWv+PUAKBYbKBYhJBYT
++iHmFeAONQD+IUYVoBulACsWHPQk6BWgDiUA/iEmFaAYtQD4IgYVoB7lAC4WFonbjNgsFhgGVQKN
+2ZUd/CMmFe9VjQDlFgws0gKAAPoj5hWomR0AKRYe9IAaIhIAnQAdsw8MTBGtzC/CnsBvdvMCIsKd
+ZCN3H7MNjXDuswoQyEEAAPTg5BWgFoUA/aAAEbAFNQD0ZgAJ8CUFAOWzARqCCoAA9UAAAjAKVQDu
+3QIKJwKAAOVEAglABIAA5bL7HpAEgABtqjeUgJOBn4KWg5KEipWLk4yQjZTukgIkyGEAAJqH+wEm
+FeCtnQD1hgAN8M6dAJuFmobshggkQMEAACoSJxuy5g8CAAyqEftAAEVwCfUA+VOmFeBYRQAodAUr
+Eif1YBIiEgCdAB2y3Qy8Ea3MLcKe96AcC9IAnQAiwp1kIqwZs6YvcQcWs6MTstX4JSgVqv8BAOxx
+Ii//AoAAA/8CnyCLcP1lpAXgXoUA/kBmFaADdQDtJgIt3gKAAAO7ApshiocqFiT5AMgVoA8FAC8W
+JigWJS91NS1wBS90Z/7sxh3gKOUAKHRX9uVEHaAOVQD+64YdoAuFACt0ZC5waProMBXvipUA+uym
+HaBGJQAmdHTrugkHcAUAAO50aC1XAoAAqpn5L+gV4F4FAH7RDsRudtEJxYb5oBY9IgCdAC8lCvjA
+AAb9TB0A+2bwBaLpQQDqJgcvdgKAAO7dAgolAoAA+AkCHeDpOQDpJQsvdUKAAATuAg7dAu6zah3c
+AoAADbsC7LNoHm0CgAAO3QKdJgy7AusmBCPBIQAA6AceASCBAAAEAmP85UQVoAoFAPpGZh2gCQUA
++EaGHeAIBQD4RqYdoAQFACQkNv5F5h3gCwUAKyQy/EWmHaAOBQD+RgYdoA0FAPxGJh3gDgUA/kbm
+HajfHQD8RcYd6MwdACwkLCtwV/pHgBWgDEUA+kdmHei7HQD6R0Yd6LsdAPpHJh3oux0A6yQ4I9lx
+AABZS7oofGDoJgABSQEAAAkEiggAiAkAii9yHCosVPov4BXgDMUA/kpmHej/HQD+SkYd6P8dAP5K
+Jh3o/x0A7yRQJdhFAABZS6kpcHQpJGQoEigZslgMiBGpiCOGnStwFiYK/3axCvroMBWgTIUAWBAW
+xKX64KYdoAIFANEPwCDRDx2yU43Y96ALmJIAnQAsEiceskkMzBGuzC7CnvfAC7vSAJ0AIsKdZCFu
+H7JIsN6e+GUtpWAATwAAHbJFjdj3oAs4kgCdACwSJx6yOwzMEa7MLsKewP//wAtL4gCdACLCnWQh
+YB+yOrDe/+EGFa/yfgDrEikr0ASAAO0cCCjgBIAAW/3zZauviHJlj3ArEijacOu8GCvgBIAAWDUV
+wCDRDwArEinacPygaB3gjEUA7LUIKmAEgABZJOPAINEPAAAAAOvaDAGBsYAACk0U7twIKcAEgADu
+TjYNyASAANMPbekFCECGCQJlCjgI7U4MAUkBAABt6QUIYIYJAmcK+AyoKCiMQPmABhWv6fYAKSxA
++YAGFe/pygArEincQPygaB3gilUA6rUIK9AEgABZJMbAINEPAAAAAAAAAOp0AAnYBIAA7EQACugE
+gABY973AINEPAP/yCA2gAgUAxdL84KYd7/TeAACOcmXukytwQdpw67wSK+AEgABYNN7AINEPwKBZ
+T2EdsfKN2Pm/9BiSAJ0A//p4DaACBQDAIB+x7cDqDt40/+EGFa/6MgDaIFlPVh2x543Y+b/0eJIA
+nQD/7TQNoAIFAMAgH7HiwOoO3jT/4QYVr+zuAGwQCMCl/WVoBaA7BQBZTukdsfj4QggVp2UBAOgW
+BSMVHQAAiDeOivRgaB3gBAUA6IIJJw/JgADTgI8iZPH3hlhlZAuKLxuypetWCyLAgQAA6KYAIUjh
+AACZWJpZ+EHmFaACBQDRDyjSsYiMFrHkFbHgKYECLYEE+wCkFaD+tQDrggAknYmAAOyc/ybL/QAA
+7IUCLM8CgADpuQgNVwKAAPsvAAywANYAKYEFKoEE7IIAJMgFAAD9X+AV75kBAOmFBS7vAoAA+UAK
+nGIAnQDtyQgM3wKAAAuZDAkAh8CgCqpg6QAHBXMPgAAvIAwogQUtIAcmYijlUqssRkKAAKioqGbo
+IQcrNkKAAKZVLFAHJiANKFUH+KDoFaDdEQDuzAEO74KAAA3MAvyg5h2g/sUADswB/EDwFe+ZlQAp
+VAWSWi9UDPahph2gCwUAm1mbWPtjAAXh3QEADcwCLFQHiI76AAgd4AnFAG2aAggCYfKsUA3vywUA
+h1eGeox47nILI+iBAADr2wEKfwKAAKz6q+7vZggOSASAAOZ2CidxAQAA+8Al26IAnQDJM8lBbUkF
+AwCGCQJhitAPAgAPAgCvqv9AJzQiAJ0AmtCGUOjCACtOAoAACUkCFLGH+YAmFeeIwQAoVHQkQp4t
+wQjkZAwOGASAAO1VCCIgBQAA9WAABbaUHQDksilsykKAAAQIRQmIAvijZhWv+KIAAAAAAAAAAPgA
+Ah3gCwUA+wCkHe/6lgD/+BwNoAgFAAAAHLIq/GEEFeAKVQD+oQQVoDsFAFlOWi4wKC0wKRyyJP3A
+ABcwClUA/6YADrA7BQBZTlMcsiAfsWH+YOgVoApVAPZgyBXgOwUA/iBmFaAmBQDv8rErAgqAAP4g
+hhXg150AWU5HGbFVKZJOwIDnFgIkjXmAACQWAY4Ujuwr4QSE4Pt/4BWv2DkA7eUFLWcCgADsTAgO
+zwKAAAnJDAkghwgGRv/AZBXgCRUABpli/SQAR1b/AQAM2REJyQwJQIf2AAIdoAkVAAaZZPUgBYdS
+AJ0AfakEyPF58VsWsTsUsTjmYigu1kKAAKqZJEKrqWYJZhGmRIpHi6rpQgolhWmAAIyp8yAG7SIA
+nQCOEovCjcMOuwyOE/oAIh2gBwUAC6c4/68ADrAJBQANqTj44AWmYgCdAGAApAnaEeqaCA23AoAA
+/cCkFeXKHQDmRggOZ4KAAPzPAAswBBUA9t+AFaSqAQDqYgAtAQqAAPyAAQJf/PUADEwDDKoBCkQC
+lGCE4OvhBCboBQAADQ1PLeUFe9EMsLoMrBH8gABGP/x6AMDQLeUF//+oDaANBQDzJt4NoAwFAPog
+SBWgCQUAh5KJkwp3DIoT9gAiHaAOBQAHbjj7LwAMsA8FAAlvOH/gB/SNXg3gKQUAGrD2KqJOsYj7
+H/RTogCdAGAAKgAAAP/3dA2v6KUA6iQACmAEgAD7Y1gF4A0lAOs2ASnYBIAAWA3ewCDRDwAcsaf+
+IGgV4ApVAP4gSBWgOwUAWU3TwKX9Y0QFoDsFAFlNz8Ag0Q8A/YBIFeAKVQD0IOYVoDsFAO7CAyyC
+CoAA/WMyBaDdnQBZTcWEFxyxlvyACBXgClUA/oCwFaA7BQBZTb9kT6+IR46KyOf5ASgVoAAiAAAo
+CgAcsY0tQhv/AGgV4ApVAP8ASBWgOwUAWU20JyAH+kBoHaF3AQD64Ggd4DwFAFgDReoWACVZ+YAA
+KDwg6BceDUgEgAAJAmsIgIYJAmkIYIYJAmcuEgAcsXknFgb9wBAV4ApVAP/AMBWgOwUAWU2fiRWG
+ECmSE/jDZh3omR0A+MNGHeiZHQD4wyYd6JkdAClkGCgiFoMW+MPmHaiIHQD4w8YdqIgdAPjDph2o
+iB0AKGQcLlIbHLFi/CAoFeAKVQD+wmYdqP4dAP7CRh3o/x0A/sImHej/HQD+wgYd4DsFAFlNgo8Q
+JkIb9+LmHahmHQD34sYdqGYdAPfiph2oZh0AJvQULkIc/+RmHajuHQD/5EYdqO4dAP/kJh2o7h0A
+LvQgHbB5DDwR/YAARnALVQCbwCwgFioK/3rBNisgB/dg5gXiqgUACrodp6cncn/BjwyIDPjgBJIi
+AJ0AH7Bt9YAAFrA2BQDm3QIN9wKAAK/uneCIWGSOD4pZwJCZW5igi1iasZlY+KEmFeACBQDRDwAA
+AAAA7OoMAYGxgAAKThTm7AgpwASAAOZGNg5IBIAA0w9taQUIwIYJAm0KOAjuRgwFyQEAAG1pBQjg
+hgkCbwr4DKi4KIxA+aAGFa/skgApvED5oAYV7+xmAB+wTAzNCh6wTK+vD90Lrt0r0X/7egAV4A4F
+AA67Nfuv5B3v/Z4AAGwQBCogBP1A4AvQGHUAa6QKeKEfwCDRDwAAAADqJAAJ2ASAAOxEAAroBIAA
+WPaVwCDRDwDqJAAJ2ASAAOxEAAroBIAAW/44wCDRDwBsEAbEcvlhtgXgBgUA9iAGFaAFNQD4RUQd
+4AsVAPpisBWgKOUA6CRXIgMhgAD0gATIkgCdAGhCQPSAByGSAJ0ACmsUe1AFLDAULCRgKixl7bDm
+GNgEgAD8IAYV4Aw1AFlJRSYkaCYkaSYlNSYmHCckdB6wQS4lN9EPwIb4S4YdoA+FAP5Mhh3v/uYA
+AAApMDDBotMPepFo6yRkIVF1AAD8AGIdoCslAOskXCHYdQAAWUkxKixh+mMgFeAMNQBZSS0qMBVj
+/3kAAAAAKixd+mOgFeAsBQD8TIYdoA0lAO0kXCrgBIAAWUkjLjAYf+fRKixh+mMgFeAMNQBZSR5j
+/8AAH7AkKDEcL/J/CYgRqP8o8TYoNRyP8P5DxhXv/fYAAADosJwa4ASAAPpMhh3gKTUA6SRcIVGV
+AADoFgAo2ASAAFlJDCYkaCYkaSYlNSYmHCckdNEPbBAG9OAABHAHBQDmIhAkFFUAANUwiyJkseqM
+WGTBwsAg0Q8AGK/rKIKJiIwVr+kpgQIqgQUtgQTrggAklwGAAOyc/ybL/QAA7IUCLM8CgADpuQgN
+VwKAAPsvAAywANYAKYEFKoEE7IIAJMgFAAD9X+AV75kBAOmFBS7vAoAA+UAKrGIAnQDtyQgM3wKA
+AAuZDAkAhwenYOkABwVzF4AAKYEFGK+4LiAMLyANKIIo5VKDLM5CgACpqamI7CAHLEZCgACoVStQ
+ByghB/ig5B2g/bUA+KDoFaDMEQDtuwEOZ4KAAAy7Avqg5h3g/cUADbsB/EDwFa+ZlQApVAWSWpdY
+J1YJL1QNLlQM/17oBaHMAQAMuwIrVAcogg7+AAgdoAnFAG2aAggCYeRSMWpHAoAAjleYEY3q+8Fo
+Fe/JBQDs4ggneIEAAAn5AZkQrIqpu6jd7eYKJdkBAAD7YBEDogCdAMow6cQAAgDxgADtEgEpwASA
+AG1JBQgAhgkCYSryAA8CAA2qCPtAEiRiAJ0AmvCIUIrA6a+PHF4CgAALSwL7gCYV56rBACpUdCmS
+di/BCAmIDO9VCCRABQAA+WAABzaYHQDk4U9sykKAAAgIRQmIAvijZhWv+QoAJ4UF//qgDaAJBQCM
+Lx2wLe1WCyLQgQAAmsDsVgkhWOEAAJtY+kHmFaACBQDRDyQgBw8CAA8CAPpAaB2hRAEA+oBoHeA8
+BQABEQJYAd3krfJhwMEAAOgPHg1IBIAACQJnCECGCQJlCCCGCQJjKaAA6GITJIbRgAD5Q2YdqLgd
+APtDRh3oux0A+0MmHei7HQArpBgpIhYnpAT5Q+Yd6JkdAPlDxh3omR0A+UOmHeiZHQAppBwoUhv5
+QmYdqIgdAPlCRh2oiB0A+UImHaiIHQAopBAfrywMThH/wABHcA1VAJ3gKCAWLAr/fIE2KSAH+15M
+BeKqBQAKmh2rqyuyf8HPCMwM/WAH4iIAnQAdrx/1AAAVsD4FAO67AgznAoAArcybwIhYZI0hj1mX
+W5jwglifIZdY9qEmFeACBQDRDwD/+twNr+ilAPTgaB3v+B4A+UNmHa+LFQD7QCYd4A0VAP1ABh3o
+yB0A/UNGHajMHQD9QyYdqMwdAOykGCRIBQAA+MJmFe/8RgDqJAAKYASAAO6vxBnYBIAA/mAmFaAN
+JQBYC/bAINEPAOy6DAGBuYAACksU7bwIKcAEgADtTTYOSASAANMPbdkFCICGCQJpiRCqOOtODATJ
+AQAAbekFCKCGCQJrjRGLEArdDK27K7xA++AGFe/3HgAAjhAu7ED/4AYVr/bmAByu5AiJChuu5Kys
+DJkLq5kvkX8v/NAH/zX/L+Qd7/wKAAAAbBAGKCAE/QDgC9AZdQBrhF55iRv04AAFcAcFAOYiECUU
+UQAA1TCNImTR/45YZOHXwCDRDxiu6CiCiYiMFa7mKYECKoEFLYEE64IAJJehgADsnP8my/0AAOyF
+AizPAoAA6bkIDVcCgAD7LwAMsAE+AOokAAnYBIAA7EQACugEgABY9+PAINEPAAAAKYEFKoEE7IIA
+JMgFAAD9X+AV75kBAOmFBS7vAoAA+UAKjGIAnQDtyQgM3wKAAAuZDAkAhwenYOkABwVzF4AAKYEF
+GK6vLiAMLyANKIIo5VKDLM5CgACpqamI7CAHLEZCgACoVStQByghB/ig5B2g/bUA+KDoFaDMEQDt
+uwEOZ4KAAAy7Avqg5h3g/cUADbsB/EDwFa+ZlQApVAWSWpdYl1kvVA0uVAz/XNQFocwBAAy7AitU
+B4iO/gAIHaAJxQBtmgIIAmHkUi1qRwKAAI9XmBGO+vvhaBXvyQUA7PIIJ+iBAAAJ2QGZEKyKqbuo
+7u72CiXZAQAA+2AQ46IAnQDJPOnEAAIA0YAA7hIBKcAEgABtSQUIAIYJAmGK0A6qCPtAEiRiAJ0A
+mtCIUIrA6a6HHF4CgAALSwL7gCYV56rBACpUdCmSdgmIDOnBCCRABQAA+KEEHev4AQDx9SAN5pgd
+APUoABS1iAEACYgC+KNmFa/4tgAnhQX/+rANoAkFAIwvHa8k7VYLItCBAADqxgAhWOEAAJtYnFn6
+QeYVoAIFANEPJCAH+kBoHaFEAQD6gGgd4DwFAAERAlgA1mSt4+mkAAHAwQAACGCGCQJnCECGCQJl
+CCCGCQJjKaAA6GITJIcBgAD5Q2YdqLgdAPtDRh3oux0A+0MmHei7HQArpBgpIhYnpAT5Q+Yd6Jkd
+APlDxh3omR0A+UOmHeiZHQAppBwoUhv5QmYdqIgdAPlCRh2oiB0A+UImHaiIHQAopBAfriUMThH/
+wABHcA1VAJ3gKCAWLAr/fIE2KSAH+1w+BeKqBQAKmh2rqyuyf8HPCMwM/WAIEiIAnQAdrhn1AAAV
+sD4FAO67AgznAoAArcybwIhYZI0Uj1mXW5jwglifIZdY9qEmFeACBQDRDwAAAAAAAAD/+uQNr+il
+APTgaB3v+C4A+UNmHa+LFQD7QCYd4A0VAP1ABh3oyB0A/UNGHajMHQD9QyYdqMwdAOykGCRIBQAA
++MJmFe/8LgDqJAAKYASAAO6uvBnYBIAA/mAmFaANJQBYCu7AINEPAOy6DAGBuYAACksU77wIKcAE
+gADvTzYOSASAANMPbfkFCICGCQJpiRCqOOtODATJAQAAbekFCKCGCQJrjhGLEAruDK67K7xA+6AG
+Fe/3HgAAjxAv/ED/oAYV7/bmAB2t3AiLChyt3K2tDbsLrLspsX8pnNAHmTX5b+Qd7/vyAAAAbBAE
+FK3siCjykSgV75llAPhAph3gBQUA5SYKJAC5gAD6AEIdoDsFAOytzxloBIAAWUq7KiIeKEJ2hCDo
+RAwFfcaAAIkni5rksJVk0IEAAIuZjbENDUf7oGgd4AwFAFgq4h6tlu4ABQFIgQAACQJhCQJhCQJh
+CQJhCQJhCQJhiCf/BAAV78kFAAn/AeWGCif5AQAA74YJKlgEgAD/AQYV4AwFAPphiBWgDRUAWCp5
+0Q8qIhkrIhj+bggVqAA9AAq6GAoKTwqqD/9AAQUwDAUA+0AIFaANFQBYKm5j/2UAAAD//bQNoAsF
+AGwQBMCQGq2TBAhH51wvLEcCgAD7AABENHcdAJeAJCAW8kDwFaAb9QD7WxgFoPb1APaEhg2iqAUA
+CCgdqooqon8Euwx7rSscrYUIShDqWgIJXwKAAKy7mrCCOOsyCSEAkYAAmTuSsIw4m8GZOJk50Q/R
+DxKtfQROCh+tfaKCAu4Lr+4t4X8F3QwJ3TX9z+Qd7/8mAABsEASIIsiDwCDRDwDorVESMEEAAPSF
+4BXncwEA9OAMehRVHQAMehGoqCmCntMP9SAPU+IAnQAqgp1kocssIhgdrW2IKfpBSBXgzEEADcwK
+LMKoCLsMLSAipMT1bdINoAkVACwgIxetvQ3MDOTBtWPrAQAAKyAHCwtBDbsJK70CLrEGDO82D+4M
+LrUGLCAir8z+QWgVp8wBAOwkIiYNIYAAK3J/4LEEBmv9AADg3RoM2AqAAO3uCAXb/QAAC+4CLiYK
+CO0M9aAMI6IAnQAoIBb7WqQF4P71AO6BYXQ4QQAALCAHLiqgDs4dq+stsn4AcQTnsn8s+AqAAA/d
+AR+tNg13Aie2fx2tRgiHCq/uDncLrXctcn+x3S12fyuygACBBACYGvlgBdCiAJ0AGa06DM8RCf8I
+L/IAD4gBZIC6G60BH60FHK0x6wAFDUAEgABtWQIIAmEuIQcODkrprQEfdwKAAA/uAp6giyCZopaj
+7LsCDe4CgACbpA1dAp2hKCIYH60k+AgABzKIUQDmiBEPdoKAAAjuAg/uAp6nLCIVjSmkzKTdnSns
+JhUlEIEAANEPABys7onI9yAHwJIAnQAMehGoqC+CnvXgCCviAJ0AKoKd5KD8ZNv9AACbyGWuX2AA
+KAAtfQIu0QIs0QEt0QUOzAH9n/oy4AgVANog7CQAAdhJAABYL8LAINEP2iDsJAAB2GEAAFgvvsAg
+0Q8AAAD/+GQNoAoFAC4gBfXf7uCSAJ0AjyLAggj/Av5ARhXgAgUA0Q/egPhBRhWv+e4AAAAoIAcb
+rVP/jwAOcYgBAAuLCewkIiXYCwAAKrEGr6oqtQYsICLMyYkp+EFGFeAAngAALnJ/iivg4QQGa/0A
+AODdGgzYCoAA7aoIBdv9AAALqgKaKtog64wfKWAEgABYL5jAINEPwKBZShscrKyJyBispfk/99iS
+AJ0A//xADaAKBQDAoMD6D580/4EGFe/8BgBsEAYZrXbikl0pcASAAO1EAAngBIAA8mAIkqAPBQAl
+klyVECtRBOVSACYj/QAA8k8ACfAIFQDsuxEOEASAAPVgAEXwADoAsf/z4AcEYgCdAA9WFA5mEQa2
+DCZt//bH6BWkrwEAAKEEAIka6WYBDQIKgADyQCAVoWadAP7cjA3gCQUA6ME8Z7AFAABtSS4GVxQO
+dxEHtwwnff/25+gV5FYBAABRBACKGup3AQqCCoAABwcZ5XAGYzAFAACxmQnKDGmhg2TAR4cQKnEE
+Kfr/7KoRD5gEgABtyTTy4AgVpUMdAP6QABI0UwEA4FEEAZgFAADqIggMKAqAAAQiDOlSAwEj8QAA
+hkACYgECUgKSQBKtMyzlEygioi/lEiIioaj4mNDo5hYvroKAAKUi0Q8ZrSwpkqIs5RMv5RKp+ZnQ
++cLGFeACBQDRDwAAbBAMkh2CMIwdlBH7gmQV5yIBAPJgAEE/+QUA5MAHIRD9AAAJIgGKI+zBFSnA
+BIAA/CBGFaFEAQD5WiwF66oBAOoWDC2gZgAAiyHntAAFHFGAAKq7+34AJeAGFQBqsRT7YAAG8A8V
+AP3tAA726w0Art0NZgiJIAkJR7CZ6pFVaxgEgADbIG0ISIy0sJn/YKgV4A4VAPeAAEP7rAEA+80A
+DTbMDQD9QABFO98BAOpmCASAyYAADe059+AAQ/b/DQCv3e1mCATL/QAA67wYJIwfgABj/7CKHSOl
+ECalESmAE2STPZdRih36wGAV4AwFAPygBhWiux0A6xYIKOAEgABb/26OHZoUjRjt5RQlFMGAAO6s
+cBnIBIAA8nFQDe/19QAarNwqopr5QGgdoA8FAG05IIsjgyKr+3+7AbEzBTwBDr0B7YYBJ/hDAADs
+hgAkQCEAAJQe9yAFwqIAnQD0ACIdoAwVAIgkCAtL+40ADfaIDQD7AABEcA8FAOSNNQQBoYAACpgL
+bdopiyeDJg8CAKv7Dr0BLYYB77sHdMgFAAAjPAHlPAEH+EMAAOyGACRAIQAA9ysmDaAMFQAoIgUI
+C0v7jQAN9ogNAPsAAERwDwUA5I01BAGBgAAKmAtt2iWLKYMoq/vvuwZ0yAUAALEzBTwBDr0B7YYB
+J/hDAADshgAkQCEAACIsGPc/+tOgDBUAhB6PEu4SCC/GwoAAqKiYGYgU6vkRD/+CgAAPZgypiOgW
+BCcTQYAAwFoF6jaaFwqqCeQWAy1XwoAAmhb0gAyiEgCdAIgTGau2DIgRqYgsgp77gBF7ogCdACiC
+negWBSQQyYAAiBWJFowXjh2LGBqrqC3hFQy7DJsYrN0t5RUKAIdtmQIIAmGOF9MPZOGNFKuoGKwa
+EqwA/CCoFaAJBQD/wACGsAUFAP4gCBXgAyUA6hIELu7CgADtzAgOWASAAOwWCy/+goAA/iFGFeXq
+HQCMHJiwk7KPGZ6zjR2OGq9fjdDktgQlUQEAAPdhBhXgQwUA7LYJIqiBAADzYKYV4AxlAP9g5hWg
+AwUA82FmFeAOBQDutgotmASAAOLeAg7uAoAA7rYGLPAEgADs3QIEyBEAAP1gJhXgDFUAbcol98HS
+DaAEBQCE8f3gCBXgABoAwNCUPe02DCdwBQAA7/wIIZghAACMGxSrc/tsABXgAyUA/X/65SXqHQCN
+F8DgDt01iRMaq2iPGOgSBizPAoAAqpnolp0ngEmAAMAg0Q8AihCLEYIV7dgJDVaCgACasIsdC4gR
++EAAQTAJBQD5YqQd4FoVACq0BdEPAAAAAAAA//IADaAGBQATq1mOOPfABniSAJ0AiBMZq0/sEgYs
+RwKAAKmIK4Ke/WAGa6IAnQAogp1kgMSw6Zk46BYFLHLeAABgAGgAAAAA9wDGFe/y+gD//XgNoA0F
+APDBEA3gCQUAGqwWlB77U0gVr/RqABqsEvtTSBWv9w4AKZJkihKGHfZgyBXgDAUAnFCXUSxiFgq6
+DJoYKmESnBAjYRDmYREtVoKAAKqZ+CCGFe/yOgCCFdEPAAAAAAAAAP/3UA2gCAUAjh2CEPggKBWg
+DwUA/8KkHeBdFQDt5AUpFoKAAJKA0Q/AoFlIkI44+d/5UJIAnQD//RgNoAgFAADAgAXpNPhhBhXv
+/OIAAAAAbBASHqtMJuKJkh0iYl0nYl/0zSgV55UBACtiXisWEvUgLikSAJ0AjzeM+pMe5MDvZ+iB
+AACD+Y8xkxiI0///4BXvzgUA/6AEBzffAQDujggO7wKAAK096tQAB3EBAAD/oEDqogCdACoWFIgd
+ioLoghAlAHmAAIkeiZhklULAINEPhB2NGIoeJEAHmBPqoh4m6MEAAPwgBhXhRAEAlBLzQCLfUAMV
+AI4YiB6P4CqCGfkDCBWgCwUA7RYELeAEgAAKPDj4YgANt/8BAK/uLhYV/WAruKIAnQAoEhSIgZQS
+lBeVERmrxxuq2ZgZ6BIOKlcCgACrqpoc+iKoFaAMBQAsFhcpFhHogholWQEAAOsWBiVQ4QAA+iJm
+FaAA2gAAAAAA//xMDaADBQCKHIweiR8npp0owhoJiAzoxhokI5mAAIwZwLGbGqw8nBmNGmTTro4X
+wPDvFgosMASAAPXAGtoSAJ0AwJQJiTaIHOiCnizOgoAAKZwnCUkU+QA4a+IAnQCEHCRCneQWCyI2
+yYAALxIRKhIV+iJIFeAJRQAJaTaOrZkf+0GIFaAFBQDi6wgNggqAAOu8/yzPgoAA+CLGFeG7nQD7
+IQAM96oBAG2ZaCsSFIuyJhIUJBIX5LH1YqgFAACGYCwSFSkSFO2rAhMPKYAAi88GJwwOdzYNuwH7
+geYV4AgFAJiSKRITKxIVJhIV6QYAD8AEgAAIAIqIbo69hm+oRAfuDKYmlr/iawZ3+CEAALFElL6e
+vS8SFttQ/qAFlGIAnQAsEgb5X+AVoA0FAOgWECQE+YAAJRIS/iIoFeCNAQAMhgqOYCkSFg+/C+Lu
+CAqCCoAA7IULB3P9AAD7LwAM8e6dAO6ZNgboBQAA6RYYItAhAADTD22ZM+QSFy0YBIAA4yYAD/AE
+gAAOBIqJUodTg2CpRKcn4nsHd/ghAAAkTAGUUpdTAyk2CTkMmWAvEhgpEhD6IsgVoA4FAA/+Oa67
+e6ENKswYCKw5+b/7TWIAnQCFHYgZjRuLHxmqzJnQ/XAAEbWIHQD5oGYVpXMdAJfShVDuqlIRuJ0A
+AP+ghhWkdx0A49YFKuYCgAD85gAOMA8FAOzWASXvmYAAKRIUiBuLHo0RHKqfK7IbihgMXAINuwGN
+HyqiEemSACwgBIAAbdkNnIabh5qI6YYJJEEBAACMH8CEZMFAbckXDAEwDAAxLMwmLM0BDAExAAIA
+DAIwLMwB/CLIFeAJBQD4gWYV4A4FAP6BRhWgBgUA/eWSDeAFBQAVqxWx/wX1C+mqjhKoFwAAJlI7
+JVI6+MAEA3AAOgAAAP5BAAu/+MIAKRIWlk30gYYV4AYFAPnkUg3gBQUAFasFsf8F9Qvpqn4SqBcA
+ACZSOyVSOvjABANwABIAKRIWlk/0gcYV4AYFAPnkkg3gBQUAFar5sf8F9QvpqnISqBcAACZSOyVS
+OvjABANwABoAAAApEhYmRhH0ggYV4AYFAPnkUg3gBQUAFarrsf8F9QvpqmQSqBcAACZSOyVSOvjA
+BANwABIAKRIWJkYTJUYS+eQSDeAOBQAeqt8O/gvpqlkXcBcAAC/iPS7iPPngBAfwABoAwPAuRhTv
+RhUiIQEAAOiMBCx4BIAAY/xuHanqjdj3oB5wkgCdAI4cwPQPbzbu4p4v/oKAAC/8Jw9PFP/AHlvi
+AJ0AhBwkQp1kQ8AZqd6w2JiY5BYLKmS2AABgA2OKHfogSBXgPAUAW/x97qQABVtBgADoEgAtaASA
+AAhAhg0CZQgghg0CYwgAhg0CYcDxL6QAih0sohaJE/3D5h2gDQUA/cCGHejMHQD9w8YdqMwdAP3D
+ph2ozB0ALOQcKJITCIsU+8NGHei7HQD7wyYd6LsdACvkGIseKOQbL7Ib7BICJEAFAAAolhP/wmYd
+6P8dAP/CRh3o/x0A/8ImHej/HQD/wgYd4D0FAFv8MMAg0Q+KHimiHsC0C5kC+UPGFe/uNgCNHY8e
+gt8YqpDo9gsn4IEAAOwmACbw4QAAnviS+f2h5hWgAgUA0Q8Aih1YBxaaFeoWDiUWaYAAiqfbMOqs
+ICpgBIAAWCqAjhWaGIzgKKEI7aIAIkgFAADv4gcuZgKAAP0mAAywCwUA+UAmFefdwQD9zoYd4AwV
+AOjlCCfQgQAAWCpx+iKGFa/okgArEhWLv8fPDHwDDLsBLBIUihibwCqiEauqKxISqirgsAQFU/0A
+AP4hyBWhqp0As60NLRQt5hpZLWwYqmUbqmEXqmLvqi4VYA0AAP1UvgXizB0AB8cBD88BDc0B+4AE
+BfAOFQAL6zkN7TkP7zkH5zn5gAQGMAolAP3NAA4wCAUA+QBoHeAeBQDsqTkMUASAAA/qOfjmAAvw
+DIUA7mJvLEgEgAANyTn7JgAMsApFAAuoOQmIAgh3AvfAEiPiAJ0AKWJwB3gPCYgKiIAtgQJk0j4q
+gQSPgC6BBenc/yVr/QAA6YUCLu8CgADt/QgPdwKAAP+vAA6wAL4ALYEF74EEJugFAAANDU8thQX9
+4AeUYgCdAImAsPoMqhHqnQgO9wKAAA7dDA1gh8DgDu5m7WAHB3MngAApgQXgfxEMzkKAAPnAAET/
+14EA+aYADvAIBQCLHg+OAvoAAh2gDxUA++0ADT+IjQD9BgAMd94BAO62GS7gBIAADfw5DKoC6LYY
+LQq2AAApYnD6IcgV6AA9AA6NGB6pVyqyHv9gCBXv3QEADd0PA6oCKrYeLuJ2Cd0KitYO/gyx7g4J
+S+qIKASCqYAAitQOD0X5QABHNp4dAPUoABS/7gEA6f8CD3aCgAAP7gKJHisSFC6WG4zR47YCLEaC
+gACoyPlgJhWv4nYAAAAAAAD8AAId4AoFAPsApB2v/BoA//8sDa/upQAAjB2LEurEAAXYYQAAWCvm
+LRIUjBn9oCYVr9/2AAAAAPmvAA0/344A/+PgDaAEBQDAoFlGYh2o843Y+b/hQJIAnQD/8TANoAQF
+AMBAH6juwOoO3jT/4QYVr/DqAAAAAADyIQYV4IjlAIod+CEIFeAMJQD9AAAUMA0lAP0GAAxwDSUA
+6JYBLNgEgABYBfKOHvvfvFASAJ0AiOjIjovpwJCZ65iwjOibwZnomemNFI4Yih6N0Z3hW/sawCDR
+D8CQ+71AFaAIBQD74gAMMA4FAAn+OHjgNIwY+4AoFeCI1QD7gaYV7/4aAAAA/gACHeANBQD/+QwN
+oBhlAP4AAh3gDQUA//jMDaAIJQAAjh6MHfqDABXgDwUA/8MmFeANBQDt5hguUASAAFgroGP26gBs
+EDYiFlgoElgogAQjFlflFlYkLGmAAMJQ+QAry5/PBQD3ACuKEgCdACwSVysSWCbCACmwBywWUCsW
+WfggAAT3ZgEA5hZRIzGtAAD4KUYV5GYdACYWUvUAYpoSAJ0AKBJZKIAFLQpO/QAprGIAnQApClF5
+gSsrClR7gSUqElkrElDsHAQg6CEAAFv8QvtAfeASAJ0AKhJQKBJZiRGZpyiABcW0+wAPVGIAnQAm
+ElkSqWAeqV4TqS7yIeYV4AoFAJoX+iVmFaAHNQCXGvYmhhXgCQUAmRb4JUYV4D31AC0WJPwkxhXv
+9PUAJBYbJBYh/iKmFaAIBQD4JcYVoAwVAJwU8iJmFaAbBQD6JQYV4BK1ACIWEPwqCBWsCwUAKxYl
+KxYnKxYt/ilIFaAIJQD4ISYVoAQFAJQYlBwkFg4kFhL0IoYVoB3lAC0WFiQWGPQjRhWgCGUAKBYx
+JBYwJBYyLhZTJBY29CcGFaP59QApFiwpFjkXqJ4mYQgaqKEqFiAmFjf2IaYV4BulAPojhhXgGRUA
+KRYi/4DIFeAH9QAnFjMswgfsFhkvkgKAAPIj5hWo/x0ALxYe9cBSwhIAnQAjElMWqEAMMxEGMwgt
+Mp4uCht+0wIkMp36gHIgEgCdABaoNdhA9gAIHaAZtQBtmgIIAmEnElkfqDfmqDQQyEEAAPLgCBWg
+CpUA53EHKoIKgAD5UFoFoAU1AOYiAgkeAoAA9GYACfp3AQDlqCkbvwKAAPjmAAuwFoUAbao3l0CT
+QZ9ClkOSRIqVi5OMkI2U7pICJMhhAACaR/qBJhXgrZ0A9YYADfDOnQCbRZpG7EYIIiDBAAArElMc
+qBPpElkt3wKAAP1gAEWwGrUA+3OmFaBYRQAolAUrElkPAgArsBYsCv98sSMsElYqEln84AAGMA0V
+AOqgQSZj+QAADNw5WAXb+0Bo8BIAnQAtEkotFlMPAgD1oEf6EgCdABan+gzTEQYzCCYSUi8ynvfg
+aWOiAJ0AJDKd+oBmSBIAnQAWp+4pElLmAAUKQASAAG2ZAggCYSgSVyoSWflRcgXgDgUALhZA+UVE
+HeAr5QD7SuYd4AxlAP1Lhh2gDYUALaRkKIAV0w/4zgAMMAc1APjgZcCiAJ0AKhJZHKjH7BZAINgH
+AAD7TKAVoAw1AFlBJSkSUigSWSwSUf9QRgWgDwUAL4YcL4U1LoU3/QDkFeBOJQAuhHQep87/DSYd
+6t0BAO+EaC7vAoAADt0CnUCKgBuny+tGAiZhMQAA7EYDLVYCgAAKmQKZQS6AQS+BIh2ojw7mCeiA
+BSs3AoAApt39r+gV4FYFAHaBDsRudoEJxXb3AGK1YgCdABmohyISURWohPzAAAVybUEA+VEGBaAD
+BQDygUQd4L05APiA5hWtzx0A5MwRDd1CgADsuwILbgKAAO2qAg/lAoAABcwC7EYGIRDxAAAiRQsL
+qgLrElkvRAKAAAqIAgmIAuhGBCWxIQAA5gMeAiiBAAAFAmH9ZUQVoA0FAPyGBh3gDgUA/oYmHaAP
+BQD+hkYd4AUFAPSGhh3gBgUA9oamHaAJBQD4huYd4AoFAPqFxh2gCAUAKEQ2LEQt8oXmHeADBQDy
+hmYd6MwdACxELCiwV/qHgBWgDEUA+IdmHaiIHQD4h0YdqIgdAPiHJh2oiB0A6EQ4JdlxAABZQMUo
+ElntTEAkQYEAAAggiA0EiggAiA0AiiwSWSzCHCsSUPyKZh2ozB0A/IpGHajMHQD8iiYdqMwdAOxE
+UCJRUQAA7BJRJdjBAABZQLIvElErElmvTy6wdC70WC0SUx6nX+wSUi7vAoAArt0s1p0rsBYtCv99
+sQ0qElnqoEEpYASAAFgFGyoSWSgSUCkKRSmkBSiAEsqEHKeBG6hEHahFKhJZC4soW8QdKhJZW8QA
+wCDRD8HHfIEIwdl9gQPAINEPF6eBInKJJhJWIyJdJSJpKCJfKSJeKRZc+CjmFadmAQD0wDQxEgCd
+ACkSV42XiNopFlTkgSJmyIEAAIvZjrGNk+sWSydz/QAA/yAEBneeAQDs3AgMzwKAAKm56pQABmEB
+AAD9IE0SogCdACoWXikSWIqS6ZIQJQGpgAAqElSKqGWveSwSWC4SVI/PEqgT4uYLJ1iBAADr9gAm
+aOEAAJ3on+n7geYV4AIFANEPJBJYLhJLJhJUJEAHKRZE5mIeJ3DBAAD+KCYVoUQBACQWQ/LAJI9S
+AJ0AKRJLLBJULhZFipAtwhkswhj6ACId4AgFAP1iAAxwBwUA/WIAC7eqAQCqmSkWX/jgNgiiAJ0A
+KRJeiZEkFkMpFkwkFkglFkImEl8oElQfp+scpv0vFlvoghoqXwKAAOy7CANRAQAA6hZGIzDhAAAm
+Fl36KeYV4AsFAPosJhXgAQYAAAD/+4ANoAsFAAAAACoSTy4SVCkSVS+mnSjiGgmIDOjmGiQlAYAA
+LBJMLRJJwLErFk2s3CwWTC4STWTjzi8SSMBg5hZNLCgEgAD14Bu6EgCdACcST8CECFg253KeLEaC
+gAAojCcISBT44EJzogCdACQSTyRCneQWTigECoAA+oBAgBIAnQApElsvEl/6K4gVoAhFAAhYNo79
+KBZV/+GIFeAEBQDj6ggNAgqAAOqs/yxHgoAA+CwGFaGqnQD7AQAMN/8BAG2JaSYSXoZiJRJeZGIH
+hVAqEl8nEl7rpyQSj+GAAIivBTIMDiI2C4gB+UHmFaAGBQCWci4SYScSXSgSXyUSX+dGAAywBIAA
+BgiKhl6FX4qNpu6lNeWGDyIgBQAA41sGdMghAACx7p6OAq4Mno0sEmAESwL8gAVkIgCdACwSRv//
+4BWgDQUA7hZaJwTJgAAvEmAqElz4K2gV4I0BAAyFCoZQDIQLCbkLo2bmbP8tAgqAAPvvAA/xZp0A
+5v82BugFAADvFmIiUCEAAG35L96gDmCI7hJhLLgEgAAHDIqGQoJDj1Cm7qIykkMPNjYG9gzjKwZ0
+yCEAALHunkKWUCoSYi4SWvYsCBXgCQUACqk5CbsI63EPdnhhAAAI/Dn/v/t9IgCdACkSWCYSVSoS
+Ti0STB6m6+6mACtegoAA+ikmFeXdHQD9QGYV5csdAJyiiZDspnEV+J0AAPtAphXk/x0A7KYELMYC
+gAD55gAMMA4FAOimASNuuYAAKBJOKhJLKxJUHKa9LRJCK7IbDJwCKRJeDbsBLRJVKqIR6ZIALCAE
+gABt2Q2chpuHmojphgkkQQEAACwSVcCUDwIAZMFAbckXDAEwDAAxLMwmLM0BDAExAAIADAIwLMwB
+/CwIFeAGBQD2gUYVoAcFAPaBZhXgAgUA/cWSDeAFBQAVpzGx7gXlC+amqhKoFwAAIlI7JVI69kAE
+ATAAOgAAAP5hAAk/+GYAJhJgkk30gYYV4AIFAPfEUg2gBQUAFachse4F5QvmppoSqBcAACJSOyVS
+OvZABAEwABIAJhJgkk/0gcYV4AIFAPfEkg2gBQUAFacVse4F5Qvmpo4SqBcAACJSOyVSOvZABAEw
+ABoAAAAmEmAiRhH0ggYV4AIFAPfEUg2gBQUAFacHse4F5QvmpoASqBcAACJSOyVSOvZABAEwABIA
+JhJgIkYTJUYS98QSDaAFBQAVpvsF7gvmpnUXcBcAACXiPS7iPPagBAKwABoAwOAlRhXuRhQiIQEA
+AOmcBCzwBIAAY/xJAAASpgaCKPZALTiSAJ0AJhJPwHQHVzbmYp4rvoKAACd8JwdHFPbALSPiAJ0A
+JBJPJEKdZEWYGKX5sCaWiOQWTipkFgAAYASGACoSWPooaBXgPAUAW/iX6aQABVgxgADoEkEtaASA
+AAhghg0CZwhAhg0CZQgghg0CY8DRLaQAKhJYK6IWJhJE+yPmHeAMBQD9IIYdqLsdAPsjxh3oux0A
++yOmHei7HQArlBwvYhMrElT/I2Yd6I8dAPkjRh2oiB0A+SMmHaiIHQAolBgushvsEkMn+AUAAC9m
+E/8iZh2o7h0A/yJGHajuHQD/IiYdqO4dAP8iBh2gPQUAW/hJwCDRDy8SVC7yHsBkBu4C/+PGFa/t
+lgASpcKCKPZAJhiSAJ0AIxJTFqW45xJSKZ8CgACmMyYynvbAJhPiAJ0AJDKdZES5GKW2sCaWiPqf
+t3CSAJ0AYAOrEqWygij2QCV4kgCdACMSUxalqAwzEaYzJjKewXv2wCWL4gCdACQynWREqBilp7Am
+loj6n6ywkgCdAGADzgAqElhYAxnXoOoWVCUk0YAAiqcrElfqrCAqYASAAFgmgyoWSy+hCIhwjaCO
+d+iIEQIwBQAA+MYACzALBQD3QCYVoAwVAP7hBB3n3cEA7XR0J1CBAABYJnX6K8YVr+WiAC0SVyoS
+WO4SVijYBIAA7dEILuAEgABYEMAtCoj9QCRcYgCdAIIQZCjJhyeGevrhCBXvzAUA7XILI/iBAADs
+/AEKdwKAAKvqrN2uZuZ2CibpAQAA+6Ano6IAnQAmElfJZclD2bBtSQUGAIYJAmGK8A8CAA8CAK6q
+/UAo9GIAnQCa8Ikg6BJYLM4CgAAJSQKZsSiABfoqBhXgPOUA/QAknCIAnQDEovsAJEwiAJ0Aw839
+ACeNIgCdAPIrJhWvy9oAKxJfLBJHi7/H3w3MAwy7ASwSXioSS5vAKqIRq6orElyqOuCwBAVT/QAA
+/iqIFeGqnQCzrg4uFC72GlkpQB6mOBmmNR+mNu2mARVQDQAA+0xkBeKqHQAPrwENrQELqwH5QAQE
+8AwVAAnJOQvLOf2NAA7wCCUA/40AD/AGBQDuqgELOASAAPuNAA0wHAUA+w0AC7AKhQDn/wILQASA
+AO3IOQs4BIAAC6c5KyJv+OYAC7AIRQAJhjkHZgIG/wL/YBuD4gCdACoicA/5DwqZComQLZECZNNq
+KJEEhpAukQXn3P8ka/0AAOeVAi7vAoAA7W0ID3cCgAD/rwAOsAC+AC2RBe6RBCboBQAADQ1PLZUF
+/cAHxGIAnQCHkLDoDIgR6H0IDrcCgAAG3QwNgIfA4A7uaO2ABwdzJ4AAJpEF4PcRCzZCgAD3wABD
+P9+BAPemAA6wCQUA+iqIFeAIFQD3JgAPcAoFAPsNAA0/mY0A/SYADPfeAQDuthku4ASAAA2MOQyq
+Aum2GC0TzgAAJiJw+iqIFagAPQAOnRgepSkooh7/QAgV790BAP26AA7wCxUAC4gCKKYeLuJ2Bt0K
+i9YO/gyx7g4KS+uZKAUCiYAAh9QOD0X44ABHdm4dAPTIABM/7gEA5v8CD3aCgAAP7gIsElQoEl4u
+xhuK0cCx64YCLM6CgACpqfkAJhXv3QoAwNAtlQX//AwNoA0FAAD//zwNr+6lACwSWCsSQ+rEAAXY
+YQAAWCe4LRJeLBJM/aAmFa/Z3gAA/S8ADX/ZegD/3uANoAQFAC4SWY7i+9+u2JIAnQArEkosElnr
+vBguUASAAFgnqcAg0Q8sElmMwvufrciSAJ0ALBJZK8BB67wSLlAEgABYJ6DAINEPLBJXLRJZLMAU
+/awGHa/M/gAAAAD/y1wNoAQFAC0SWY3S+7+r2JIAnQArEkosElnrvBguUASAAFgnkcAg0Q8mElnF
+wvzAph2vzpYAACgSWYiC+x+qWJIAnQArEkosElnrvBguUASAAFgnhcAg0Q8AwKBZQgcSpJmCKPhf
+0niSAJ0A/+nUDaAEBQAAwEAYpJPAagYmNPcBBhWv6YoAwKBZQfwSpI2CKPhf2ZiSAJ0A/+1MDaAE
+BQDAQBikiMBqBiY09wEGFa/tBgDaQFlB8RKkgoIo+F/aOJIAnQD/7ZANoAQFAMBAGKR9wGoGJjT3
+AQYVr+1KACgSV/gpZhWgieUAKhJY/iloFaAMJQD9IAAUsA0lAP0mAAzwDSUA6eYBL1gEgABYAYEu
+ElT736OgEgCdAInoyJ6M6cCgmuuZwI3onNGa6JrpLhJFLxJLKhJUjuGe8Vv2qMAg0Q8qEljrElcq
+YASAAFkYPcAg0Q/AcPm9QBXgBgUA+QIAC3APBQAHjzh28DsrEkv7YCgVoInVAPthphWv/boAAAAA
+AAAAAPYAAh3gDQUA//RcDaAZZQD2AAId4A0FAP/0HA2gCSUAAAAtElTAwCzWGCwSWPqDABXgDgUA
+7tYZLlAEgABYJyhj9D7aIPwqyBXgj0UA77UIKmAEgABZFvfAINEPJhJX69gMAwG5gAAIQxTpPAgr
+OASAAOlJNg3QBIAAbZkFB6CGCgJrJxJXA00M6HcIBlEBAABt2QUHwIYKAm0I6QypySmcQPngBhXv
+67IAKsxA++AGFa/rhgDaIPwqyBXgjFUA7LUIKmAEgABZFtvAINEPAABsEAgdpQoPAgAo0X/EZeWk
+kBEhlQAA8QAM35An5QC4GvqAaB3gDDUAWT1YjBIMjBScEoo2BasBmxMpIAUsMB4rMCJ2mUr3gAq8
+YD1lAP2ACtViAJ0ALiBoLyE1+8AKZWIAnQAsMRCx//+ACf1iAJ0ALCU16yRoKlAEgADoMgkg2DEA
+APhDhhWgDDUAWT1AijbzQAgyEgCdABmk5vlAB9zgSyUAKjAf+0AHhWIAnQAsIAX3gActIgCdACUh
+CIknKCEHKiAHjZqJmfogAAU6iAEA5NDGbEcCgAAdo99kkLsMqxGtuyyynveAEfJSAJ0AK7KdE6Pc
+5KQRFZGBgACMkQwMR5yRLCAH+0gWBaD8EQD18AAXscwBAO+IAg50AoAADlUCBFUCCogCmLCOIPVg
+xhWgPwUAn7OTsvVghhXgAwUA82CmFeAFRQDjtgcvdgKAAAXuAu62ASXQgQAACSCGCgJjCQCGCgJh
+iCcMyRH9IABE/88FAOWWnSRAgQAAD48B44YCJ/kBAACfgP8AJhXgXiUA7iQFKZAEgADRD8Ag0Q8A
+ACwxEPpkUBXv+yYAxbX6QKYd7/t+AI4nj+pk8VaI6ZgUGqP0KSE3+yAKnCIAnQCNNtoQ+oBoHefd
+wQD8IKYV4Aw1AFk86ooQCo0UnRCPNo4VBf8BnxErIAX5wAog0gCdAHa5liwwHnfBB/NACZnSAJ0A
+e94dKCB0xJJ5iBUqIFd3oRouIGgtMCJ+0RFgAREAAAAALyBX9+AIPWIAnQCOLy0xC4oUrt2dLyig
+E2SAsYqm+6AFTSIAnQDE+C8kBfeABTxgS4UAw4b5gAatIgCdACowIikgaPsgBj0iAJ0ALSE1LDEQ
+sd39gAW9YgCdAB2kaSwlNR6kZiokaIoRLuF/DawB88AGX5IAnQD9QASeYgCdAB+jty0hNywxCg8C
+AH/ZfCwlN3yneXmudn+uc3qucHuubXymBygwH8SSeYBitBv6YSgVoAw1AOomHCpQBIAAWTynwCDR
+DwAAAAAAAAB9oz/3n/sNYgCdACwxEPpkUBWv/foAwLD6IIYV7/qeACwxCvxG5B2v+qoAjSLK1sTp
+/kCmHaACBQDRDwAAAAAAfNGC93/ytSIAnQDF9f5Aph3gAgUA0Q8rrBjsJAAJUASAAFgmLMTp/kCm
+HaACBQDRDwAAGKQxwJEMnDnoqBx+aASAAB+jhC4hNiwxCg8CAH/hICghNw8CAHyJp/wAIh2gCQUA
+Dck4ZZ8cY/+WAAAAAAAAAPxGxB2v/5IAbBAEwCDRDwBsEAQqICIpICMeo6X7LwAMsA8VAOSQXWcj
+AQAALCAHDAxBBMwJLM0CK8EGCb02DbsMK8UGKiAijCmtqvpBaBXnqgEA6iQiJQIpgAAo4n/ggQQF
+S/0AAOCZGg/ACoAA6bsIBEP9AAAIuwKbKgy5DHOTJsAg0Q8qIAVooXKLIsDCDLsC+kBGFe/yRQDR
+D4spmyr9YGgdr/9eACsgB/1PAA1xuwEABLkJ6iQiJMgLAAAokQatiCiVBiogIsulKeJ/jCvgkQQF
+Q/0AAOCIGg/oCoAA6MwIBuv9AAANzAKcKtog7CQABdh9AABYJdrHJNEPxyTRD4op+kFGFa//lgBs
+EAQrIAceouT0YgAVp1UBAPSgBnkRuwEADLkRrpkokp73AAY6UAZFACmSneqUAASGKYAAHKLVE6Lc
+HaMPDACHCQJhCQJhCQJhCQJhLCEHJyAHGKMK+IEEFerMAQD2IAAH8HcRAOp3EA5nAoAA58wCD/wC
+gAAPmQIImQINzAKcoI0g+UDGFaAHBQCXpZen80BGFeA/BQCfo+mmBC7uAoAABt0C7aYBJUiBAAAE
+IIYJAmMEAIYJAmEMvRGu3ebWnSKUdQAAiif6AIId4AwFAPtEABWgDUUAWB/30qDRD9EPAAAAAAD0
+YGgdr/zGAP/88A2gCQUAAIwiyMZoUhXAINEPACu8GOokAAlgBIAAWCWRaVLpjyeNQIj6j/sco5j+
+QAgVoApVAPnvAA+wOwUAWT+vjCeJyorJ+YQAFa/LBQDriAEEyQEAAOnGCiVTAQAA6sYJJEEBAAB4
+qwWNy6ramskZopWZoI8gGKOG6KYCL/4CgAD35gAPsA4lAO+mASVIQQAAbeoFA0CGCQJlwCDRDwAA
+bBAEGqK7JaKJhVwkUQL2oKQVoAkFAPqghBXvk5UA51IAIgepgADoTP8lo/0AAOhVAionAoAA5HQI
+CzcCgAD2jwAKMADeAAAAJlEFJ1EE5FIAIzAFAAD6/+AV72YBAOZVBS3fAoAA9uAFFCIAnQDrRAgL
+RwKAAAhEDAQAhwlpYOQABwNzF4AALCANGKKGK1EFLSAMKIIo5aKDLd5CgACra6uI6yEHLEZCgACo
+VS1UDCRQByxUDSggBxyiUCtVB/gCAAQw+7UA60QBDEeCgAAIRAL0oOYdoPvFAAtEASggByNUBZlY
+mVmSWvKg6BWhiAEACEQCJFQHDACH8kHIFaADxQBtOgICAmHSUNEPAClVBf/9bA2gBgUAwCDRDwBs
+EAT1RK4F4qcFAAcnKKV1JVJ/wW8DZgx2XRQaolIIOBDoSAIJTwKAAKqZmJDRDwAcolAbolADOgqs
+fAyqC6uqKaF/9S8ADLALBQALmTUppX/RDwBsEAQbolgDOAr1RKoFoqkFAAkpKBqiQqSUJkJ/6pkI
+AeBBAADnQn4uAQqAAPkAAgRwChUA64gIDUgKgAAJdwEHZgImRn8lgn+xVSWGfyRCgAAxBACjGnNI
+DhSiQAwiEaQigiACMgHRDymNAiuRAiWRASmRBQtVAXlbA8Ag0Q/SoNEPAABsEAr2QggVp4UBAPUA
+KuESAJ0AiDeKitUw44IJJRpZgACLIsi5jFhkw0XAINEPAAAoIhgtYHMnIAf5Q+wF4AolAPugBAcw
++EEA/iDGFeF3AQDuFgcm+DiAAHaHBogWCogCmBYMeBGpiCmCnvcgLaVSAJ0AJIKdG6IQ+iDIFaAJ
+xQDooeASLPGAAOgABQpABIAAbZoCCAJhC6oKKqKoiRfrIgklUMEAAOoWCCSbqYAAKSIXKDIRCYg2
+qoycGIoqC6oMixiYGftAFnviAJ0AKiAW/UQEBaD99QD9ToYN4A4VAC8gB/1D/AXiqQUACfkdK6wQ
+7Z0IDYEKgADu0n4vWAqAAAvuASvSfw67Ah6h4yvWfwqrCq6eDrsLHqHyrrsusn+x7i62fy3SgPtA
+BADQChUA6xYELVAKgAD7oCXAoA4VAAz7Eay7K7IA0w8LqgFkpMHtTCAh0MEAAPqIaB2gDgUADQJl
+CiCGDQJjCgCGDQJhwJEpRCAvIhYvRD/+hIYdqP8dAP6Hxh3o/x0A/oemHej/HQAvRDwrYhMfoaP6
+h2Yd6NsdAPyHRh3o3R0A/IcmHejdHQAtRDgqYhMpUhsrVhzrocIVUAUAAPrCZhWv6IEA+iDoFaho
+HQD4hmYd6JkdAPiGRh3omR0A+IYmHeiZHQDpRDAlDdmAAI1Xjd4oRCcmRCYuRCUuMhkqTFDqFgUi
+UYEAAOTiEmGxwQAAkhr/AQAPMAIFACLWLCLWIO5GFSHJoQAA6aYAAhFhAAACFIopMhkOiAyCGg6Z
+DOk2GSSSuYAAKjIbKDIaqup+qwGxiCo2Gyg2GsCgLiEHiRcYoWsODkrpvzkPdwKAAAjuAhihlJ5A
+jiD+gEYV4E0FAJ1DCOgCmET7QACEMG0FAA2ICuiMDy92AoAA/UMOBeSIHQAOjgKeQQ19Ch6hhy3S
+oQ7dAY4WCu4RDt0CHqJO7t0CBVAFAADtRgckgHGAAB+he4kVD68Cn5CPGCkiFY4pr5mv7p4pKSYV
+HaFIDHsRrbsotp34QtAVr5qFAPqgph2irgUA+kDwFaD59QD5BYYN4B31ABuhWg6uHavrK7J/CN0M
+/WAYKmIAnQCPGAypEeyZCAxaAoAAC/8Cn5OIWPqhKBXgCgUA/Q1wDeACBQCaW5iwjFibwZpYmlnR
+DwAAAP/y1A2gAwUAjy8YoiToVgsi6IEAAO32ACFw4QAAnlifWfxB5hXgAgUA0Q8AAAAAAOsSCClQ
+BIAAW/336BIJJWkxgABj/HbAoIkXZZ6vjRcaoUIpIQcNvzkdoRb/QoQFqpkBAOp6CgzPAoAADZkC
+mUCNIP6ARhXgSAUAmEP/pgAPMAhVAO5GBC7uAoAACN0CHqE2nUEqoqGNFu6qAQ7ugoAADaoCHaH9
+DaoC+oDmFa/7MgAAAAAAAAD/8mANoAgFAC7SIJ4TA+4KLuIcZOBsgxOSGg6ONgY5C+5GFSTIIQAA
+6cYAAhFhAAACGIop0iAGmQqCkA4iDJKQI9IgBjkKiZAOiAziEgokgOGAAAY4C4ODioKj4347AbGq
+k4P7AEYVr/dyAGQxWSnSLMDg7tYgJMgFAADp1iwjMGEAAMCQ6RYCJAl5gAAj0iCaEYkRihIGPgqO
+4PIhRhWgOgEACTIKDo42niAi0iCTEAYiC+k5CwEQIQAA4mYABMghAAAJDIoj0iAGMwqCMA4iDJIw
+I9IgBjkKiZDuiAwFUAUAAOISCiSA4YAABjgLhoODgqbmfmsBsTOWg/MARhXv+kYAyzMp0iz2wwAV
+oA4FAO7WICTIBQAA+aWGFeADBQCJEY4Q6hYCJNBhAAAOqTnpFgEsev4AAGAAfcAxI9Yg//90DaAD
+FQAAAAAA2iBb/iflpAAFB2GAAIqnAzsC6qwgKmAEgABYIZGIUOqiAC0YBIAA6aGdHF4CgAALSwL6
+YCYV56rBACpUdCmSfwmIDLGICAtLyrkIaRT1KAAUtYgBAAmIAihWGyoxCPqhBB2v6VIAAAAAAAAA
+APogSBWv91IA//98Da/opQDA4f+kBhWv+tYAAAApvQIqkQIvkQEpkQXTD+r/AQ9QBIAA+f/Z+uIA
+nQArfBLqJAAJYASAAFgjbGP6ASt8GOokAAlgBIAAWCNoY/nwHaCZHKCZCIsKre0Nuwusu4wYKrF/
+/U8ADTAMBQAMqjX7b+Qdr/O2AAAAAADqJAAKYASAAO6hThnYBIAA/mAmFaANJQBb/YDAINEPAGwQ
+DiggBBegZw8CAPkAGCOQHHUA9wAX4hIAnQCJMCogB5Md+iAABTeZAQDpFg4kya0AAPohhhWkmR0A
+KRYP9QA08hBO5QAoIAX/ABekIE91AP8ATFxiAJ0AKyAWJgr/drEd+kgwFafFAQD9n8AVoAgVAAyM
+OVv+IftATOASAJ0AjRzV0PWgLyoSAJ0AGaBC7xIPLscCgAAJiAgugp7/wEz74gCdACSCnfqASqAS
+AJ0AGqA1iR/toQUaQASAAPoACB2gBoUAbZkCCAJhwICYEfxFRB3gLuUA/krmHaAPZQAvJFwmJGQs
+MBX8zgAOMAs1AP1gSeiiAJ0AKixl6aERENgRAAD4ICYV4Aw1AFk5cIodjR4uIQf/QNwF4AkFACkk
+aCkkaSklNS8lN/9ANgXgSCUA+EOGFeruAQDoJHQvdwKAAA/uAp5AjCDrEg8m6TEAAJ1D50YCLmYC
+gAAMuwKbQSqgE2SlSi0gQS4hIhqg2g3bCeggBS3fAoAAq6r7T+gVoFsFAHuBDsTOfIEJxfb/AEW9
+YgCdABeg0Ryg0CMSDvrAAAQy+kEA90GcBaALBQD6gUQd4Jo5AOZGByzNQoAA/eAAF72uHQDviAIN
+VQKAAOqZAgGY8QAAI0UL6YgCD1UCgAAMqgLqRgYutAKAAAhmAgdmAuZGBCF5IQAA7wMeAnCBAAAO
+AmH2RUQV4A0FAPyGhh3gDAUALEQw+oXmHeAKBQD6hcYdoAkFAClENylENviGph3gCAUAKEQzKEQy
+J0Qt+IYmHah3HQAnRCwmIFfqTDwhWXEAAPaHZh2oZh0A9odGHahmHQD2hyYdqGYdAPaHBh2gDEUA
+WTkVKCxg6CYAAlEBAAAKBIoIAIgKAIosIhyLHfyKZh2ozB0A/IpGHajMHQD8iiYdqMwdAOxEUCJR
+UQAA7BIOJdjBAABZOQSJHiggdKlJKJRYFp+z7hIPKv8CgACm/y72nSsgFi0K/32xCuogQSngBIAA
+W/1wiB3ElikkBSiAEmSASRugmxyf1h2gmuuLKAlQBIAAW7xy2iBbvFXAINEPfIkp/kIIFafVAQDu
+FgspqASAAPWgI4ESAJ0AiDePimTzcYOJiCLIh4lYZJN7wCDRD4obKCIYKqBzCIxA/CEGFaAJJQAJ
+qwHrFgkleDiAAHaHBosYCbsCmxgtIAcZn4kNDUEM2BGpiCyCnp0XnRb3gDetUgCdACSCnWRG6h6f
+fdhA/gAIHaAJxQBtmgIIAmEZn6WIGAmICiiCqI8ZKIww6BYKJ6aJgAApIhcoMhGKGgmINqqKKhYK
+KyIJiioLqgyLGigWENMP+0AhU+IAnQApIBb9PzgFoP31AH2RZyogBx+fif8/MgWirQUADa0dCZsK
+rt6v3Q27Cx2flebifiT4QQAA++AEANAPFQDtuwgP6AqAAA1mAS3ifwbdAi3mfyayf7FmJrZ/LuKA
+AJEEAPka+cAwWOIAnQAMrhGs7o7gDpkBZJYQ6kwgIcjBAAAJYIYKAmcJQIYKAmUJIIYKAmPAYSZE
+IC8iFoob/ofmHeAOBQD+hIYdqP8dAP6Hxh3o/x0A/oemHej/HQAvRDwrohP6h2Yd6NsdAPyHRh3o
+3R0A/IcmHejdHQAtRDgdn2QpohMmUhsrVhzroC0UyAUAACmmE4oZ9oZmHahmHQD2hkYdqGYdAPaG
+Jh2oZh0A5kQwJRlhgACNV/2hyBXo6B0ALkQm+ITmHa+ogQAqRCXqMhkieUEAAO8WBSJxgQAAnhTk
+o2xh8cEAAPsBAA0wCQUAKdYgKdYs6kYVIfmhAADvRgACSWEAAAkIii8yGQqIDAr/DO82GSedkYAA
+KTIbHZ88KDIaqal6mwGxiCk2Gyg2GsCQLiEHH58IDg5K6J80H3cCgAAP7gKeQI8g/z5eBaBKBQCa
+Qwj4AphE+SAAhHBqBQAKiArojA8v/gKAAPohKBWkiB0AD48Cn0EK5zkfnyGOF5dCD+4KLuKhjxjt
+7gEP/oKAAA/uAuvuAgTIBQAA7kYHJQBxgAAfnxeKFQ+fAp+gjRouIhWLKa3urbubKS4mFYoWG57k
+DKoRq6oopp0oIBYp+pj4oKYd4Pb1AHaBMSkgB/898gXiqgUACpodr68v8n/BbwhmDPfgJAIiAJ0A
+ixoMnRHs3QgMcgKAAA67ApvTiFhkjOuPWcDgnluY8IJYnyGeWP6hJhWgAgUA0Q8ans+KqPdAILiS
+AJ0AGZ7G7BIPKscCgACpiCuCnv1gINOiAJ0AJIKdZEQRHJ7FsKubyGVKDWADWgAAAP/yMA2gAwUA
+jh0t4hP9wMYV7+qyAIkvGp+x6lYLIviBAADvlgAhQOEAAJhYmVn+QeYV4AIFANEP2iDrFAAJ4ASA
+AO0xCCrwBIAAWAnpLQqI/UAfPGIAnQCMEGTMO4bHDEgRmBOPav7BaBWvyQUA62III2iBAAAJ2QGZ
+EquKqe6o/+9mCidxAQAA+8AgG6IAnQDJO8lJ6bQACcAEgABtSQUIAIYJAmGPE4rQDwIAD6oI/0Ah
+ZCIAnQCa0IrACKoRCkoCmrEoIAX6IaYV4DblAPcAHOwiAJ0AxNL9ABycYgCdAMPt/wAgNSIAnQDz
+gGgdr+MKANogW/v75aQABRqhgACKpwM7AuqsICpgBIAAWB9liFDqogAtGASAAOmfcRxeAoAAC0sC
++mAmFeeqwQAqVHQpkn8JiAyxiAgLS2Sx2QhpFPUoABS1iAEACYgCKFYbKjEI+qEEHa/s6gAAAAAA
+AADrEgopUASAAFv7O+gSECVeWYAAY/sdwJCOGWXtTBmeho8XCf8KGZ6GKCEHDpc5GZ5YCAhK6p6E
+HEcCgAAJiAKYQPhACBXgTgUAnkOXQvsmAA0wCFUA6kYELM4CgAAImQKZQS/yoYkY7f8BDM6CgAAJ
+/wIL/wL+gOYV7/W+AAAAAP/s/A2gCAUAKdIgA5oKKqIcZKBrDp8LCoo26kYVJ/ghAADvZgACSWEA
+AAkMii/SIA7/ConwCpkMmfAp0iAOnwqP8OqIDAeA+YAADpgLjoMdnl6Jgq6ueusBsZmeg/kARhXv
+8h4AZJDfL9IswJAPAgDp1iAn+AUAAO/WLCdwYQAA8QvADeAJBQAj0iAOOgqDFIqgCQZAA28KCoo2
+mvAv0iAO/wvjYwsH+CEAAO+GAAGYIQAAAxCKL9IgDv8Kg/AKMwyT8CPSIA4/Co/wsZnqiAwHgSmA
+AA44C4ODHZ47joKjo3o7B+2eORdwBQAAk4P/AEYVr/qaAMo8KtIs/8MAFaAPBQDv1iAlUAUAAPul
+hhWgAwUAihQvrBgG+jnqFgQse2YAAGAAGcAxI9Yg//+QDaADFQAAAAAAAP/4wA2v6KUA/TxEBe/5
+UgDAkfmkBhXv/MoAAAAAAAAA6iQACmAEgADuMgsq6ASAAO8yBynYBIAAWADfwCDRDwCKImWpO4sc
+2iDrvBgpYASAAFggz8Ag0Q+MImXJIysgQdog67wSKWAEgABYIMnAINEPLDAU/EwGHa/bAgAAAAAA
+/9mQDaAEBQDF8v5Aph3v3R4AKr0CKaECJqEBKqEFCWYB+t/PgqAJFQCLF9og67wSKWAEgABYILZj
++MCLF9og67wYKWAEgABYILJj+K7AoFk7NRqdxoqo+V/e+JIAnQD/7/ANoAQFAADAQBydwMC6C6s0
++4EGFe/vpgAfndcendcIjQqvrw/dC67djhos0X//jwAOMA4FAA7MNf2v5B2v7coAANog6zQACmAE
+gABZEY/AINEPAAAAAOokAAnYBIAA6J6IGmAEgAD4YCYVoA0lAFv6usAg0Q8A3VD7gGgdoIlFAOm1
+CCpgBIAAWRBewCDRDwAAAAAAAADr7gwBgbmAAA5GFO9sCCnABIAA7082DdAEgADTD235BQiAhgoC
+aYoSrjjmSQwFUQEAAG2ZBQighgoCa4gTjxIOiAyo/y/8QP+gBhXv734AAIkSKZxA+aAGFe/vRgAq
+CoXqtQgq6ASAAOrEAApgBIAAWRA+wCDRDwBsEAQpIAeIIi0hB/067AWhmQEA65QADASOAAAMmBGs
+iCqCnvVABNuiAJ0AKIKdGp1u751wFARpgACOMikgBw0NSvgCAAT37sEA4O4RDMqCgADumQIO7wKA
+AA2ZAgqZApmAjSCwSu+GAi13AoAA7oYDLu4CgAD8hgAO95UBAO2GASyVSAAA+QIAFeACBQDoPBAi
+DDUAAG2pBQgAhgkCYQy+EazuJOad0Q/qJAAJ2ASAAOxEAAroBIAAWB/j0qDRDwAAACucGOokAAlg
+BIAAWCA0Y//UhyeCefrhaBWvxgUA5XIKI+iBAAAG1gHmowgKTwKAAOlVDAEQQQAAknnldgohmQEA
+APJABULiAJ0AaJs4opoqrPDqMz10OEEAAOhBHWvABIAAsE5t6QUCAIYIAmEq0gEKmgjl0gIlU8EA
+AHOheurWAS0QBIAAZFBMDL0RrN0k1p3RDwI6DApPFNMPbfkFAiCGBwJjD0IM6o4IA0EBAADv7BAh
+DEUAALAu0w9t6QUIQIYPAmWP0gqSDKJiIiww4tYBL/2+AADAIOLWAiNBAQAAmNCY0Qy9EazdJNad
+0Q8KIgzy4SYVr/1WACJsQPOgJhWv/hoAAABsEBYiFiDnEiAr6ASAAChwB95g/CBmFeBKdQD+4LAV
+4YgBAOgWDSRAYQAA+CEmFaBMZQDs8Qx5kASAAPvgOD0iAJ0AJHEijH6VFiMgFYkTJiITKHBBiyAd
+ncEIiAn4wQALd7sBAOsrCAxHAoAA+aAARr//BQDt0n8l2P0AAA+7AYqxmxrtFgwl2EEAAPvAMyqh
+MyEA/AACHeAFBQAN7wwdnTQt0n8JzBGs3CzBNfQgphWn/fUAfNsKFJ0D8iCGFeAASgAkSgAExDby
+IIYV70QBABydqCzCf+8CAA4YBIAA+8AEwqIAnQCNGg+qDIjTnBKN0qj4mBd/iwGx3ZIb7RIHLuAE
+gAD2wCy4kA8FAJIb90AsaJIAnQDAIG0IWwpoNAMpCghINJiQAygLnYOcgomQDwIADwIACWYMCaoM
+rZjoFg4hEAUAAOmLBn5oBIAAsc3s1AAH+AUAAO0SDiEMMQAA8mMAFeACBQD2wCkgkgCdAPdAKOCS
+AJ0AY/+dnBKSGwtdCwtaCoqgidON0g+qDKn5mRh/mwfiFgsm6AUAANzQ/CEIFeAPBQD+I6YV4AIF
+APbABQCSAJ0A/iPGFaAAzgAAACgSHejoCAKoBQAA6BYdIowxAAD7YwAV4AUFAAtcCwtaCoqgjcPs
+wgIjDZuAAP9c8A3gDgUAamHHbQhOAykLAy8KCmg0CEg0CGYMCKoMmPCcki2WA+2PCAEQBQAA6PsH
+fmgEgAAtzAHs1AAHcAUAAOghDG/oBIAA8mMAFeACBQBkr3323/vQkgCdAGP/qgAALhIegxL2IWgV
+oAgFAJgQiBMmYhMrcBYuFhr4wQALMPn1AHmxGowW+ugwFafMAQD9n8AVoAkVAAycOVv6PmSkty0S
+HemcYhadaYAAFJ0xghWKHIwd7pxaE/khAAAvFhPuFg8j6XEAAC0WFCwWEPpIAAW2igEA/4AAFj1S
+HQDpzAgJFQKAAOQiAgqtAoAA8iLGFaCqOQDsFhIt3gKAAOuIAgPhgQAA7BYVLVVCgAD6pgAKsAsF
+ACsWG4oU+KYACrA0VQD0IwYV4AgVAPtaQBWgBQUA+wIACrAyZQD0jQAJcAUFAPIi5hWgBAUA8ABA
+DaACBQAALhId/qAYXCIAnQDA9Q9fL+TyXmKoBQAAKAqAqEQrcQccnC/yQAEG+rsBAOqcWB3fAoAA
+DLsCm0CIcPqARhWgSUUAmUP9AAAUMAmFAAmIAphBj9AuCgT46DAVof8BAA/uDC8SGO0WGSxEAoAA
+CP8CGJzs+iJoFaHuAQAuFhwI/wIvRgQvEhb9oAgV4AgFAChFCi9GBg7dCO6c4xbo8QAALUULLkYH
+6gMeAkiBAAAJAmH+5UQVoAoFACpENP6Fph2gDAUA/IbmHaAJBQApRDP4heYdoAsFAPqGph3gDwUA
+L0Qu+iKIFeAPBQD+hgYd4AgFAPiGJh2gCQUA+IZGHeAMBQAsRDb8I2gVqO4dAC5ELPjq8BXv3QEA
+DNwI7BYbIlDxAAD4h2Yd6JkdAPiHRh3omR0A+IcmHeiZHQD4hwYd4AxFAFk1M+kSFSJRAQAACSCI
+CgSKCQCICgCKLXIcLBId/IpmHejdHQD8ikYd6N0dAPyKJh3o3R0ALURQfFkz/iOIFaBPJQAvdHQf
+nNIqTEX6IGgd4e4BAP/GAA9wD5UA73RlL3YCgAD+IAYVoAw1AFk1GCsSGihxNQMsCx+cn+kSFyRA
+BQAAKHU1KBIZKXRXL0YWjoAuRheNwy1GGYzCLEYYioCJf6urK3YciIAKZgwrFhrpiAgBEAUAAOh2
+DyEMMQAA8mMAFeACBQAbm7j8I4gVoApVAApaLytGGuTMCAZoIQAALUYbK3B068R0LW6mAAAuEh0F
+7gyx7vff7iFSAJ0AKRISKBIRKJadK3AWLwr/f7EIKnBBLBIbW/lljRssEhqc25bXinLEt+t0BSUH
+yYAA0Q8uEh0vEhAF7gz/wCAVoApVAAruNg3uEe4WESelDQAALxISL/Ke/+AG06IAnQAkEhIkQp1k
+T7KIH/yAaB3gCgUA6AAFB2s5gABtCA/tDAAFUAUAAP9f6qQiAJ0AY//pGpuIiqj3QAUgkgCdACsS
+Eiuynv9gBcuiAJ0AJBISJEKdZECtGZt/sKj5IQYVr/6iAIsdwKDqFhst3wKAAKm7KxYSLhISLRIR
+LeadK3AWLAr/fLEIKnBBLBIbW/kwjxsv8BPI/4gbiX+IhnmJB8SYKXQF0Q8AxKYqdAXRDwCNsy8W
+HYyy+2AIFa/sUgAA//+wDaACBQDacOsSCSvgBIAAWB5J0Q8A//ywDaAEBQD+I+YVoAoFAFk4yBqb
+WoqoLhIf+V/6SJIAnQD//CQNoAQFAMBAHJtTwLoLqzT7gQYV7/veAI8aL/IECv8I7+NXfWgEgAAl
+CgD+ICYV4A8FAO0SASf4EQAA6PQPYqgFAAArvBj+AAId4AUFAKv4iICtiJgReOvZ/d/LEuIAnQD/
+rwAPv+V2ANEPKXBBKZwS+CEmFe/5MgAAAP//aA2gBQUAbBAIlBEqIgcmMQv4QPAV4EyFAP1BSBXg
+R2UA+ECwFaBLVQD22IAVoZkBAOWiCSaLyYAA/QAQjSIAnQAoUBLIi+kWBSlQBIAAW7fMiRWEUJUS
+9CBmFedEwQD0gBXbH8sFAIgTiIoqMF/3ABcjogCdAOWUAAUKOYAAJ2w3B0cUtHf1IAo6EgCdABqb
+DQyYEaqIKoKe90AeS+IAnQAogp0VnAaYEOgWBCQViYAAHZsADQCHbXkCCAJh9IAcSxIAnQAuMF8c
+mwIZmzXrMF4vDT4AAMPz/oAK1GIAnQD0gArTEgCdAIgSKIATZIFVhBKNL4RG/IAbpWIAnQBlsXfA
+8I0TiNEuIQf94AAVN4gBAAqIApjRKCAHKyEI/0AABzCoEQDs7hENUoKAAAruAvnGAA9xiAEA6hIE
+LEwCgAAJuQIbmxieoI4gnKKbpguZAvlAhhXgCwUAm6Wbp/3AABcwC0UA6+4CBWCBAAD/QCYVoDsF
+AOumAy7IBIAACSCGDAJjCQCGDAJhG5rO6RIDLFcCgACrqiemnYmQ+PgABPA6JQB6kVraIFgUcdEP
+AP0ABaUgBQUAwMAswBJlzodj/pEtMF5l3rb/+uwNoAdFAAAAGprCjKj3gBYgkgCdAB2auQxYEa2I
+LoKe98AWm+IAnQAogp1kgsqwzv9BBhWv+p4AJiEUIyES/tmwDeAEBQDqUkIp2ASAAPwAAh2gDRUA
+WBeZKFJD5EwBIZgFAAAIMy52Sdtj/29kvsdgADwAAGS+v2AANAAAZL63YAAsAAD3H+98YgCdAPsf
+7zxiAJ0AY/9JAAAAAAD3H/pkYgCdAPsf+iRiAJ0AY/8xLCAHihAemsn6QQQV4NwRAPWwABaxzAEA
+7t0CDmQCgAAMuwKdoB2ajfxACBWgDwUA76YFI3BhAACeo+4SAyMg3QAA/UBGFeREHQDtmsAeZgKA
+AAxMApyhDbsCm6QOBImWp52mCiCLLCAM5qYHLmQCgAAMuwLrpgQrYASAAOs8VCVQoQAAWTO/jhAZ
+mqjsmnMaRwKAAPnAAEcwj5UA/iCGFa/3qgAAiieHEeyiCyu/AoAA5zcIBVCBAAALqgGqyuqsQCvA
+BIAA+uANmqIAnQD4IGYVr/RyAAAAAAAAAAD3AGgdr/RyAI0iZNF89J/yIxIAnQCIJ46KJ1K95OFg
+ZFCBAACFiYVRJvrA9OAAAvALBQDsdAAK6ASAAFgXk44njRGM6oro6OILJ1iBAADmtAEO7wKAAK2p
+pIitzJzq6IxALeAEgAD5AAwz4gCdAMk+jhHvpAAHANGAAG3pBQNAhg8CZYwnKbIA7ZkIBmCBAAD5
+IA2kIgCdAJmwiyCJEQbCAebCAC3eAoAAC5kCmaGIw+vCAirPAoAAppqiiKm768YCJEEBAAD7AAbz
+ogCdAMl203DvZAACgJGAAG1ZBQNghg8CZ4rACpoI+UAKpCIAnQCawNEPiieNEcDA6qwgLtgEgABY
+F2GaEvogZhWv8ZIAAP/w6A2gCAUAdNsUjxINTgzu9gYt7/4AAP4RYh3v8gYAihIE2AzopgYt71YA
+AP4Rgh3v8bIAAAAA+CCmFeAKBQBZN3oamgyMqIkV+Z/pUJIAnQD/76ANoAgFAMCAwNoNzTT9QQYV
+7+9mAAAAAAAAAAD/+ogNoAUFAAAAK5wY6iQACWAEgABYHORj/nEAAAAAAPzvAAw/+TYA5ooMA4Gx
+gAAKSxTuvAgreASAAO5eNgvABIAA0w9t6QUIgIYPAmkKeAjrXQwBeQEAAG3ZBQighg8CawqeDK4u
+LuxAnsDRDwAA6okMAYHhgACOEQlMFO/MCCnABIAA7+42DXgEgABt6QUIwIYPAm2OEak47O4MAnkB
+AABt6QUI4IYPAm+MJyzMIAneDK5OLuxA/2AGFa/5egAvLECfwNEPAChMQPlgBhWv+S4AAGwQCBma
+uysxCicwRPxgiBXgLiUA7zBFKWAEgADygGgdoAoFAPU1agWj3YEA4PYRB+AegAB6/3GMMo8z8YAW
+61IAnQDxgBarEgCdABuZ2iuyHSiSaa+76hYALd5CgACriJgRZHMWHJpmDGwBdMk1KjA8aKEy9UAR
+4ZIAnQBopVz1QBJLkgCdAH6hHMLTfakX6hIBKdgEgADsJAAK6ASAAFkD7tEPeWYc0Q8YmeovMSf5
+4Aa0IgCdAPogBhWv/p4AAAAAAADqEgEp2ASAAOwkAAroBIAAWARB0Q8AAACNESnQBcSmepnAideL
+mmSx9iuSCS/QaBmaVyyyAeqwFSf4BQAA/60GHeAOFQD/q4YdoAiFACjUZyjUZPmlRB3gCAUAKNRm
++aymHaAp1QD+adAVoaohAO8wTyVTSQAA+aakHaAo5QDqmDgPdgKAAA/uAvmq5h2gTxUAL9R0LtU3
+LrAV/s4ADzAKNQD/QUAdp8wBACmwFCnUYO4yFS7QBIAA7zIWKugEgABb/F3RDy8wPA8CAA8CAGj2
+Y37xYJoQjRHu0TchyPEAAOkDHgbBcQAACAJh7zEmINAhAAD/psQd4Aw1AO7VNybZdQAAWTKiixHA
+w+q8XSXZhQAAWTKeihErHAgPAgD7TCAVoAw1AFkymf7nXA3gLiUAYAGEAAAvwAT14AezEgCdABqa
+RQ3cCQzMEayqKqJ/ZK6RjDb7YAAG+MxBAC+hGQ8PS3/ZDouqyLkosT58gQuLuWW/9IqpZa/i0Q+K
+upsU6hYAJQFZgAArPEGbEyqsTPogaBXgDDUAWQcd8UiwDeAuJQCKEIqo6hYALX8WAACLFGS+MB2a
+Hi3Rf+wwPCb4MIAA9YAEOxIAnQB+wXSNFC3RCOoSBCDYEQAA7DQACvAEgABYBF2NEWXe72P99wAA
+AAAA6hIBKdgEgADsJAAK6ASAAFkDZNEPAAAA6hIBKdgEgADsJAAK6ASAAFv939EPAAAA//ggDaAL
+BQCPEP4ghhXv/f4AmhCcEf2AaB3v+noAAAB914f8f+Id7/4mACiwBPUf+7ISAJ0A0Q8ZmfXTD9MP
+KZF/DwIA8T/r15IAnQDqFgAh4IEAAOrUAAjoBIAAWQeu7aQADQJOAAAqMDwrCoH7X+qNYgCdAIoQ
+ZK1H2zDtFgEpYASAAPygaB3gjkUAWQbk0Q8AAAAAAADqEgEp2ASAAOwkAAroBIAAWQXu0Q/C4vog
+JhWv8y4AAGwQBikxDxeZ3iowLO0wLSyj7gAAHJkE65kAHVYCgAANqgJ8oS8dmdcemdj9QATMYgCd
+AP9AFUwiAJ0AH5meGJnT/0AXHGIAnQD5QBPcIgCdAMAg0Q+JNCiyI/b9aBWjqYEAqogJiBGoZvMg
+FFpSAJ0AKzA39WAWQJIAnQD9eiADUBwVAHy5yS0wQi4wQwjdEf+mAA6wTjUAftm1LjBELzBFCO4R
+/8YAD3BPRQB/6aHqJAAJ2ASAAOxEAAroBIAAWOo+wCDRDwAAKTAuKjAvhjTrMDEszgKAAAqZAv0h
+gADTZoEA+T/7U1IAnQAqMDAIqhELqgL9X/rNIgCdAC4wNC8wNQjuEQ/uAmjhB/nf+hFSAJ0ALzBG
+KjBHGJk96zBIL/4CgAAK/wLqMEkv/gKAAAv/AumZlx/+AoAACv8CCPgB+R/4bGIAnQAYmZMZmMUI
++AH5H/fkYgCdACkwPCowPRyZjuswPizOAoAACpkC6DA/LM4CgADrmQILaASAAO4WACzOAoAA+SYA
+DLAKVQD/IGgdoDsFAFk1jhiYoCiCI4o0InLrqGgJiBGoIvNAD9JSAJ0AFZj9LDBJKzBGLjBHJCIH
+7TBILd4CgAAOuwLkQg4t3gKAAA27Agi7Eey7AgpQBIAAWOl1ZK5oLEJh9YALaRIAnQAtQmH1oAsR
+kgCdAMCl/TLOBaA7BQDtVAALcASAAFk1bxyZYygwRy4wRi8wPCcwPeYwSC92AoAA6O4CD/4CgAAH
+/wL2aTAV4ApVAOgwPi92AoAA98YADzA7BQDmMD8v/gKAAOj/Ag92AoAA5+4CD/4CgADm/wIJaASA
+AFk1WCkwNCowNQiZEQqZAvUgC4CSAJ0A+T/uSVIAnQArMDwsMD3tMD4t3gKAAAy7AuwwPy3eAoAA
+7bsCCVAEgADouxEK6ASAAOy7AgHg2QAAWOj9wCDRDwAAAADqJAAJ2ASAAOxEAAroBIAAWQiOwCDR
+DwDqJAAJ2ASAAOxEAAroBIAAWQc0wCDRDwDrMQorUASAAFjp/fwAIh3gDgUA+6IADzAMBQAO3Djq
+pjkOar4AAGP9LwAAAAAAAADqJAAJ2ASAAOxEAAroBIAAW/5KwCDRDwCNYC5gOP5oUBXgClUA/TIq
+BaA7BQBZNR7AINEPLzA8KTA9KEJK6jA+L/4CgAAJ/wLpMD8v/gKAAAr/Agj/EQn/Avn/880iAJ0A
+KEJhaIMEwJMpRmHApf0yCAWgOwUAWTUMwCDRDwAAAP0yAgWgClUA/GFEFeA7BQD+QmgVoA8FAFk1
+AyUxCuokAArYBIAAWOnK/AAiHaANBQD7ggAOsAsFAA3LOOqiOQ3ubgAAY/xhACswPCwwPe0wPi3e
+AoAA7LsCCVAEgADsMD8t3gKAAO27AgGw2QAA6LsRCugEgADsuwILYASAAFjooytCYC8wSSUwPygw
+SCkwPS0wPC4wRuwwRylQBIAA5zA+Lu4CgADp3QIPdgKAAOzuAg7uAoAA590CD3YCgADo7gIO7gKA
+AOXdAg92AoAA/8YAD3AMJQDmFgAreASAAFjoP8Ag0Q8icSgvchUpdSkJIgLidSgn+AUAAP7iphXg
+AgUA0Q8AbBAIHZe3GJfr4yAHKdgEgADlIgcq0ASAAOKX5Rk4BIAA+SLkFeDzEQD18AAXsTMBAOL/
+AgnkAoAADJkCCJkCn6CPcP1ARhXgPAUAnKP5QIYV4A4FAPlAxhWgAkUA7qYFL/4CgAAC/wKfofih
+SBWvzgUA71ILIuCBAAAOzgGCWe79CARDQQAA6FYKJukBAAD8QAia4gCdAOWsICF4wQAA/6AIc+IA
+nQDiCx4KyASAAAkCZQIghgkCYwIAhgkCYYLBIiww/EAJrGIAnQCSwYjCZIBh7XAsInv9AADsogwv
+/wKAAO+rCA31AoAADt0CDcwCnKzqUgEl2IEAAJsS/KBIFaAJBQDsFgEtAmIAAOkWAyUFsoAAjFH8
+wAAWt8wBAA3MApxRG5eH6UgICdcCgACrqpig0Q/A8O/GAidpAQAA/YAmFeACBQD9gAYV7/4iAAAA
+AAAAAOsSAivQBIAAW6WviFErEgLsEgEtSASAAOoWAy1vAoAA7bsIBAZwgADacFulf49RjhMIaBH/
+QABHN/8BAAj/Ap9RGJdq7k4ICf8CgACo/57w0Q8PIgzyoSYVr/uqAALZDAlIFOgWACroBIAA0w9t
+iQUCYIYNAmeIEOmvCAdpAQAA7/wgJBxZAACSFIIQwIMCiAxtiQUNgIYPAmkJ4gwiLHDzgCYVr/tW
+ACLsQPOAJhWv+yoAAGwQBiQwBxmXjBWXL/kwEBXhRAEADEoRparoop4kyN0AAAlJFLiZ+QAF0+IA
+nQApop3rlAAEhbmAABqXHwoAhwkCYQkCYQkCYQkCYQkCYRiYK/kv9AXgDBUA+kAIFaAOBQD+ICYV
+oA0FAPggBhXgDwUA+CBGFaAONQBYF8IoMQcZlxP/MD4F6ogBAOuXExxHAoAACYgCmKD+QAgVoA0V
+AP1DJh3gHAUAnKObou/vAg92AoAA/0CGFeAPJQAP7gKeoQxJEfUgAETwCFUA+TOmFaAPdQDvJAQl
+EIEAANEPAAAAAAAAAP/9JA2gCQUA0pDRD2wQCBeW+yYgB9MPjHgUlvL3gAsAkWYBAClCrmSRfytC
+rWSxe7DMnHgel0jfsPF14A3gBRUAK+CAK7w3C0sU67wWK1AEgAD0wAeCEgCdAAxqEaSqLKKe+4AN
+U+IAnQArop3xdMAN4AoFAIknKiRUjJqHmWTA9oxxKSAUDAxHDJkICQlHKSQU9SAKJlIAnQAUl+Ef
+lxwtcRclcgn44QgVoAYFACbmMijmM/SgABM4VR0AJeY4JuY5/6YADvAmBQD9x+YV792NAO3mPiIp
+4QAALkJ/ijApQoEoQoLvQoMrAgqAAPyQiBWgmZ0A+CAmFeANBQD8IAYVoP+dAPggRhWgDBUAWBdk
+JEwY5UnDfVgEgACOdPpAaB2gHwUA/8YAD3AcNQDudgQt6ASAAPpgCBXgDgUAW/710qDRDwAAlhX3
+gAZgkgCdAAyqEaSqKKKe+wAHI+IAnQArop3ksNtma/0AAPzhBhXv+/oAAAAAAAD3QGgd7/wWAMCg
+WTQMjHj5n/TIkgCdAP/6hA2gCwUAAAAAAI4iZOCy9EqGHeACBQDRD8CwwPoPzDT84QYVr/n+AAAA
+AACIImWP3StsGOokAAlgBIAAWBl09EqGHeACBQDRDywhCfxCsBXv9gUABpYBBpgMKCQU5vQDLukC
+gADq9AAuZgKAAA3MAgXMApzx9JWmFe/6QgAAAP/5ZA2gCwUAmxT+IMYV4AoFAFkz5B6Wy48WjHiL
+FIoV+Z/44JIAnQD/+MQNoAsFAMCwwIoIyDT44QYVr/iKAAAAAADaIPxAaB2gG8UAWBlQ9EqGHeAC
+BQDRDwAAbBAIiScdlmIlIAcokgr7LLQFoAYFAP2hCBWhVQEA5JIJJBERgAAuQgEnQQr2QoYVoAml
+APeAEiCX7gEAL6KuZPJvI6KtZDJrsMyc2O80AAGSiYAAGZalI5CAIzw3/qAAFbQzHQDquwgBmJ0A
+APSgDtoSAJ0AKLKe8wAWQ+IAnQAjsp1kMjgpIBQOmQgJCUcpJBT1IBJGUgCdACoKAlkI8WWieJUV
+9CCGFaAKBQBZCMgUl0Eclnwbl0EVlo2OFBaXPiVSx/nC5BWgBwUAJ2ZRjeknst0rscyO6C5mUuyI
+Ag7yAoAA/ssGFajdHQAtZlcoZl6rqvrgAEO/iI0A6GZdK75CgACnVSUmFPKhBhWgJwUALkJ/ilAp
+QoH4kEgVoAwVAO9CgyuCCoAA+pCIFeCZnQD4ICYV4A0FAPogBhXg/50A6BYCKdgEgABYFrokTBjm
+Sb59GASAAIQVLCEHixQdlgfzLBIF6swBAOixCi5nAoAADcwCnKD+oAgVoA0FAJ2rnar9QMYV7//1
+AJ+pn6ifp/8suAXgCUUA46YCLzYCgADpZgIPd4KAAA/uAh+XBZahnqQPTwL/QKYV4C+FAJ+jibeL
+ti+mEy2mFi2mFy2mGC2mGS2mGi2mGy2mHC2mHS6mFCymECOmEvdCJhWggwUAo6PmlvQd5gKAAP0G
+AAw3u8EAC5kCmayYrfaGAAowDgUA9UKmFaAsRQCPFMCQKSRVjfT6QGgdoBgFAPmmAA6wCwUA7fYE
+KegEgABb/hvSoNEPAAAAAP/3eA2gBAUA94AH4JIAnQAMWxGquyiynvMACKviAJ0AI7Kd5DEMZkP9
+AAD5oQYVr/hCAAAAAAAA7hYHK1AEgABZMzAdlcKM2I4XGpW6+Z/tOJAJpQD/9rwNoAMFAIkiZJDd
+wKH6SqYdoAIFANEPwDAJzDT9oQYVr/ZGAIsiZb/hK1wY6iQACWAEgABYGJnAwfxKph2gAgUA0Q8u
+IQn4QrAVr/sFAAubAQucDCwkFOv0AyxBAoAA5vQAL3YCgAD5xgAPMA0VAA3uAp7x/VWmFe/2HgAA
+AAAAAPoAgh2gK+UA7JapG+gEgABZMqf+EQIdoAxFAPQghhWv+3YAAAAAAAD/9OwNoAMFAJ8W/iDm
+FaAKBQBZMvwdlY0alYeM2I4Xjxb5n/dYkgCdAP/0SA2gAwUAwDDAigjINPmhBhWv9A4A2iD8QGgd
+oBvFAFgYacCh+kqmHaACBQDRDwAAAGwQBIYwxIL4EIId4DflAPb4AAMwNAUA9MeGDaA6NQD3QS4N
+oDx1AMOxe2oK94cODaA9VQB9YjAiIAV3IU74SWYNoD7VAP5D5g2gj1UA/mEEHeACFQDRDyIgBXch
+DvhBZg2gJNUAdCEDwCDRDygwMP0eoALT+/UAKjEI+0MGDeACFQApNQjRDwAAAAAA+GEEHeACFQDR
+D8Ah0Q8AAGwQBC0wPCYxCycgB/5ByBWgCgUA6yIAI2MRAAD1oAvokXcBAB+WPPmgDGtQOdUALfJp
+75VCH0ZCgACo3SjQBQx+Ee/uCAMwTQAA+QAMlWRmHQAp4p73IAy7ogCdAC7inc3gjyJk8SQFCEf1
+AAZBEgCdANEPGpVqKSEHKCAHJNEI9EEEHaqZAQD4AgAHsYgBAOr/EAxEAoAA6EQCDM8CgAAPmQLo
+vxEGQP0AAPksdAWkuB0ACpkCD7sCmeCJIP3B5B2v7xUA7+QYJlDBAACa45vpCEQCG5Ue5OYELM4C
+gAAJaQKZ4fksVgXgBAUAlOWb4gnJApnoKtIfmuvp0h4h2VEAAOnmCidRAQAAWS5aiycelQv+4AAW
+v8wFAO7dCAXQgQAADKoBJtad5LYKJVEBAACauZq40Q+JJ4ia/SEIFa/PBQDtkgsk2IEAAO+/AQp3
+AoAArOqv3a6I6JYKJukBAAD7oASjogCdAOnEAAGAoYAAyExtSQUDAIYJAmGKsArqCP1ABaRiAJ0A
+mrDRDyt8GOokAAlgBIAAWBfYY/7JjCf7hAAV780FAA27AerGCiXZAQAAm8mbyNEPwuJ+2d8o8X99
+h9nqJAAJ2ASAAPyAaB2j+fUA6SUIKugEgABY8xHRD8Wl6iQFKVAEgABYDn/RDwD/QGgdr/myAOzd
+DAGBcYAADUkUuJjoSDYJ0ASAAG2JBQoghgwCYwlMDO05CAfRAQAAbckFCUCGCgJlDegMqPgojECY
+sNEPAAAp/ECZsNEPAGwQFP0rqgWgBwUAlzCXEZcQiUHqwkMqQASAAOaCACtYBIAAJCAHLqECL6EF
+9vgAAzc5AQD1yFAN4UQBACWhBO6iACdr/QAA6xYCIqv9AADtpQIqrwKAAOXuCA//AoAA/88AD3AA
+2gAAKaEFK6EE7qIAJMgFAAD9f+AVr5kBAOmlBS5nAoAA+WAT/GIAnQDs7ggM/wKAAA/uDA4AhweX
+YO4ABwTzF4AAHpWtK+JLjbEsoQWPsJ/Qj7AJzBGsnP3gJhXvnAEA57YAJav/AADntgEl+GEAAPVg
+H1QfzQUAnBeXuA3/Af4iphXlSgUA6rYJJ/kBAACfGY0gn7efti1WPvTAEIsSAJ0AKRYRLiAEKxYW
+mBP1wBqyEDoFACkgevrAGQQiAJ0AH5R1jBGNEO0WEypXAoAA7BYUKnAEgAD0gBEKEgCdAK+qLKKe
+94AjmdIAnQAqop0clIsETQkM3RGs3JwYHJV/7N0ICecCgADtFgYlGymAACMWFyMhByQWGBSUYAMD
+SgwzEQQzAhSUYJOggyDyIWYV4C0FAJ2j9UBGFaANNQDjEhcppgKAAA1EApShLSAEJBIYnR/1oA8E
+EgCdAB2VaCQWGSIWGhSVZwmSCewiEQbrsQAAot0iEhkt0n+dGgQiAiQSGo0fIhYSIkEiJEEnnhXp
+Fg0m6+0AAA1COCQSGZIcIhIaLhITLRIUl6b2IQgV6J4dAPlBRB3n7sEADt0CKRISLhIRnacdlUsu
+pQuZpC3SvIkW/CIGFeMutQD/oAw0IgCdAC46J/+gDawiAJ0AHZVFDk4RDe4C/0EmFaANBQCdqI4e
+nqotIAcNLUDzsAAWt/71AA7dAp2rjhXqkn8vdwKAAK/u/y/oFeANNQAt5p0tUkkuUkib8B+VNKzu
+KlZBD38IL1ZAK5Z/KxIVL1JGLlZIC9sI78oIBdkBAAD7YBUrogCdAMmF6fQAAYCZgABtOQUIAIYJ
+AmEqUkYKygj7QBZsYgCdACpWRogX9MAHux+IAQCY+4kgCJkRCTkC+eAmFeACBQDRDyelBf/1+A2g
+CQUAHJRJKoEn/V/wPSIAnQApFhEqIAQrFhaYE/VAGJKSAJ0AKxYWmRSYE/VACyoSAJ0AixO0Gvto
+IBXgDDUAWS04iBOJFPoiyBXv9yoAAAAck+yMyJgT94AS4JIAnQAM6hGvqi2invegFIHSAJ0AKqKd
+ZKKHHZPj4hYbJhP9AACS2PIjaBWv9vYAIxYXHZTvIyEXkxojICyTHS3Ss4MbDTMMHZTvmRyeFQ0z
+AiMWEvIi6BXv+QoAhxyOHR2U6u/uEQu/AoAADncCDXcClx72IQgV7/m6AAAIaRAJiQKZ8IIgCCIR
+AjIC8+AmFaACBQDRDyIWG4Iajh0CDUbv7hEO7wKAAP3GAA9y0kEA97gAFrAiOQDt7gIJEwKAAPPG
+AA8wAhUAAu4Cnh7yI2gVr/hSAC+AGJgTKxYW6RYEJ/0agACLE7Qa+2OgFeAMNQBZLPWIE4kU+iLI
+Fe/y9gDaEPpJ4BXgDDUAWSzvtBr6SYAV4Aw1AFks7IgTKxIW+EpwFe/yWgCLE9oQ+2MgFeAMNQBZ
+LOVj/6vaEPpJ4BXgDDUAWSzhLCBT/CCGFa/6LgAiCojRDwDbkPwAAh2gDRUAWBB8IgqI0Q+KGO2U
+qB64BIAAraqNEvWgCJGSAJ0ALnKBm+AuVkEqVkArdoEuEhUmUkYtUkgrUkmmyqzdDrsI7VZIJdkB
+AAD7YApDogCdAMmICIQC72QAAYCZgABtOQUEIIYPAmMqUkYKygj7QAtsYgCdACpWRixygovCjRft
+VYklhpGAAI4gCO4RDj4C/sAmFaACBQDRDwAAAADvuwwEAZGAAAtOFO3sCCxIBIAA7T02D9AEgADT
+D23ZBQlAhgoCZauIiRkOOgxtqQUIYIYJAmctEhULzgyu3S3cQPyoxhXv9PoAiBn4qMYVr/TSAAAA
+AAAA/+5ADaAKBQCUFSsWFvgghhXgCgUAWTC9iBMck06JFCsSFozIH5NGjhX5n+wYkgCdAP/tfA2g
+CgUALXKAm9EqVkEtVkD68AYV7/vGAMCgwNoNzDQdk0D9oQYVr+zqAAAAK8AHCwtB67wYLlAEgABY
+FiKMIAjMEQw8AvzAJhWgAgUA0Q/aEPpJABXgDDUAWSx5LSB6/CCGFe/ztgAAAAAAAOa7DAQBkYAA
+C04U7+wILEgEgADvPzYLUASAANMPbfkFCYCGCgJpq4iJGQ46DG2pBQighgkCay0SFQvODK7dLdxA
+/KjGFe/6egCPGf6oxhXv+lIAAGwQCoo1G5Qs/yhgBeuKQQAIiAnpky4cRwKAAK+PL/J/q5mpiPng
+IDQgDgUAifGM8JyQi/As8ggptgHu9gAn6/8AAO72ASYOcYAAJfIHKFIAJ1IL+yckBedIwQDmUgEi
+S+kAAAmHOBmUGfNuKBXohh0ACYgB6ZQXHEZCgAAIMwgo0YkKC0f7KCYFp2YBAPkADSxvdwEAZbPl
+7JLoF8PhAAD0gAvDEgCdACtRCJsS6SIAIVkhAACbGSnWPpgn7AAFAUiBAAAJAmEJAmEJAmEJAmEJ
+AmEJAmEsMAQtLE71gCVikgCdAC4xIhuT/CwyFY8wK7KNny6cLe4lIi5mQoAA7LsIDtAEgAD9b1AV
+4AxlAO0kQSXZoQAAWSwaihn6aMAV4AxlAFksFyosYfpp4BXgDDUAWSwTKixd+mmAFeAMNQBZLBCN
+OfggSBXgTPUA/EFmFeALBQDrJgwmgDGAAJLckjkbk90tMBYqskMoMQcvMA3uMAwlUAUAACq2Qysw
+ByklCCwkBSskBy0kFi4kDC8kDY4g+EDkHaAPBQD+QEYV4AhlAOgkBC92AoAADm4CnlEnJQn0gBB7
+EDsFAPqADPxgPDUA9YVODaA9FQD8hE4N4D7lACowBSclNv9AFAwgTyUA/0ATzGA41QD5QCANIgCd
+ABiTJQhICoiM6iQACtgEgAD8wGgdoA0lAAuAAMAg0Q8AAAAAAAD1wGgd7/jWABmTICmRj/E/9BdS
+AJ0AKzr/+iBGFe/58gAALKJDwFbu1YkmY/0AAOymQy2KVgAAGJJ7iyDr1j4ny+EAAJkn6AAFAUiB
+AAAJAmEJAmEJAmEJAmEJAmEJAmEsMAQtLEjtFgkhITkAAPWAHPKSAJ0ALTEijjDsMhUkW/sAACuy
+cZwtni7tJSIuZkKAAOy7CApQBIAA7LB6JdmhAADsJEEq4ASAAFkrsIoZ+mjAFeAMZQBZK60qLGH6
+aeAV4Aw1AFkrqSosXfppgBXgDDUAWSumjTn8QWYV4AwFAOwmDCaAMYAAktySOSUkBCgwBykxCR+T
+cisxBywwDS0wDC0kDCwkDSslB//oaBWj+vUAKiUIKSUJ6CQHJ3AFAAAu9kMvMBb+QsYd4E71AP5A
+ph2gDQUAnSLnJQkpUASAAFgL58Ag0Q8ALzAEJyU29eAGkhIAnQDaMOtUAAlgBIAAW/y+ZK506iQA
+CtgEgAD8wGgdoA0lAFkE88Ag0Q8YksKLgCqiRJ+xKNZB+QAIFeAMBQDp1kAr2ASAAP8ABhXgDRUA
+WA8VwCDRDwAAAAAAAADnJTci+PEAAO8DHgFxcQAA7gwAANARAAD8pMQV4Aw1AO0lNiEZdQAA5yU3
+KdgEgABZK2IqIGEpIGIpNAHqNAAg2BEAAPhMcBWgDDUA6DQCIVGFAABZK1nqJAAK2ASAAPzAaB2g
+DSUAW/y4wCDRDwAAAAAAACpcGfpp4BXgDDUAWStPKlwd+mmAFeAMNQBZK0tj/xIAAAAAAOokAAtg
+BIAA+hCCHeANJQDrVQgq2ASAAFkEuMAg0Q8AAAAlokMp0kko0kf4IMYVr8IFAOkWBSfYYQAAArsB
+6xYHKxcCgAACzAws1kjrmQgCq/0AACWmQ+WivCTJAQAA6RYILFgEgAD5AA1q4gCdAOUWBCEB6YAA
+iBirJfUADVviAJ0A2bDqEgQjAKmAAG1pBQkghgoCYyXSRyzSSKUliBgPAgD4oA5MIgCdACXWR4UU
+7RYKJgfhgAAZkvEPAgAtkhyIGtow79YBJOHBAADshkEo2ASAAP8jiBWgDQUA7oZAKuAEgAD/I4YV
+4A4lAFv9APvgAAcwjYUAfekYaEYVL1EIKDr/ePEM2jDrVAALYASAAFkFnBqS2frgaB3gDAUA+0iI
+FaANFQBYDqLAINEPAAAfknqIMJ0TLjEnLTB6LiUi/EgmHeAMZQDoJg0t0ASAAO8mDiHZuQAAWSry
+ihP6bQAV4AxlAFkq7407/EFmFeALBQAPAgDrJgwmgDmAACLWDPggSBXgTPUA8mFmFa/t4gDqJAAL
+YASAAPqgaB3giVUA+KEEHeANJQBZBFTAINEPAIoXnRru1kglUQEAACrWR/uoxhWv+9YAAIoZKzB6
+HZJSLDEnjjCeLSwlIu0mDirgBIAA6yRBIdm5AABZKs7aQPptABXgDGUAWSrLLTIL/EFmFeAPBQDv
+JgwmgDmAACLWDPJhZhWv8kIAiBWLFgi7DPuo5hXv+TIAAAAAC4UM+CCIFeSlHQBtqQULQIYJAmUK
+aAyJF4oU5aoIBMkBAABtiQUJYIYKAmeLFwUsDIUUrLvs0kgl2QEAAPuo5hXv+RYAAIUXJVxAJdZH
+9CCIFe/40gBsEAQrMgX7IwAFoZuhAOySfBSH8YAA9SAJ8JIAnQD1IAaxEgCdAC2iLGmTbPuYyBWr
+60EADt0ICd0RDaoIiKLHnvkABAR3uwEA6KYCJYGpgAD9aQAB0B9lAH+5JYmniJqLmWSASom0jLHB
+4P8mAAywDVUA+WCGFefMAQBYAczAINEPIqYU6iYIKVgEgABb+kGMKMijj8Jk8EbAINEPKMFywNHx
+AUAN4AsFAFv60mP/3//+xA2gCwUAAAApogctpFYskgrrphQmADmAACuSCYyx/OAABjANNQBYAbRj
+/7EAACvABwsLQeu8GC5QBIAAWBQOwCDRDwAAAOokAAnYBIAA7EQACugEgABb/gbAINEPAC2iLPuY
+yBWr60EArt0J3RGtqomnH5GRjTSOmu/dAQcCCYAAjJn9gOYV54sBACjEGy+gBrD//0DGHeALFQBb
+rQHAINEPAAAAAOokAAnYBIAA7EQACugEgABZBUfAINEPAP//BA2gDAUAbBBIGZFoKiAHJRaEKBKE
+5TIAIjv9AAD2MMYV4aoBACoWg/igBAL3iAEA9QALYRIAnQCJIi0ShhqQ9eaQ7hyPVgAA6xKDJugN
+AAAF1znrFoUj+A0AAPVgCGoQDKUADLkRppkukp7/wBJ74gCdACuSnesWgiWOwYAAiKj3AA8QkgCd
+AC5irmThpStireSxoWR7/QAA76YIJY0hgAAoIBSkiAgIRygkFPUADl5SAJ0A6DwQIgxVAADqTP8o
+yASAAG2pBQgAhgkCYSIWgOsUAADQCwAAWSjQCqgC6haHJQkBgAAqCgPrFAAMYASAAFkwHclT6xKC
+KVAEgADtdAAB4CEAAFgRTtug6EEVaMAEgADqTP8tyASAAG2pBQgAhgkCYSwShtMP7TIDLmcCgACs
+u+wyAilQBIAAWBEJLBKFiifszBEKaASAAObMCAPYDQAA68adJVCBAAD6gGgd4AwFAFgN7NKg0Q8A
+AIio9wAKoJIAnQApEoUMmRGmmS2SnrN+/6AKy6IAnQArkp1ksVCwjZ2o6xaCLfcuAABgALGJJ4ia
+9yFoFa/OBQDrkggk4IEAAA7OAe4WgSpvAoAAq9quZq2I6JYKIzEBAAD6wAjrogCdAMk1yUPZsG1J
+BQMAhgkCYYrADwIADwIArar3QApsIgCdAJrA82BoHe/48gAAAIgQGZGjLRKE/CAoFaeIwQAJiAoo
+gngqEoD6IGgd58wBAAuAAPgw6BWv+vIAwCDRDwAAwLAMiTTppggt8yYAANog/EBoHaAbxQBYE1rA
+INEPKxKD2iDrvBgpYASAAFgTVcAg0Q/AoFkt2BqQaYio+R/woJAMpQBj/8UtIQn+QrAVr/8FAA+P
+AQ+KDPpChh2gCQUA77QDL3ECgADptAAu7gKAAP+mAA6wDBUADN0CnbH81aYVr/f+AAAAAAAA//bQ
+DaALBQDAoFktwBqQUYio+R/1EJAMpQD/+uQNoAsFAMCwDIk0+UEGFe/6sgAA62oMAYHRgAAKTxTu
+/AgpwASAAO5ONg3IBIAA0w9t6QUIAIYJAmEpEoGqONMP704MBMkBAABt6QUIIIYJAmMuEoEK3wyv
+7i7sQP+ABhWv+vYAKBKBKIxA+YAGFa/6vgAAbBAEhj6NPxqRUQJlDJbQjj4YkU39wCYV4AwFAJw/
+nD4rgn/02QAVoAIFAOVCOQG44QAAl7GaPymCf5k+J4Z/0Q8AAABsEASKIseN/0GAB5OakQAIqAGY
+ItEPAMieWRP826DsIgIpUASAAFktcdEPAGwQBIkniJz0BGId4CZFAPMmABWgCwUA4okMBEMhAAD5
+DQAN8COVAPFj0A3gJLUAYAAQir7AsOosDAVTIQAADKs5yrUssAAPAgBzyeUtsBAqsB902dx1oQJ2
+qdbaIFv/zOukAA1+/gAA0Q/RD2wQBBWQhw8CACNRhuhReSGBUYAAhCAlIgcq+sDoQzpykIEAAPpA
+BAUwCQUA6SYCJVEBAACaIZog0Q+MJ/2EABXvzgUA/6AEBrALBQDrxgom6QEAAJ3JncjRD49aZP/E
+hVlkX78jUADCSnQ5txmRAohUeYmv0Q8AAGwQBCggcHyHEyogB/pACBXgqhEAWQSKyKbSoNEPwCDR
+DysgcCwK9wy7AeskcC0QBIAA0Q9sEATIMdEPAIkni5qHmIib+yQAFa/MBQDsqgEDmEEAAOqICAXY
+QQAA65YKJEEBAABzgxx4MUGTmB6Pwp5wjSDA4eR2Ai7uAoAADt0CnXHRDwePDA+vDOWPuhf5QQAA
+n5iVcIMgwFHkdgIpngKAAAUzApNx0Q8AAADlj7IVQQEAAJiYlXCDIMBR5HYCKZ4CgAAFMwKTcdEP
+AGwQBGQgjmQwi/CogA3nRAEAFo+eaERUDEgRpogpgp4qPB8KShR6k3crgp1ksGYZj5Pvj5cdwASA
+AO2PmBHgfQAA+AAIHeTMHQBtyQIIAmGfsI4gnFCTs+22Ai92AoAADs4C7rYBJZBBAADRDxePjol4
+apEzDEgRpogqgp4rPB8LSxR7ozQrgp3ksDBk0/0AAJp4Zb+YwCDRDwAAAAAAAAD//hwNoAsFAMCg
+WSzsiXhrkcH//3ANoAsFAMCwwMoMnDT84QYVr/82AAAAAGwQCoo29mDoFe/PBQD4QPAV7wsFAPtA
+BAVwBgUA+uAEA/eFAQD9D+CBUVkBAIgnjYvuggokWIEAAA+/ASYmFK/d7IIIKjcCgACm7p6K7G4I
+BukBAAD/oAyaogCdAOzZDAGB0YAA/4BoHaSJHQDoFgMkQCEAAOhINgnoBIAAbYkFDQCGDgJhiBOp
+PehIDAfxAQAAbYkFDSCGDgJjCW0Mrf0t3ECdsAzDAo4iyOLAINEPH5BuHI9JiTQej54Wj0HxIAr2
+0gCdAC0xCukxCyqgBIAA9KAQ0hIAnQAMXBGmzCjCnvcAJrnSAJ0AK8KdZLI6LCEHHo80DAxKDMwR
+DswCnLCMIPkeZgWgLgUA+WBGFaAINQDutgMudgKAAAjuAp6xLiAE9cAQ1BIAnQAsIScoISLpnwkH
+c+0AAA7IOByQOx6P8JgS7FwCD/8CgACv7i7if+4WASzwBIAALbULnLT9HugFp5rBAPjmAAzwCAUA
+mLb9lKgVp//1APlg5hXoih0A+WFEHaMotQD5gA6MIyl1APmAEWxiAJ0AGJAl+WFGFeANBQDttggq
+94KAAAjuAp65LCAHDCxABswQD8wCnLsMShH3QABFMAg1ACimnY00xu8O3QGdNIoiwMEMqgL6QEYV
+oAIFANEPAAAAAAAAAOnEAAGAoYAAyExtSQUDQIYJAmWOsAbuCO8CAAfBAQAA/cAEpWIAnQD5YAYV
+r/o2AAAAAADxIARHEgCdABuPDSuyHfv5KBWseR0AB7sICbsRC6oIKiYU9KAP0hAN5QAMXBEGzAgu
+wp79wB0r4gCdAC3CnWTSCi7xePHA8A3v9nUAKPFr+OAai6IAnQDbIOw0AApoBIAAW/ed6SICLQJu
+AABlnhzaIOwkAALYYQAAWBG4wCDRDwAAAAD/YAYVr/f2ACkgVMid6yIUKVAEgABb98vSoNEPKiBV
+ZKG2K/F4ZL3f2iBb+F7SoNEPwNEtJFYNnQKdIow0BswB/GCGFaACBQDRDwCLyJkXmhn3YBhYkgCd
+AAxMEabMKMKe9wAZIdIAnQAswp1kwxsYjrHiFgolk/0AAJKIghrrxAAObk4AAIkiZZ182iDsJAAC
+2GEAAFgRkMAg0Q8u8sCZEg7MDB6PuyghF5gRDswC/kWQFa/4BgAAGo+3+R9mBaANBQDpEgIvZ8KA
+AO22CCr3goAACO4C7rYJLM8CgAAMmQIKmQKZuiwgBwwsQAbMEA/MApy7DEoR90AARTAINQAopp2N
+NMbvDt0BnTSKIsDBDKoC+kBGFaACBQDRDxiPm4oR/9gAFLANBQDttggq94KAAPnGAA82ygEA7rYJ
+LmcCgAD9JgAMsspBAPeYABYwqjkA7JkCDVMCgAD7JgAMsAoVAAqZApm6LCAHDCxABswQD8wCnLsM
+ShH3QABFMAg1ACimnY00xu8O3QGdNIoiwMEMqgL6QEYVoAIFANEPi8iaFvdgD7iSAJ0ADFwRpswu
+wp79wBAz4gCdAC3CnWTR/RiOXbC+nohl3fTaIOwkAALYYQAAWBFBwCDRDykgVmScKIvI92APOJIA
+nQAqYq5kohAtYq1k0gywu5vI6tQABo9hgAAn4IAnfDcHRxTvAgADuB0AAPSgBRISAJ0ADFwRpswo
+wp73ABPT4gCdAC3CnefUAAaO+YAAKSAUpJkJCUcpJBT1IA8mUgCdACoiFOkyBCUEyYAAwMj9JgAO
+MA4FAPxghhWsuR0AwPAvJFYtMgDzoAR6kgCdACkyAegyAivYBIAA6BYALI8SAADzIBAIUAMFAOoi
+ByrfAoAA92AARbAMBQDjtp0qaASAAOqsICpYBIAAWAth0qDRDwCdFfdgD1CSAJ0ADFwRpswtwp73
+oA/D4gCdAC3CnWTR7x+OF7C+/+EGFa/9MgAAAAD6AAId4BgFAPkmAAwwjoUA+GCGFa/9pgDaIPzg
+aB3gDEUAW/ZQ0qDRDwAAAAAAAAD/7LANoAsFAAd6AutUAA7gBIAAWAIL61QACVAEgADsjyQb6ASA
+AFgN9SoKASokVikyBAaZAfhghhXgAgUA0Q8A//F4DaANBQD8IQYV4AoFAFkrYBuN8ooZjRiLuIkX
+H48T+X/m4JIAnQD/8+QNoAwFAMDAwIoIuzQYjen7AQYV7/OeAMCgWStTG43li7gfjweKFvl/79CQ
+DeUA//g8DaANBQDA0B6N3sDKDLw0/cEGFa/39gDAoFkrRxyN2IvIHo4t+X/wYJIAnQD/+FANoA0F
+AI0iZdoZ2iD8QGgdoBvFAFgQt8Ag0Q8AwNDA+g+7NPuBBhXv97oAAIgiZYny2iDrXBgpYASAAFgQ
+rsAg0Q8AACwhCfxCsBXv/gUADp4BDp8M7yQULukCgAD/QGYdoA8FAO+kAC5mAoAA/YYADnALFQAL
+zAKcofrVphXv95oA2iDrdAAMYASAAFub/Ykx6hYELV8CgADrewgNGASAAPE/8DhSAJ0A7BIAKVAE
+gABbm8zzQABB//fSAP/2JA2gDQUAwKBZKxAbjaGLuIoV+X/wUJIAnQD/9bQNoA0FAAAAwNAejZvA
+ygy8NP3BBhWv9WYAbBAEEo688k/oFaADBQCEIYkgmUCIIJSBkyDjJgEhE+EAANEPbBAEiiiJp4ia
+65IJJAF5gAD9QEgV4A8FAC8kBf5Ahh3v/uUADt0BnaKMscDT80KGFafMAQBb/grSoNEP//9EDaAL
+BQBsEAguIASVFPXAFaOQF3UA98AWjGdVAQD0oA55EgCdACswEPcdNgXgCRUA+AACHaAmtQD3YCMs
+ICrVAPtgJMwgPCUA/WAIjCAtZQD9YBHMYgCdACkgB/SgBTkRmQEAiiLAsOsWAy0gVgAA6RYCLNcC
+gAD1IAVSEgCdABuNWKuqLqKeKRYA9cAlu6IAnQAqop1ko80uIAcfjYkOLkAK7hAP7gKeoIwgHY1R
+7aYCLmYCgAAMTAKcoYswCwtH66YDJUhBAAD4oCE5UgCdAOg8ECIMPQAAsEptqQUIAIYJAmHAMIYS
+GI0+DGYRqGYkZp0vIAToIAUvgE4AAMyBZDTj0jDRD4snirwrvDD7X/qUYgCdACysyGTPR8DR/CBm
+FeANUgAcjTWLyPdgIPiSAJ0AihIdjSsMqhGtqi2invWgIWOiAJ0AKqKdZKQjsL2dyGWvQ/ggBhXg
+DDoAAPi/97lSAJ0AKiAiZKBFLyAHFo2vDw9BBv8J6CQiJ/gLAAAu8Qaq7i71BiogImSkg41+hivg
+0QQFY/0AAODMGgzYCoAA7GYIBdv9AAALZgKWKigkIykgIP5AsBWgCkUACpkCKSQg+d/0kVIAnQAJ
+C0P5f/Q9UgCdAMDA7CQgKVAEgABbqbDAgCgkFPhAph2v+bYAAIQyG43BJyAH/RxQBeGkgQDrqwgB
+wCEAAPtwEBXgpiUA/xngBeD5tQDkJQgm4bEAAOl3AQ3fgoAA+uYAC/D5xQDpdwEH8AsAAPrmAAu3
+tMEA5yQHJsnxAAD3YBmkIgCdAA8Ahw4CYeMGAA4wBIAA9oJoHaPk4QBt6QUIAIgJAIoN5hG/ZARE
+FObUbyIgBQAAJNRz84BoHe/2igAAAAD4v+45UgCdAIknZJDei5zH4+wiAiTIwQAA+WAE3WAKxQD7
+gAYGIgCdAA7GAfZARhWgAtYAAAAAAOokAAnYBIAA7EQACugEgABb/zrsIggtB3YAAIjCZIDkwCDR
+DwCFMv0b2AWgClUA9PgAAvA7BQDtIgAq+ASAAFkpzMJm9qAIhCIAnQDCe/agCPRiAJ0Awo34oAlk
+IgCdAMOSeVm66iQACdgEgADtEgQqYASAAFkCB8Ag0Q8AAAAA6sAKddshAAAOygEqJgLJuyywAMLd
+fcFYLrIOwLDTD+6fDAdzIQAAD+s5Zb/i2iBb/MXAgCogBfFF8A3gCYUALyAgCfkCKSQg+V/mOVIA
+nQAJBkP43+XlUgCdAMCA6CQgKVAEgABbqT3/+MwNoAgFAADakJoRW/xeiRHrpAANfJYAAGP/pyvA
+BwsLQeu8GC5QBIAAWA9xwCDRDx2NrS3SjI/RitCa8IbQjiCfYZjQ6NYBJvv7AADu9n4m6+EAAJ0n
+KSQg+EQmHaAMdQD8QKYdr/ESAAAAAAAA6iQACdgEgADtEgQqYASAAFkCS8Ag0Q8A6iQACdgEgADt
+EgQqYASAAFkCGcAg0Q8A6iQACdgEgADtEgQqYASAAFkCAcAg0Q8AAIsQ2iDrvBgpYASAAFgPSuok
+AAnYBIAA7RIEKmAEgABYDTCMImXOV40TZN5S+kBoHaALBQBbqEvAINEPKTAfwuMPAgD/P/HEIgCd
+AC8KJP8/8WxiAJ0AJgol9z/xFCIAnQD6QGgdoAslAFgB2P/uCA2gCAUAAAAA+kBoHaALJQBYAaL/
+7bANoAgFAAAAAIwni8yNsY+wn9COsC3mAei2ACZgwQAA6LYBJdNhAABtSQUKIIYJAmMYjV4tgo4a
+jVib0ZqxKYKOmbArho6GwMAw7GgMAzMhAAD4zQAJv+6WAAD/7TANoAoFAPggBhXgCgUAWSmWHIwo
+i8iJEPl/3niQCAUA/++YDaAKBQDAoMDqDr40/4EGFa/vXgAAACQxCw9Ah+5MAAJT4QAA8pBoHeOq
+AQDnTPwlU/EAAOp0OA5QBIAA+pJoHaAWBQAGTjb+bgANP/flAHehCrKvbfkFCGCICQyKsqYNZhG/
+ZP+xZh2kRB0A5tRvIiAFAAD1rmYdr/KCABiNKyiB4GSAGBqNKSkiACqh03qbDCgiB4uKyLQsggll
+yvnaIFgAsdIw0Q+OKf5BRhWv7l4AAABsEA4YjSAfjB/kjB4aWASAAI2CiYPuggEg4EEAAJ7BmcOd
+wuiCAClQBIAA+YAGFaANBQD0ICYVoAgFAPggBhWgDgUA+CBGFaAMFQBYDI3A0P4AYh2gDwUA+RkM
+BeAMBQDsFgEtWASAAOwWAilQBIAA+CAGFeAMFQBYDIEqFhAUi9LprAgtWASAAP8XlAXhYwEA8xjc
+BeAIRQDvFg8pPgKAAOh3AgVogQAA6IwoFWDBAADvAAUA8IEAAO4MAAkvgoAA/xeIBeAOBQD4pgAK
+sAglAG2KeIoflLDntgEskASAAPoEChWgKIUAAgCK9WDGFeACFQCftPlgphWgCgUA7io4BMkBAADr
+6BENVgKAAOqIAg4QBIAA6GgCBmEBAADjiAIHcAUAAOi2ByDAQQAA6AseDtAEgADqTAAAwIEAAOgH
+HgbpAQAA4iwABdkBAAAiEhAoCoCoItEPAGwQDB+LyhWLyRmMFx2MyCggB+NCBCnYBIAAjNGG0urS
+AyDwQQAAmuMJMwGW4v3AJhWhKAEA/aAIFeAMFQD9wAYV4AYFAOYWACnQBIAA9iBGFaANBQD0ICYV
+4A4FAFgMMsDB/xhaBaAPBQD+ICYV4A0FAO8WAi1YBIAA7hYAKdAEgAD+AGIdoA8FAFgMJx+MGRiL
+2RyLcvxgABKwBkUABlUC44t2GaeCgADzFuIFoWIBAPwh5hWgDQUA6EQCBUghAADsAAUA2IEAAOsM
+AAVggQAA+0YAFeAIJQBtiniIH5Kg5aYBLPAEgAD4BAoVoCeFAA4AivVAxhWgDhUAk6T3QKYV4AgF
+AO3oOATJAQAA69cRDEYCgADodwIN8ASAAOdnAgXZAQAA73cCBugFAADnpgcguEEAAOcLHg5ABIAA
+6EwAALiBAADnBx4GYQEAAO4sAAVRAQAAwC7RDwAAAGwQBB2L1xyL14snKNGG/6voFe/59QD5YAYV
+4A4FAO4mByXIIQAAmfGcsyrSX5qy6dZfJABhgAAr0XmKIHujAdEPKSEabpQJ2eD+Q0QdoAAeAGiT
+6sDBDJwCDAxP7CUaLh98AAAt0YINqgxYp/PRDwBsEAQrIAfsjE8ZUASAAPogAAXwDQUAWAsg0Q8A
+bBAGJyAHHYslGYse+Rc6BaF3AQDsMgQrtwKAAKlm+tPIFaAO5QAE7jcIzAH/QAqDoAulACpineik
+AAUKeYAAitiXEZgQ90AKuJIAnQAokq5kgPQokq1kgPCwq+vWCCQHsYAAKiAUpKoKCkcqJBT1QAqG
+UgCdABuLzRiLA40QK7F/7osEG7cCgAD4wABDd1UBAOvDV3bIQQAAjzCY0IwgsEr/oEYVp/8BAO/W
+Ay5mAoAA7EwCAcBBAADs1gEiDDUAAG2pBQgAhgkCYeRmnSKV1QAAKiIH+oBoHeAMBQDqrCAqaASA
+AFgILtKg0Q8ci2WLNOy7AQlQBIAA6xYDKmgEgADrEgAp4ASAAFv/QyMSA+pmnSKUdQAAKiIH+oBo
+HeAMBQAPAgDqrCAqaASAAFgIHOokAAvYBIAA7IwEGegEgABYCs7AINEPAMCAC6407tYILHiWAADa
+IPxAaB2gG8UAWA246iQACdgEgADsRAAK6ASAAFgNXdKg0Q8AAAAAAAAA//rMDaAKBQAAACt8GOok
+AAlgBIAAWAlpY//GAAAAAAD8IEYVoAoFAFkoKh2KvIwSitiHERmKtPlf9JCQC6UAY/+SJiEJ+kKw
+Fe/9BQANrQENrwz+QoYd4A4FAO2EAy3ZAoAA7oQAKzYCgAD6xgALcA8VAA9mApaB/zWmFe/56gBs
+EASFIOJUDAKbIQAAwCAEMjnRD2wQBCogICsK8/tABAVwBAUA6iQgIZSdAABpMRj/QqAHkPzVAAys
+ASwkINogW/qcLSAgZNBx0Q8AAAAAAP9eoAfQAxUALgr+Dq4B7iQgKVAEgABb+rEoIAccixn4RFAV
+4YgBAAyICeQkIiRACwAAL4EGqf8vhQYpICKKKy7Cj+SQMmTr/QAAAOEE4N0aCdgKgADtqggF2/0A
+AAuqApoq9ERmHa/+IgAA2iBbpyEkJBQkJAXRD48p/kFGFe//kgAAAGwQBCogBcCIeoM4Foub8USA
+DeAFBQAqICDzRECF4AQVAAOpAukkICGVxQAA2iBb+mzaIFv6UCogIAoKQWqjT9EPAAAA6iQACdgE
+gABY/y1lr+z6QLAVr/7WAIsnZb+2LGK+jsGIwJjgj8CNIJ7xlcDlxgEmc/sAAO3mfiZj4QAAnCcl
+JCD0RCYd7/42AAAA2iBb+i0kJAXRD9ogW/pvKiAHHIrW+kRQFeGqAQAMqgnlJCIlUAsAACmhBquZ
+KaUGKSAiiysuYkDkkCRk6/0AAADhBODdGgpgCoAA7bsIBmP9AAAMuwKbKvREZh3v/QYAjyn+QUYV
+7//KAAAAAGwQCpQVKiAHiTCVEvZiEBXhqgEA+iBmFaeZAQCZFPTgDrSQDrUA/uAO9CAPBQCfEYgi
+G4om+iBoFaAJBQDpFgAsC/4AABaKG+oWBi1PAoAA9UAHYhAMpQCmmS2SnrRO/6Aeq6IAnQAlkp3t
+iqYSjeGAACoKGvrgB9QiAJ0ALiAE6LIIJwfBgAD3ABq4kgCdAClirmSRDylireSRC2RT/QAA6rYI
+JIhxgAAoIBSkiAgIRygkFPUAGgZSAJ0A9OAMLBIAnQCKEhyJ/x6J+55QiyCNFO1WAyLIQQAA7FYC
+Ld4CgADrSwIBwEEAAPqgJhXnqgEA+UAUeVIAnQDoQQ1iU/0AAG2pBQgAhgkCYcCAjzDz4AoSkgCd
+AIsW6hIFLd8CgACmuyq2nSkgBPEg/A3gDLUAfHFULSAFzNFkg6vSgNEPiLj3ABoQkgCdAIkWDJkR
+ppkukp60T//AGnPiAJ0AKZKd5ZQABJpZgACwivthBhWv++4ALdGGZN8DYAM+LiAUpO7+QoYdr/ze
+AB+KXi/xhmT/oRqKXIkgKqF5epuW2iBb/p3AINEPwJAMjTTttggs99YAANog/EBoHaAbxQBYDKyO
+EWTiquokAAnYBIAA7RICKmAEgABYCpGPImX/xIgQZI+/+kBoHaALBQBbpazAINEPAAAAAAAAAPpA
+aB2gCxUAW/9AYAAMAAD6QGgdoAsVAFv/DIkSCQlH9SARkRIAnQDAofogJhWv+CoALCAEixPlwg1l
+2GEAAOokAAlgBIAAWAyMY/962iBY/71kooSMImTOcWP/ai8gBy4gBByJzvxACBXgvxEA5FkIDdqC
+gAAMuwLk4s5u5gKAAB6JiiuUEvsTIgWgPwUAL5Qe+yNGHaANBQD9I6Yd6LsdAPsiJh3gDQUALZQb
++xVsBai7HQD7IgYd4A8FAP8jhh3oux0AK5QP+yMmHaAPRQAPzwIvlBb7FGoFqP8dAC+UFfsjBh2o
+/x0A/yKGHeCKFQD7IuYdqP8dAP8iZh3gDTUA7gAFBNh9AABt2gILAmEfiaQcip4bip4aip8uIQj0
+QPAV4O0FAC2UJyqUKPslJh3hVQEA7JQqKqwCgAD1xgAPcAUlAARVNu/uAgTgvQAA/yRGHajuHQD/
+JCYdqO4dAP8kBh2o7h0A7pQfLlgEgADTD21ZBQMAhgsCYcCg6sQGIkgRAAD4IKYV7/ZeAACLEegi
+ByWM6YAAi4yOsYqwmuCPsP/gJhWgDQUA7bYAJGDBAADttgElw2EAAG1JBQgghgkCYx6J0iniYRiK
+ZZuRmLEv4mGfsCvmYY3AwIDs3gwG6yEAAP+tAAw/9LoAwKBZJqcbiTmIuPkf5PiQDKUAY/26KyEJ
+/EKwFa/9BQANjQENjgzuJBQuYQKAAP0gZh3gDgUA7pQALd4CgAD9ZgANsAoVAAq7ApuR+tWmFa/y
+KgAAAP/wuA2gBQUA6iQACWAEgABYB8hj/XGOJ4jsLuww/x/uPCIAnQAvjMhk/bzAgfggBhWv9XIA
+AAAA6iQACdgEgADtEgIqYASAAFgLpdKg0Q8AwKBZJn4biQ+IuPkf5aCQDKUA/+8wDaAFBQAAAAAA
+AAD/8tQNoAkFAAyJNPlhBhXv7s4A6iQACdgEgADtEgIqYASAAFv92dKg0Q8qIAX5X+ukUgCdAMCy
++kCmHe/1qgAAHImHLMGG6BYHJgE5gAAeiYONIC7heZgXftsViSePmugWByeAcYAAipnoFgctYT4A
+ANogW/2ighfRDwAAAAAAAP0gaB2gCxUA6owgKmgEgABYBiX5QGgdr+86ABOJZOQhCCJwDQAA/iCm
+FairHQD7IiYdoV8BAPsiRh3oqh0A+yIGHaALBQD7I2Yd6KodAOqUDyqsAoAA9IYACnAKNQAKygIV
+iM4llBoqlBYDTALzpgAJ8CQFACSUHvUT8AXoqh0AKpQV9SMmHeiqHQAqlBT1EvYF6KodACqUE/Uj
+Bh3gCgUA+yOGHaCFFQD1IuYd4AUFACWUHYopiyslIBQslCIrlDbjlCoqqgKAAPsmRh2oMx0A8yUm
+HeiqHQD7JiYdqLsdAPsmph3oQx0A9SUGHai7HQD7JoYd6KodAPsmBh2oux0A+yZmHeiqHQD7JeYd
+oAMFAPMkph3o5B0A/yTmHaAEBQD1JMYdoA4FAP8khh2gAwUA8yRmHeAKFQD6pgAKuDwdACOUIfUl
+xh3owx0A/SQGHahVHQD1JaYd6OwdAP8j5h2oVR0A9SWGHehVHQAllCv0QoYdr+nyAABsEAQkIBSj
+RCQkFNEPAAAAbBAKiCIdiXcrIAfsMgAiS/0AAJkU+CBmFeG7AQDrFgUieB0AAP2ABAZwDaUA7BYG
+LAa+AACJFRaIcwyYEaaILoKeHIh2mRL/wAer4gCdACmCnSggBOeUAASHeYAAZICXiMj3ABWQkgCd
+AC5irmTgrytireSwq2R7/QAA78YIJYVxgAAoIBSkiAgIRygkFPUAFR5SAJ0AihYdiOTriOQdBg4A
+APhiABWn5QEA+cAHOVIAnQDoQQ9ryASAALBKbakFCACGCQJhwICJFI8WDJkR6XcID4qGAACKMPNA
+DGqSAJ0AjBLrEgMuZwKAAKbM68adLBAEgADRDwAtIBSk3fxChh3v/lYAAAAA6iQACdgEgADsRAAK
+6ASAAFgK09Kg0Q8AwLANjjTuxggt+tYAANog/EBoHaAbxQBYCyJj/8oAAAD//DgNoAkFAIsV5IIq
+ZdhhAADqJAAJYASAAFgG2GP/p4gV+QKAFaAPFQDoiEccAQqAAAD/Gu3/AgzgBIAA/wgGFeAOJQBt
+6gULAIYMAmH3JAAV7/xGAI4nnhCI6fvBSBXvygUA7OILJyiBAAAKWgGaEerKCApPAoAA6bsMBEBB
+AACY6evmCiVRAQAA+wAQ2qIAnQBom0SonOsWByZjwQAA/UANM6IAnQDoQR1r2ASAALBObekFCCCG
+CwJjjFGPUqyc7xYHJmPBAACLF/uAEswiAJ0A7FYBLkAEgABlvqlgAawAAIkV+SKAFeAPFQDpiBYc
+gQqAAOuIfR/4CoAA7f8CC+AEgAD/KAYV4A4lAG3qBQtAhgwCZYoU6qwEI7iBAAD6IGYVr/nOAAAA
+LiAELyAHjSAaiBz7D84F4J8RAOjcEQzKgoAA6pkCBwt5gACbch2H2fjgBhXgPwUA/uBmFeAORQAO
+zgL+4CYVoAo1AO0ABQPIQQAAbaoCCQJhHIgLLSAHKyEI/xIIBaAKJQD1QQANMd0BAO52Bi7sAoAA
+DbsC7LsCA/iBAADrdgQvyASAANMPbakFA2CGCQJnixPAwOz0BiXYEQAAjBIMzBGmzOvGnSwQBIAA
+0Q8A+CEGFeAKBQBZJSwch76IyIkY+R/p4JANpQBj/fcuIQn+QrAV7/oFAAqKAQqMDOwkFC/5AoAA
++2BmHaAMBQDstAAvdgKAAP/GAA9wDRUADe4CnrH81aYV7/SeAAAAAAAA6iQACWAEgABYCo9j/YEA
+AAAACKwM+uBoHeT8HQBt+QUIgIYLAmmIEQx7CA9PDOiMQCeMQQAAKvz/bakFCKCGCwJriBGLUgya
+DKqIKIww6FYBLef2AACLEcDA7FYCJdkBAAD6oCYV4AgFAPqgBhXv84oAjhAMiAz5wSYVr/eCAACZ
+cJty9EEEFeAkBQD04GYVoA41AP+GAA8xrwEA7nYBLVQCgAAKVQIeiAGDKyQgFA7aAg5VAo4pmnae
+eOV2BCoiAoAA8uEmFeAFFQD0hgAKcAMFAJN1lHcjJBSCE7MigxIMMxGmM+I2nSwQBIAA0Q8AiBEo
+jED4oCYVr/aqAAAAAGwQBGhDBmhCPsAg0Q8oIAawiAgIR+gkBix/hgAAiSIsMAHHrvsgBASw+9UA
+6SYCLhigAAB7ydH6QGgdoAsFAFujTcAg0Q8AAOs8EClQBIAAWP4fwCDRDwDqJAAJ2ASAAFj+L8Ag
+0Q8AbBAG+RAQBaKpBQAJKSgciHz5AABEcApFAOWCfyHYQQAA+2AEANAJFQDgmRoJaASAAOlVAgnw
+BIAA5YZ/KngEgAD0IAYV4CsFAFkkS9og6zQACmAEgABZCr/AINEPAAAAbBAIHIholxAoEhEpEhD4
+IIYV4CsFAOkWASloBIAA6BYFKtYCgADoFgIqfAKAAOr/AgnwBIAA/sYAD/AKRQBZJDYfh0EZiFn7
+DngFoAsVAP0QrgWgDQUA8IiQDe/39QBoQQXGKtEPAAAoKqAIKCgkEhKqjq+IihUDPwoI/wvoEgQp
+gQqAAOn/CA1XgoAA5KQ4DdgKgADkpDgEBYGAACT1ei3ifxmIQ4wVDb0CLeZ/LPV/6fY7IoVZgABp
+UaWNFYwU2iD/z+gVo90dAO3MKAnYBIAA/e9EFePvhQAPzCxYwGfAINEPx4/6YAQA0qcFAOcnKA2g
+CoAACEQDqn4o4n+vdwSIASjmfwM0CgdEC6lELEY77UV/IoNxgAD4v/oo0gCdAI8VjBT6QGgdo/8d
+AO/MKAnYBIAA/8/oFaPvhQAPzCxYwE7AINEPAAAo4n8HuQMJiAEo5n8t9X/s9jsq+u4AAPjf9/DS
+AJ0ALfF67BIEKVAEgADu4n8p2ASAAFjAQMAg0Q8AyW343/bI0gCdAOwSBClQBIAA7uJ/KdgEgABY
+wDfAINEP2iDsEgQp2ASAAFiREsAg0Q8AAABsEAYpMAJkkHb1IATYkgCdAP0gwAFf4qUA0Q8iMAb5
+DbAFoqkFAAkpHamIKIJ/JDAF4zIDJADZgADApP0P4AWgKwUAWSPHxirRDwAAAAAAAPoAgh2gKwUA
+7IfqGWgEgADuRAAJ+ASAAFkjvWRAoWlB1OokAAnYBIAAWP2QwCDRDyowBiswBywwAy0wBC4wBY8y
+iDOYECkxCZkRKDEKmBJb/2rSoNEPAAAiMAYkMAf/Dq4F4qUFAAUlHf0PlgWgCkUA9eAAR/ArBQDp
+8n8iKEEAAPqgBADQDhUA4zEIL3AKgADumQIJaASAAOn2fypwBIAA6RYAKfgEgABZI5naIOtEAAng
+BIAAWQoNwCDRDwAAAOokAAnYBIAAWP2iwCDRDwBsEATAINEPAGwQBCYiEfDDAA3gBQUAKCISJyB2
+GoeyGYaabQgZI5IsIqKEqFSkMwkzEaMi5yQWIqgFAAB2WwJj/9/RD2wQBBOGafUNEgWgAgUAKDKC
+CAhECBqOaKYOBKgKiIALgACxImku5tEP0Q8AbBAEgiPRDwBsEATkh4gRGCEAAClCfxiG7pORmCMl
+Qn+VIiNGf9EPAGwQBBiHHxWGsY4rjS76QYgVoAMFAOxSxy9YBIAA+aAIbCBUZQAJ2RHpzAgFA1GA
+AJ6riyvIsJq8kyvjJgwpUASAAFui9Iwn+4QAFe/GBQAGuwHjxgol2QEAAJvJm8gqIAUjJBX1QAks
+IgCdACMgB/UOHgWgSPUAKCQFK1Fm5EJ/KVAEgADyIAAB8rsdAFiNmWShEdEPAInJ0w8PAgBymVPu
+xgkvWASAAOrABSWAMYAAk7zEsnupgI3J7sILLvveAABl73P7gAgV4D/1AC/EBS5Ssvq5SBWgDRUA
+/28ADbAMBQBYAw0ZhiGInrCI+SHGFa/9IgCJy4rKcpkGnsuLK2P/pXKpCtvg/4FGFa/+dgAALSAF
+dNmRLSE2/kbkFaAKVQD9DpYFoDslAFkjH9EPjy0J/xHvzAgNd84AAIjL8wAGJSIAnQCey4sryLCT
+vCnABcOg+z/3FSIAnQCLy2W+2I3MZd7Tjs1l7s77gAgV4C+1AC/EBS5Ss/q5aBWgDRUA/28ADbAM
+BQBYAuRj/qotITb+RuQVoApVAP0OXgWgOyUAWSMB0Q+OJx+HLJ9AjSDAUeviCC7uAoAABd0CnUGI
+6ozrLewg5t8BBdBBAADvzAgEQEEAAOjmCiZhAQAAesNIyEkEAIYLAmGK6CqsEHyhfJrQiyJlvpza
+IOs8GClgBIAAWAjD0Q+NzXLZCdvg/4GmFa/85gCPzPP/+X0iAJ0A2+D/gYYVr/yWAOvMDAIBkYAA
+DE4UuOjoWDYKSASAAG2JBQkghgsCY6xJ6vxAJwxJAAAOWwzTD225BQlAhgoCZQz+DC7sUP+gBhWv
+/iYAKPxA+aAGFa/9+gAAbBAIFYXdGIb3J1I7KIB9K1It6lI1IqP3AAAsQpTsFgYt3kKAAOuqCAR8
+xIAAIwqAo6pZEbwrUi0pQvUJuxGrmeOaCA0QBIAAWRGzCiwM/CCmFaAArgAAAAAAIyqAo6pZEbEu
+Ui0tQvUJ7hGu3ePaCA0QBIAAWRGoCi8MnxWIFvcABwiQBgUA0mD2IIYV4AIqAHOmEB+G1Q+vAe92
+CivQBIAAWRFqKjJgyK9ZEVwqPQH8EgIdoAsFAFke4ioyNMivWRFWKjxQ/BYCHaALBQBZHt36OgId
+oAsFAPpgAEUwLMUAWR7YKj0C/A4CHaALBQBZHtUchr6NcC5wNi9wN/biZhWgClUA8iAGFaA7BQBZ
+IoiLFrEicrFKKFIjJ0L1qCgJiBGod4p6g3fjMg4ley2AAPNf+ujSAJ0A2nD6AAId4AwFAFkRUBuG
+qop6C6oBG4apC6oBG4apC6oB+uFGFa/80gAAhxSCFcCw6nIOKWcCgABZHrSKfwIsCv+IABYwCwUA
+WR6winL+WAAVsAwFAFkfQtsg+uBoFaAMBQBZHz8rQpfxbsAN78MFAMAgbQhoLlImLUL1ri4J7hGu
+3Y/XLvwgA+4B5vYKJ3EBAACe+Z74ltiW2ZbaltuW3Jbdlt6W3ybWECbWESbWEibWEybWFCbWFSbW
+FibWFybWGCbWGSbWGibWGybWHCbWHSbWHibWHytCl7EieysCY/+QZLBzwCBtCGgoUicvQvWoKAmI
+Eaj/ifconCADiAHmlgokQQEAAJiZmJiW+Jb5lvqW+5b8lv2W/pb/JvYQJvYRJvYSJvYTJvYUJvYV
+JvYWJvYXJvYYJvYZJvYaJvYbJvYcJvYdJvYeJvYfK0KXsSJ7KwVj/5AAAAD64WgVoAwFAFke/ytC
+lmSwVvYghhXgAgUAKFIlJ0L1qCgJiBGod4536hIEJ2iBAAAD3QHm5gom6QEAAO3mCSlYBIAA/cEG
+FeAMBQD7QUgVoA0VAFgB75Z7lnqWeZZ4K0KWsSJ7I7KHFPrhSBWgDAUAWR7lK0KVyrbAICxSJCpC
+9awsCcwR/UAARTALBQD7RAAVoFxFAFkeRytClbEieyPZ+uEoFaAMBQBZHtcqcgj6kqgV4AwFAFke
+1CtCmGSwcMAgbQhoLlIoLUL1ri4J7hGu3Y/XLvwgA+4B5vYKJ3EBAACe+Z74ltiW2ZbaltuW3Jbd
+lt6W3ybWECbWESbWEibWEybWFCbWFSbWFibWFybWGCbWGSbWGibWGybWHCbWHSbWHibWHytCmLEi
+eysCY/+Q+uGIFaAMBQBZHrPRDwAAAGwQBPhACBWvyQUA6SkBAYJJgADTD20ILXOBPCowACwwB3Sh
+M4oj6asIDmcCgADsMwgF2QEAAOs7Fnm4BIAA43QAA4CxgABj/8kAAAAAAAAA+m8AC7//qgDzDwAP
+cA0FAA7TONIw0Q8AbBAEKSAHG4TfJyEI+AIABXGZAQDohSwczAKAAOl3Ag1SgoAAC6oCG4Sj+mAG
+FaAsBQAIdwKNIJsy/GBmFaAONQDo2AIO7gKAAA7dAp0xiismIBT4QSgV4AUFAJU1lzSYNpk46jYJ
+KzICgAAGRgKWN+UkFCGQwQAA0Q8AAGwQBCQgIhiFC/JBaBXgBRUA5EAhYjP9AAAogn8AgQTgZhoK
+qAqAAOYzCAKr/QAABTMCkyrRD4kpmSrRD2wQBPUJ+gXgBBUAJVJ/hiuDKQBRBPyAAQPf+PUA5jIM
+A7v9AAAIdwMHZgHmMwwKggqAAPKNAAkxM50AoyLRDwBsEAQoIAUqIAfTUPkABYxRqgEAjSuMKf2A
+BS1iAJ0AjyeP+sHg/8AEu+IAnQAXhF8MqRGnmSiSnvcABWHSAJ0AKZKdwGHxKnAN4AUFAB6EWy0g
+BxiE3huEjfxBBBWg/REA9fAAF7HdAQDr/wIO7AKAAA3MAgjMAp+Q/EAIFeArBQCbk/8gRhWgCzUA
+6NgCDu4CgAAL3QKdkY8pLSAUjiuemZ+YmJaclOWWBS7qAoAABt0CnZclJBQMrBEHzAgrxp0DDkdp
+4gTAINEPAIon+oBoHeAMBQDqrCAqaASAAFgBetKg0Q8AAAAA//1cDaAJBQCLImSwjAMMR2nCaYkn
+jprk4HVk6IEAAIqZE4Vw8UgwDe/EBQDwACANoC+lAABkoHKL0OTeAQUBkYAAerEqKKAAf4Ekh9Ms
+oAfueQgOZwKAAOyqCATJAQAA6askfWAEgADqxAAOfrYAAAq+DA5aOMuhiKJzibfAINEPAAAAAAAA
+APdPAA5//3IA//40DaAKBQAAACusGOwkAAlQBIAAWAb2Y/9hi9KK0eTZAQXYQQAA69YCJVPBAADq
+1gEkyQEAAHmrIYzTHoQFqsqa0Z6gjSDjpgIu7gKAAAbdAv1AJhXgAgUA0Q8eg/2eoI0g46YCLu4C
+gAAG3QL9QCYV4AIFANEPbBAIKCAFJiAH+oBoHaAZNQDqFgYqoASAAPkADDVhZgEAiCIPAgAPAgDx
+GNwN4AoFABOD4gxvEaP/K/KeBmUC92ARvNIAnQAn8p1kciz6QGgdoAslAFkhXumD3x0RugAAKpII
+90AOyJIAnQAoMq6VFA8CAPcAD4tSAJ0AJTKtZFHoK6z/K5YIZFHIHoRV/MKAFeAMFQDmhFMegQqA
+AO2D6B5gCoAADswC7BYFK9AEgADs1kArSASAAAkghgoCYwkAhgoCYRiFB/pACBWgCQUAKRYAKICA
++uQAFeAMFQD/CKoF4A0FAOkWAixAQoAA+CAmFaAe5QBYBGD2IKgV4A8FAO4iCS1YBIAA+kAIFa4N
+BQD+QYYVoAwFAPwgJhWgDBUA/CAGFejuAQD72AAXMA0FAP4gRhWgHqUAWARPH4PBJ/ZABmCGCgJn
+BkCGCgJl6RIEKVAEgAD8ACId4A4FAOUhCSrYBIAA/yAAFLD/9QDzIABE8AilAOiWnSrgBIAAWJ+O
+LCAV/AgCHeALBQDrJBQq2ASAAFj4OcDW/HWmFeAcRQAsJAUEDkdo4gwvIDrAj/ngB7QiAJ0AwCDR
+DwQJR2mS9Ykni5rksHBk8IEAAIuZFITF8W6ADe/FBQD1wAQH8COlAIzgyrx7wSotsAApsAdz0SGG
+4+9oCAzPAoAA6bsIBEEBAADouyl96ASAAOvUAA7+tgAAC80MDas4ZLCgj7J08ZTl7wEN/eYAAGAA
+kAAAAAD3bwAOv/9eAP/+SA2gCwUAwKBZINIZg2Mqkgj5X/DgkgCdANog/EBoHaAbxQBYBkb//VgN
+oAoFAMBQwIoIqDT5IQYVr/hSAAAAACtsGOokAAlgBIAAWAY8//y4DaAKBQAAAADaIPxAaB2gG8UA
+WAY2//xYDaAKBQCKJ40WwMDqrCAu2ASAAFgAiNKg0Q+M4orh5esBBmBBAADs5gIlU8EAAOrmASXZ
+AQAAe6sjjeMfgz6q2prhn6COIMDx5KYCL3YCgAAP7gL/QCYVoAIFANEPH4M2n6COIMDx5KYCL3YC
+gAAP7gL/QCYVoAIFANEPAABsEAQlIAcoICIXg7fzDwAMcVUBAAdVCegkIiKoCwAAJFEGo0QkVQYj
+ICKJK/zx6BWgChUA5DAeYdv9AAAAwQTguxoNUAqAAOuZCAVT/QAACpkCmSrRD40pnSrRDwAAAABs
+EAQpIQSHIP8gABS1gx0A6XcIDEeCgAD47wALsAoVAPb/gBXkkwEA5nIALIEKgAD9QAEFX/j1AAio
+A+aqAQyCCoAA+yAEANE6nQDoZgEKQAqAAAhmAuZ2ACKBEYAAJSECyEuwWuolAimQBIAA0Q8AsVvr
+JQIpkASAANEP0jDRD2wQBCchBIgg0w/2/+AVr5M5AOklBSsvAoAA5YUIDO8CgAANXQwNAIcqIQP6
+ACId5sMBAAw7YAoKRvxiYEdQDAUADJ0RDV0MDSCHDDtibz4X+ME+De/99QDIoXOhKgmSEaIy0Q8A
+AAAA5yEEJMgFAAAJCU8pJQV3kVGwdgxlEfUAAEL//v4AAAAJlBGkNP7gABc1lB0A7ogIDM+CgAAJ
+iAz5H4AVpEQBAO6CACoBCoAA6SEFLbAKgAANbwMP7gEOZgKWgPhACBWv/oYALCUF//6cDaAJBQAA
+AGwQBNgg/wAoFa/MBQAMjAHrggIq1wKAAO2CAymQBIAA4lQMChgEgAAKuwzrhgIpLwKAAAWqDKzZ
+peLihgEkyQEAAHkrN8mvqiV1kzvITW1JBQIAhgMCYYWBi4KqVXlRZ+WGASqQBIAAyLDRDybMQJaB
+9wAGFaACBQCSgtEPDSIM8wAmFa//BgAClwwHSxTrRAwJqASAAG25BQIAhgUCYeczCAYRAQAA0w9t
+SQUCIIYDAmONggeiDKLCIixA4oYBLv1WAABj/6QAIsxA8wAmFa/+ZgAAbBAEiDMIiFdvhAOJIs6W
+iiflMgQqWASAAOMyBSpoBIAA+0QAFaAMBQBb/8DqJAAJ2ASAAAtQAMAg0Q8AbBAEGoMFG4KeGYMC
++VAQFa/+9QDrKwoJAQqAAPcwEBXgDBUA5Eg5DjAKgAD5UAYdp0YBAOdFAQnrgoAA5cU5CdPCgADj
+USd7wASAAA2qAg5OA+53AQnoCoAADXcC+3QmFad3AQDnlIAkAHmAAMl/0Q8AAAAAAAAA74LpE/+Z
+gAAu8tLHLgLuAQ7OAi720tEPFYLjI1LSx44IMwEjVtLRD2wQBBSC3RuC2xWDlSNAgP8FtgWv/+UA
+/f/iHeAMFQDkMA1iulEAALAyIkSA0Q8AAPQAAh2gCEUA0w9timgpXQIqkQgpkQQosID6gAQA0AYV
+APsg1g2gAxUAwGAAyRoJCUcIkgHiMjkMUASAAOYhLHsbgoAADZID4ogBCxPCgADjIgILGAqAAAOI
+AvL0JhWniAEA6LSAJQCRgADJhbFE53wEIqgJAADRD/8fAA3gAxUAYAABwDAo4tIPiAEIOAL52kYV
+r/9qAAAAbBAEGoJv6CIDIVv7AAArsnwqon/HnOmIAQ3eQoAAq6oLgADSoNEPAGwQBByDXAIrCQy7
+Ciqyf4yhjaCdwI2g44JgFdgLAAAosQL9oCYVoAQFAJSg5KYBJUv7AAApkn7jMn8kQ/0AAPwAIh2v
+iAEA6LUCLM5CgADpMwgEAumAAIk37jICKQEKgAD9gAEH3/j1AAj/Aw/uAS42Ai2SCuqSCSaBeYAA
+4oKAFQERgAAooAACiAqIjOygBy1YBIAA+mBoHaANNQALgABlr+HRDwAAAP//RA2gCgUA77EDKkgE
+gAAJ5BYdgeIq0oIA8QTgThoPgQqAAP2AAQff+PUACP8DD6oBDqoCKtaCCeQWY/9wAABsEASGIIdh
+iWCZcIhgFIIoIyEE9wAmFeAKBQCaYOpmASMr+wAAJVJ+5EJ/IZv9AAADA0/jJQQqrkKAAOVECAGA
+SYAA0kDRDwDiIQUtWASAAAvkFh2BwizSgvpABADQDxUA4K4aCQEKgAD94AEH3/L1AAL/Aw/MAQ7M
+AuzWgioQBIAAC+QW0Q8AbBAEJCELJEz4BARDIkz8sDgCgzjSMNEPbBAGFYL7+QNaBe/05QDTDyNS
+rgACACiS0ASIASiW0FiHIlkjaJIQFoLzHYIGCCwQDDwCDcwCLFauG4LvGoJe0w8qtoQpYlv1BdwF
+4AMFAOeBwhSCqYAAFILpEoLqK3IxKmKkqzsJuxGrqi5CgC0ggAAwBPXABAdw3Z0A7kaAJvxQgAAs
+oh/IyfoAIh3gDAUAWQMhLWJbsTPtM8FyIIMAAPIgCBWv9OUAH4LYLvKCBO4B7vaCISwtAABYhvnR
+DwAAGILTG4LTwKAqtsAvgsgZgtEJ/wH/GQYV7/+GAGwQBP8FnAXgGBUA8wDyDeAZVQBzmzaMJ43D
+AzsJiMKY0I7CD7sKKrF+/cAmFeAPBQCfw+/GAiVT/QAA/kBGFe+qAQDqtX4lAKmAANEP2zDsIgIp
+UASAAFkew9EP6LF/L8gEgAAJ5BYcgV4qwoL7AAQA0A4VAOD9GgwBCoAA/cABB1/49QAI7gMOqgEN
+qgIqxoIJ5BbRDwAAbBAEGIKoAzUJDlURqFMkMX7whHAN4AoVACsxfi8yPR6CoikxfxyBaYYi7SIH
+LIEKgADuzAgNOAqAAAdmAuxcCAbAIQAAmPGf0uzWAyXYBQAAKzV+KDY9liLRDwD6b+QV4AQFAATk
+FheBOChyggCxBP1AAQNf+fUACWkDCYgBCGYCJnaCBOQWY/+OAABsEASKIGWgUB2ChuoiAyn2woAA
+rt39r+gV4AwVAPyAQAYxqgEABqoCDcgsCN0oJyUF7cwMBFgFAAD9bQAMP/vFAOuqAQxOQoAACVkC
+A6oCmiMJiAIoJQTRD48jG4JyDw9BC/4Rq+stsn8ZgTUssn5y2RvZwPMkHg2gDAUAwMAstn8stn76
+QAgVoABOAAAA2MDzDIYNoAwFAHLRHY0hmtCOICmyfZ3hnCDsJgEky/0AAPlvphXv/VIAABmCWxiB
+IamIqOh4oSHqtn8vgTYAAM2uKrJ9aqIZLbJ7/W/mFeAATgAAAAAAAAAA7LZ/J/8hgAD6QAgVr/6e
+AByCTIghrJmp6fkPAAzwDAUACcg4+W/GFa/+IgBsEAQjIQQVgkT0YAQB9kM5AAQzAiMlBNEPAAAA
+bBAEwEAE5BYWgOElYoL6QAQA0AgVAOA3GgkBCoAA/QABBF/59QAJiAMIVQEHVQIlZoIE5BbRDwBs
+EASCIwICQdEPAABsEASFI4MgFIIt+ECEFaFVAQDqgikarsKAAORUCAGAuYAA+wAEBDaYOQAJiAIo
+JQQiQn/RDx2CIBOCHx+A5CZCfishBC5Cf5JgliGj//1gBAX2yzkADLsCr1/vJgAnKAUAACVGfyJG
+fuslBCqQBIAA0Q8AAGwQBIUjiCAWgg39BBoFoVUBAOSAZ2rWwoAApqYpYn8nYn4dgM3zJf4NoAsF
+AHJ5LytmfytmfoQhiCCYQIUgI2J9lFGbIOsmASGb/QAAI2Z90Q8AAAAAAADy4AQEIgCdAHKRHIoh
+mKCMIClifZrBmyHrJgAky/0AAClmfdEP0Q8ArN6urn6BMOhmfyqBrgAAzo0vYn1q8igjYnsjZn+F
+IYkgmVCIIJWBmyDrJgEno/0AACRmfdEPAADrZn8i/qmAAIUhiSCZUIggJGJ9lYGbIOsmASIj/QAA
+JGZ90Q+OIazfr68P7wwPvjj+z8YVr/3SAGwQBPUDrAXgBhUA9EBoHaACNQD2gEADMAAaALAiKFJ/
+6GP3cquBAADRDwAAbBAGiSKEM/EtrA3nRMEA5YBqGAQKgAD0gAQKUgCdAOxJEQgECoAA9IAEohIA
+nQClmSiSnvcABiHSAJ0AK5KdZLCmLAoA+kAIFaAIBQD4IAYVoA1FAPggJhWgDgUA+CBGFaAPBQBY
+AQMMThH1wABHcA01AC3mnSwgBioiAvkDXAXgCxUA66oCBmAFAAAsJAYqJgL4YEYV4AIFANEPKyAG
+/wNKBeAKFQAKmALoJgIl2AUAACskBv5gRhXgAgUA0Q8WgESKaGqhPAxJEaWZLJKebsNDK5Kd5LA/
+ZWP9AACcaGW/X2AAA8Ag0Q/aIOtMGClgBIAAWAMgwCDRDwAA//z8DaALBQDAoFkdoIpoa6G4//80
+DaALBQDAsMDaDa00/MEGFe/++gAAAABsEASII4ch9EBIFe/JBQDpKQEKVwKAAAp3DKpVlSLnJgEk
+2QEAAHt7BKh3JyYBqJLkMBphEQEAAKeldSMW4jQAC5gEgABtSQUCAIYDAmHScNEPAAAHKQwJSBTq
+jAgrsASAAOpKNgmQBIAAbakFAgCGBgJhA5IICEwMbckFAiCGCwJj0nDRDwAAbBAGjCcegWD7gSgV
+r8sFAOnCCiZAgQAAC4gB64ACFVOBAADqxgkkyIEAAOnGCiRBAQAA6KsKecoCgACNy6ramsmboI8g
+9UCmFeAIJQDppgMv/gKAAAj/Ap+hiSKeouSmBC0oBIAA8S1MDedDAQDjf+YSIe+AAOxJEQgECoAA
+9IAEUhIAnQCjmSySnveABanSAJ0AK5KdZLCVLAoA+kAIFaAIBQD4IAYVoA1FAPggJhWgDgUA+CBG
+FaAPBQBYAIEMThHzwABHcA01AC3mnSwgBioiAvkCWAXgCxUA66oCBmAFAAAsJAYqJgKZUtEPKyAG
+/wJKBeAKFQAKmALoJgIl2AUAACskBp9S0Q8AABZ/xYpoaqE3DEkRo5kskp5uwz4rkp3ksDplY/0A
+AJxoZb9p2iDsJAACWGEAAFgCotEP0Q8AAAAA//04DaALBQDAoFkdIopoa6G9//9IDaALBQDAsMDa
+Da00/MEGFe//DgAAAABsEAQrIAcWf6gZgEH8/7YF4MsRAOohCC5igoAA/YYADnG7AQDsNgAt3AKA
+AAuqAgmqAocgmTaUOJU59mBGFaAiBQDyYGYVoAgFAJg6mDuaNPzgABOwCDUACHcC5zYBIZDBAADR
+DwAAAGwQBCwgB+siACnQBIAA/AAiHeAORQD8AgAGMD8FAFkeqh1/fxh/vB6Atu0ABQ1IBIAACQJh
+CQJhCQJhKSAHLyEICQlB7qYCLMwCgAD55gAP8AsFAOj/AgUQwQAA76YAJUhBAAAEIIYJAmMEAIYJ
+AmErpBbRDwAAAGwQBCggBxp/pAgoQAqJEAqZApkwhyAdf2wWf9nqf6gbvgKAAAdXApcx5gAVAbgh
+AAAHAIorIQjtNgQsZAKAAOy7AgrPAoAA6rsCBOOhAACcNfpgxhXgDgUAnjcEAInqNggky0EAAJk5
+4yEXAZDBAADRDwAAbBAElzYZf1Ecf1D8/qQF4B6FAP5gZhWgCzUA7TYCKsbCgADsNgAqeEKAAOj/
+AglWAoAAC6oCGICkD28CmjGLGps5ihkJKQKZNJo4iRgI/wIYf6+ZN5816AAVAZChAAACAIoiPDDR
+DwBsEAQWgF0mYn+JYYtgm5CKYPlAJhXgCAUAmGGHIZZwl2HiZgApqASAAOYmASMzIQAA42QACxAE
+gABtSQUFAIYDAmHRD2wQBAUGR2hiBcAg0Q8AABeASSdyf4xxiCeOcJ7AjXD9oCYVoAsFAJtxio3n
+pgAkSMEAAJlw+uAmFaACBQDnhg0juyEAAG1JBQMAhgcCYdEPbBAEjSKJIPpAaBWvzAUA7CwBCl8C
+gACpuKyqq93tJgIlUQEAAOijL3k4BIAAyTvJSeI0AAyYBIAAbUkFAgCGAwJhiHAPAgAPAgCriOqB
+UXyQBIAAmHDRDwmoDOi6DAGBmYAACEsU7bwIKZAEgADtTTYMsASAAG3ZBQIAhgYCYagy604MBhkB
+AABt6QUCIIYDAmOqzy/8QO92ACyQBIAA0Q8izEDidgAskASAANEPAAAAAAAAbBAEGoAUliL0QGYV
+oZcxABh/D6qZKZCACDgCmCAJWQyZIdEPbBAMlBWVGpIZhRmWFIkwhVcnFgvnEgop8ASAAPSkABXn
+yUEA9YAeqReZAQD7IeAVoB0FAPwgZhXgCyUA+iEGFeSqHQCDU4IbiBj7QCAV788FAO9fAQ3vAoAA
+7e0IDEcCgACoIpIcrzLiLEAu0ASAAPOgIwKiAJ0A1qDrxAANz8KAAPmAEpViAJ0AiKGDHImgCHg2
+CHcMmTDoNgElSCEAAOkGAAGYIQAAAwCKjaGDYoqjCN0MnWGqinirAbEzmmPywEYV4AkVAP0tAA7w
+CAUA7Zg4BcgJAADonDkEGEmAAI0c5HL/ZuhBAACEFe9EEQZABQAA9QAXaqIAnQAYfpnAIP+AAgWw
+BgUA6BYGJEBBAAD4IOYVoACuAIkW6QAFDpgEgAADAmEDAmGLoGSxnu7LCwOIoYAAscj1AAhSogCd
+AINTrznpnEAt0ASAAPlgG+riAJ0Ai6ANKQvksHtkyCEAAAt4Ng0rCui2ACVYIQAAC0CICQiKi6OD
+oAh3DKuLCDMMI6YAI6ICK6YD6LsHczAFAAAjPAHjpgIjhWmAAGQiNP2jABXgAgUA6BIHJvBwgADo
+ABUOmASAAAMAigMAivKCaB3gAFoAAACJFukABQ6YBIAAAwJhAwJhi6Fkv0sLeDYNKQsNKwrotgAl
+WEEAAOuGAATIIQAACRCKi6WDoQh3DKuLCDMMk6GDpJul6LsGczAFAACxM+OmBCOBaYAAZCG86BIH
+JuhhAADxv/dvEAIFAOgAFQ6YBIAAAwCKAwCK8oJoHe/7ngAbfneCGIQZLOQCihz2wACBsAj1AAgz
+Cuh+SRNoBQAALaUB+IDkFeQzHQCjIhp+QPIgaBXqmQEA7bg5DM8CgAAKmQKKG40aG35nmaCJQCRB
+Gpii46YDIRAFAADjf2Qc/gKAAA8vAp+hj+MLmQKUpvlAhhXh/zEAo/8v8ICDFJOnD90MnaXRDwCD
+obPL82IADn/5ZgCcEpMRhBWWEJ8d70QRBlAFAAD1QAgCoA0FAOwWAi0YBIAA7xYNLjAEgAAPAgDT
+D9MPbQgr7ssLDngEgADiuyR90ASAAIugzrSLobHd5bBXYZgNAACz/NbA9GAF0qIAnQBj/8YAihH7
+bwANP/9qAI8cC302DXcM7fYBJRghAADjpgAH+CEAAA8Uio+gi6ODog3/DKvbn6CPHX27AbEzm6Pz
+QEYV4ADiAI0cC3g2CHcM6NYBJXhBAAAPwIjvEg0m6CEAAA0YiouliaGDpKuLCJkMmaF4uwGxM5ul
+k6SIEBl/UIiACYgBiRyYkIOgZT0Yi6GzafsiAA5/9EYAAAD/9/wNoAIVAP/1IA2gAhUAnx3/+WwN
+oAYFAIwSDd8Jr8z+IagV7/OaAL+a8S2QDeSqHQCDG+LsECGYgQAAbakFAgCGAwJhhxrsrAkEwEEA
+APggZhWgAxUA6XcMBUAJAADoFggjgKGAAIsVD7sR+48ADfAJBQALkzn+ACId4A0FAAP9OGXb6YsZ
+hBgqsQcdffAcfcTyIWgV6qoBAOkSAy1XAoAADKoCmjAcfcEafuyCsCuxGvhgZhXgDwUAD9w57DYC
+KUYCgAAIRAKIGpQxFH3hieObNgQiAvJghhWhmTEAqpmCGCmQgIoUmjcJiAyYNdEPAAAAAAAAAPNv
+AA1/8g4A868ADX/uggDB0PwgZhXgCyUA+iEGFe/tagAAAGwQBIQpgywEMwwDA0gjJR8jJSHRDwAA
+AGwQBIknipz5IUgVoAIFAOWcICSgwQAA5KsMBVMhAADrojkEBQmAAIqZ8UVwDeAG1QAnCjzNNiug
+AHexR2i1LHa5CyygEGjBO3a5AmjCNS2gB8DA6lQADtgEgABb+sqLUopRybZlr8xgABkAACygEGnI
+zGAADgAAAAAAAAD//5ANoAoFAPBBwA3gI9UALSAAc9EZji7AIO5PDAdzIQAAD+I5ZS/nwCDRDwAA
+AADrJAAKUASAAFvtQeKkAA1+jgAAY//hAAD//YQNoAoFAGwQBAUGR2hiA8Ag0Q+OJ43q+8EIFa/M
+BQDp4gsnQIEAAOyMAQpfAoAAqrWsmavd7eYKJMkBAAB1kyXJMslAbUkFAwCGCgJhJYIADwIABbUI
++KoGDeACBQCVgNEPAAAAAOqVDAGBcYAABUcUuHbmRjYJkASAAG1pBQIAhgoCYQUyCOdJDAYZAQAA
+bZkFAiCGAwJjBboMqsoqrED7AAYVoAIFANEPK8xA+wAGFeACBQDRDwAAAGwQBC4gBx99cA4uQO19
+Ox9ygoAAD+4CnjDoIgAqUASAAPT6WgWgC0UA/GBGFeA8BQDsNgMsRgKAAAuIAht9ZOg2ASnIBIAA
+5AAFAZhBAAADAmEDAmEDAmEsIAcoIQj8IAAGMAQlAOVENg5kAoAA/QYADDDWTQDriAIL5AKAAOvM
+AgSRAQAA7JYGJKiBAADolgQqmASAAG1JBQoAhgMCYS1UBtEPbBAE+PzOBeAYFQDzClYN4AUVAAM6
+CQ6qEampK5F+ZLBuHH5gGH0piycukj4vkX7siAgF6CEAAJ3gnrOoqC6Rf5iy6yICJ/gFAADvlX4v
+AQqAAO2WPirgCoAADLsCmyLRD8H1c/OsGH5aCDgKKIJ/3EDqNAAJWASAAAuAAIkiADEEAFoaCpkC
+mSLRDwAAAAAA+S/kFaALBQAL5BYdfOou0oIAgQT8oAEGX//1AA/PAw/uAQ7MAizWggvkFmP/YgAA
+bBAE+kCwFaAFtQD2AUId4AuFAPYAIh2gEyUA+mWWDaAEBQBzoWr1QAY1kAOVAHWhfPVABHSSAJ0A
+c6leiCJlgFnasPpAph3gAVIA2iBYmPv6QGgdoAsFAFv/MIsgGnzwGX1KIyQFKqIfKZKKq6oJqhGq
+mSuSB/tkABWvzAUADKoB5LYKJVEBAAAqtgmauCSUBYsi0w9ksIcqIAXAyf1A9g2v8lUA0Q8A0kDR
+DwAAjSJl3+faIFuuRWWv3PZAph3gCqUAjiJl79LaIFuuJWWvxyggBo8iIyQF5v8CBEAFAAD4QMYd
+oAqVAP5ARhXv/r4AiCJlj6XaIFuuWWWvmisgBokiwKwqJAXmmQIF2AUAAPpAxh3gCsUA+EBGFe/+
+AgAA+kBoHaALNQBZGhvmoJ5tGASAABx8mtMPisj3QAUQkgCdABN8kCsyrnWzZCsyrWSwYLCt7cYI
+JYMxgADaIPxBJBWgDQUA/h/iHeAOBQBYmIT8RGQVoA0FAPtAaB3gDhUA+kBoHaAPJQBYmH0lNq0v
+IAaOIsGBKCQF5u4CB/gFAAD+QMYd4BoVAP5ARhWv+74AwLAHqTTpxggt/RYAANog/EBoHaAbxQBb
+/15j/sraIPxAaB2gG8UAW/9aZT66Y/+twKBZGdwcfG2KyPlf+qCSAJ0AY//HAAAAbBAE4iBwKSAE
+gADiOAIBAEmAAChEcNEP+oBoHaALBQBb/sAqQHAMOREJOQIKmQIpRHDRD2wQBoYn4yAHKcgEgACZ
+EPbByBWndQEA/OgggVEzAQD0gAghEgCdAPSACYiSAJ0A+kBoHaALJQBb/+XIosAg0Q+JECmcEOkD
+HgtABIAACAJhKiAFbqhnKyByfr9h2iBb/11loHcsIAXuIgIuQUwAAC0gcn7fSOl8OB8DHgAA7DoR
+AaXdAACpqi+invfgCLJSAJ0AK6KdZLD23GD6QGgdoA0lAP4AAh2gDyUAW/7xHXwqDDwR/YAARnAL
+RQArxp1ocjKKJ/qAaB3gDAUA6qwgKmgEgABb+WjSoNEPAADrEgApUASAAOxEAAroBIAAW/6z0qDR
+DwDAINEPHXwejNj3gAVYkgCdAAw6EamqK6Ke92AFylIAnQArop1ksLCwzp7YZb91YABpAACPkv74
+AAfwOHUA+f/3lSIAnQD6QGgdoAuFAFv/omWu9IkQKZwQ6QceC0AEgAD4BKgdr/viAPpAaB2gC0UA
+W/+ZZa7RixCLsyohCQsLQ+SqEQ3ewoAA+0YADXAbBQALqgL6wAYVr/sWACs8GOokAAlgBIAAW/7e
+Y/87AAAAAP/7tA2gCwUAwKBZGV4de++M2Bl76Pmf+kCSAJ0A//1oDaALBQAAwLDA6g7ONP+hBhWv
+/SoAAAAAbBAIG31CmxD4QAgVoAkFAJkSmROTFOQWBSlQBIAA9CDGFeAMJQDmFgcsRgKAAP0GAAww
+DSUA6BYBKNgEgABb/3nRDwBsEATAINEPAGwQBpUQlhEsIDuGJ+MWAiPZAQAA+iBIFa/IBQD0xAAV
+4+wBAOhVAQ93AoAA/0AARTANFQD7RQAVoACiACwgO7HdscwsJDuOa+XoCAV4QQAA6IxAL9AEgAD5
+4AbCogCdAImh6U82BP7ZgADvRAwNSASAAOkmAA3gBIAADASKCQCIDACKn7GOo4mhg6Ku/g+ZDJmh
+7qYDJdhBAADv6wZ54ASAALE87KYCIg5TAACOEC8hIoURGn0EJCEHiRIjIQn6QPAV6kQBAOmSACoj
+AoAABDMCJCEk+yAEBLC7EQDqe/Id2oKAAPsmAAzzhQEA63wDHEICgAAIRAIYfPQKmQKZcIwgnnWT
+cxJ7j5R0lXbi/wIOZgKAAO92AiaQEQAADCwCnHHrABUDqMEAAAUAigjYAph+0Q8A/+8ADT/8ogBs
+EAQEAIfIVgIjYAQAYdEPAiNg0Q8AAABsEAQpIQImIQSEIPRApBXgCAUA5mz/JMv9AADpJQIrNwKA
+AOZECAqvAoAA9I8ACnAAvgAlIQUmIQSxVfRACBWvVQEA5SUFI0v9AADlYSl8zwKAAOlECAq/AoAA
+B0QMBACHCFhg5AAHAvMvgAAiIQUJIhGiUtEPAAAoJQX//1ANoAUFAAAAAAAAbBAEKCAG6Iz/KVAE
+gAD4QMYdoAsVAFuXScAg0Q8AAABsEAT0QIQV5UMdAOIiACongoAADFURpSIEIgwiLf/yR+gVpEMB
+APqABADQBRUAAFUa5SIBCgIKgAACAhnRDwAAbBAEwFEDJCwDIi4CUjmkItEPAAAgAyciIAMnRCAD
+KC4gAylJIAMp9SADKnIgAyrVIAMrbiADTQIgA0zyIANM+iADTQIgA0zyIANM8iADTPIgA0z6IANN
+AiADTQIgA0zyIANM8iADTVQgA020IANNVCADTVQgA020IANNtCADTbQgA01UIANNVCADTVQgA020
+IANNtCADTmEgA09bIANPZSADTmEgA09bIANPWyADT1sgA09lIANOYSADTmEgA09bIANPWwMPCBKD
+jpOSAAAAAAAAAAAgA4eRIAOIrCADh5EgA4eRIAOIrCADiKwgA4isIAOHkSADh5EgA4eRIAOIrCAD
+iKwgA4l9IAOJ/SADinYgA4qwIAOKwyADi4UgA4wAIAOMEyADjH0gA4ytIAOM0gAAAAAgA5RBIAOV
+jSADkxQgA5M3IAOUKSADkvQgA5MMIAOVqiADlgggA5l9IAOYPSADmHcgA5aZIAOXCyADl3kgA5e4
+IAOX8CADmO0gA5jlIAOY3SADmKEgA5iZARAYAQABAAAgA+OoIAPjqCAD4bsgA+OoIAPhuyAD44Qg
+A+NdIAPhuyAD4pEgA+G7IAPhuyAD4oggA+G7IAPjqCAD4bsgA+G7IAPjqCAD4cQAAAAAAAAAAAMB
+AAIAAAAAAAAAAAAAAAAgBGA9IARe8SAEXvYgBGA9IARe8SAEXvEgBF7xIARe9iAEYD0gBGA9IARe
+8SAEXvEgBGVqIARlmCAEZx8gBGVqIARnFyAEZv0gBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVq
+IARlaiAEZWogBGVqIARm6CAEZtMgBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWog
+BGVqIARlaiAEZWogBGVqIARlaiAEZqggBGVqIARmjSAEZo0gBGVqIARlaiAEZm0gBGVqIARmjSAE
+ZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARl
+aiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARmTQAAAAAAAAAAAAAAACAEqrYgBKq2
+IASpiSAEqrYgBKSmIASqrCAEqoggBKSmIASkpiAEpKYgBKSmIASkpiAEqWwgBKq2IASkpiAEqWwg
+BKq2AAAAAAAAAAAAAAAAIAS5vCAEuhEgBLxjIAS8EiAEu8sgBLugIAS7jSAEu4cgBLrdAAAAAAAA
+AAAAAAAAARAYAQACAAABEBgBAAIAACAFCAYgBQfbIAUGQyAFB6MgBQejIAUHoyAFBkMgBQejIAUG
+QyAFB4QgBQZDIAUGQyAFB4QgBQejAAAAAAAAAAAgBSuwIAUnfCAFK4QgBStYIAUrLCAFJ6MgBSej
+IAUnuiAFKxMgBSfvIAUn2yAFJ6MgBSfvIAUnoyAFJ6MgBSejIAUrsAAAAAAAAAAAAAAAAAAAAAAg
+BX9kIAV12CAFdYggBXGIAAAAAAAAAAAAAAAAIAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAF
+db4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1
+viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+
+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4g
+BXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAF
+dcIgBXW+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1
+viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAFdb4gBXXC
+IAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAFdb4gBXXCIAV1viAFdb4g
+BXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1wiAF
+db4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1
+viAFdb4gBXW+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+
+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4g
+BXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXXCIAV1viAF
+db4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIAAAAAAAAAAAAAAAAgBXYeIAV3HSAFeMsgBXi9IAV4
+qCAFeJogBXiFIAV4dyAFeGIgBXhVIAV4QiAFeDUgBXgiIAV4FSAFeAIgBXYLIAV37yAFd+IgBXfP
+IAV3wiAFd64gBXekIAV3kyAFd4kgBXd4IAV2CyAFdgsgBXYLIAV2CyAFdgsgBXYLIAV3ayAFdjcg
+BXYLIAV2CyAFdgsgBXdOIAV3NSAFdysgBXcMIAV2CyAFdvkgBXbfIAV2zCAFdrIgBXafIAV2hyAF
+dnQgBXZhIAV2UQAAAAAAAAAAIAV/uiAFf98gBYECIAWA2iAFgNMgBYDMIAWAxSAFgL4gBYC3IAWA
+sCAFgKkgBYCfIAWAlSAFgHcgBX/1IAV/lyAFf+wgBX/EAAAAAAAAAAAgBdCAIAXN5CAFzHggBcrE
+IAXHrCAFwcwgBcUIIAXFuFJWAAAAAAAAQb3NZQAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2Vy
+IGZvdW5kIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhZnRlciBbZmluaV0KAABmY29lAAAAAHZu
+aWNfaWQAdmxhbgAAAAB0b3MAZXRoZXJ0eXBlAAAAbWFjbWF0Y2gAAAAAbXBzaGl0dHlwZQAAZnJh
+Z21lbnRhdGlvbgAAAGJhc2ljdmlydHVhbAAAAABzeW5tYXBlbgAAAABzeW40dHVwZW5pcHY2AAAA
+c3luMnR1cGVuaXB2NgAAAHN5bjR0dXBlbmlwdjQAAABzeW4ydHVwZW5pcHY0AAAAb2ZkbWFwZW4A
+AAAAdG5sbWFwZW4AAAAAdG5sYWxsbGtwAAAAaGFzaHRvZXBsaXR6AAAAAHRwX3BpbwAAdHBfdG1f
+cGlvAAAAMAAAAG5pY192bQAAbmljX3VtAABuaWNfdW1faXNnbABvZmxkAAAAAHJkZHAAAAAAcmRt
+YWMAAABpc2NzaV9pbml0aWF0b3JfcGR1AGlzY3NpX3RhcmdldF9wZHUAAAAAaXNjc2lfaW5pdGlh
+dG9yX2ZvZmxkAAAAaXNjc2lfdGFyZ2V0X2ZvZmxkAABmY29lX2luaXRpYXRvcgAAZmNvZV90YXJn
+ZXQAcG9mY29lX2luaXRpYXRvcgAAAABwb2Zjb2VfdGFyZ2V0AAAAcHBwAGRjYngAAAAAIAKQgAAE
+AAAAAAQAAAQAADB4AAAwWAAAMEIAACAF+SQgBd3wIAX5FCAF3gAgBd4UIAXdICAF3rwgBdy4AAEC
+AwAAAAAAAAAAAAAAACADsxwgA7KwIASzrAAAAAAgA7KoIAOyoCADspgAAAAAY4JTYwAAAAAAAAAA
+AAAAAAAAAAAAAAAEAAAABAAAAAhBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWpr
+bG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPQAAAAAAAAAAAAAAAAAAAAsAAAAgApDACAAAACAC
+kMwIAAAAIAKQ2AoAAAAgApDkDAAAACACkPASAAAAIAKRAA0AAAAgApEUDgAAACACkSQTAAAAIAKR
+NAoAAAAgApFIDgAAACACkVQYAAAAIAKRZA0AAAAgApGADgAAACACkZAQAAAAIAKRoBIAAAAgApG0
+DgAAACACkcgQAAAAIAKR2BEAAAAgApHsCgAAACACkgALAAAAIAKSDA0AAAAgApIYFAAAACACkigK
+AAAAIAKSQA8AAAAgApJMBgAAACACklwGAAAAIAKSZAYAAAAgApJsBgAAACACknQGAAAAIAKSfAkA
+AAAgApKEBgAAACACkpAEAAAAIAKSmAYAAAAgApKgCwAAACACkqgLAAAAIAKStAQAAAAgApKYBAAA
+ACACksAJAAAAIAKSyAkAAAAgApLUAAAAAAAAAAANAAAAIAKS4AoAAAAgApLwBgAAACACkvwCAAAA
+IAKTBAMAAAAgApC8AQAAACACkwgAAAAAAAAAAP///////wAAAAdDAAAAAAD/////////////////
+////AAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAAAAAAAAADAgEAAAAAAAAAAAAAAAAAAAAABQAA
+AAMAAAABAAAAAiAF1IwgBdREIAXTPCAF0fwgBdG8IAXRkCAF0eQAAAAAAAACAAAABAAAAAgAAAAA
+AAAEBAhOQQAAVjAAAFYxAABWMgAAVjMAAFY0AABWNQAAVjYAAFY3AABWOAAAVjkAAFZBAABWQgAA
+VkMAAFZEAABWRQAAVkYAAGFsbAAqAAAAbm9uZQAAAAAweAAAcG9ydAAAAABwcm90b2NvbAAAAABn
+bG9iYWwAAGZ1bmN0aW9uAAAAAGZpbmkAAAAAcmVnAGZpbHRlck1vZGUAAHJzc19nbGJfY29uZmln
+X21vZGUAcnNzX2dsYl9jb25maWdfb3B0aW9ucwAAc2dlX3RpbWVyX3ZhbHVlAHRwX3BtcngAdHBf
+cG1yeF9wYWdlc2l6ZQAAAAB0cF9wbXR4AHRwX3BtdHhfcGFnZXNpemUAAAAAbXR1cwAAAABudmYA
+d3hfY2FwcwByX2NhcHMAAG5pcWZsaW50AAAAAG5lcQBuZXRoY3RybAAAAABudmkAcnNzbnZpAABu
+ZXhhY3RmAGNtYXNrAAAAcG1hc2sAAABuZXRob2ZsZAAAAABucm91dGUAAG5jbGlwAAAAbmZpbHRl
+cgBuc2VydmVyAG5oYXNoAAAAdHBfbDJ0AAB0cF9kZHAAAHRwX2RkcF9pc2NzaQAAAAB0cF9zdGFn
+AHRwX3BibAAAdHBfcnEAAABpc2NzaV9udGFzawBpc2NzaV9uc2VzcwBpc2NzaV9uY29ubl9wZXJf
+c2Vzc2lvbgBpc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlAAAAaXNjc2lfbWF4X3NnZQAAAHBwbV9t
+YXhfem9uZXMAAABwcG1fem9uZV9yYW5nZTAAcHBtX3pvbmVfcmFuZ2UxAHBwbV96b25lX3Jhbmdl
+MgBwcG1fem9uZV9yYW5nZTMAZmNvZV9uZmNmAAAAZmNvZV9udm5wAAAAZmNvZV9uc3NuAAAAZGNi
+AGJnX21lbQAAbHBia19tZW0AAAAAaHdtAGx3bQBkd20AdmVyc2lvbgBjaGVja3N1bQAAAABDaGVs
+c2lvX0ZPaVNDU0kAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6AAAAADBiAABZ
+ZXMAU2Vzc2lvblR5cGUAT0ZNYXJrZXIAAAAASUZNYXJrZXIAAAAARGF0YURpZ2VzdAAASGVhZGVy
+RGlnZXN0AAAAAEVycm9yUmVjb3ZlcnlMZXZlbAAASW1tZWRpYXRlRGF0YQAAAERhdGFQRFVJbk9y
+ZGVyAABEYXRhU2VxdWVuY2VJbk9yZGVyAEluaXRpYWxSMlQAAE1heENvbm5lY3Rpb25zAABNYXhS
+ZWN2RGF0YVNlZ21lbnRMZW5ndGgAAAAASW5pdGlhdG9yTmFtZQAAAEluaXRpYXRvckFsaWFzAABE
+ZWZhdWx0VGltZTJXYWl0AAAAAERlZmF1bHRUaW1lMlJldGFpbgAATWF4QnVyc3RMZW5ndGgAAEZp
+cnN0QnVyc3RMZW5ndGgAAAAATWF4T3V0c3RhbmRpbmdSMlQAAABUYXJnZXROYW1lAABUYXJnZXRB
+bGlhcwBUYXJnZXRBZGRyZXNzAAAAVGFyZ2V0UG9ydGFsR3JvdXBUYWcAAAAAQXV0aE1ldGhvZAAA
+U2VuZFRhcmdldHM9QWxsAENIQVBfQQAAQ0hBUF9JAABDSEFQX0MAAENIQVBfTgAAQ0hBUF9SAABE
+aXNjb3ZlcnkAAABOb3JtYWwAAE5vbmUAAAAAQ1JDMzJDAABDUkMzMkMsTm9uZQBOb25lLENSQzMy
+QwBDSEFQAAAAAENIQVAsTm9uZQAAAE5vbmUsQ0hBUAAAAE5vdFVuZGVyc3Rvb2QAAABJcnJlbGV2
+YW50AABSZWplY3QAAE5vAAA1AAAAAAAADAAAAAABAAF8AAwBAAAAABAAAAAUIAYKWAAAAxUOQAAA
+H/wAAB/8AAAf/6eIH/+niCAGE/AgBhiwIAdhkCAHYZAgB8AAIAgQQCAIQAAgCMAAIAjAACAJBvAg
+AqRsIAkHUCAGFEAIAAAAH/zgdCAIwFAoAAAAAQAAAOAAAAAf/44EAAgAAB//l3Af/5YoH/+WNP/9
+//8AmJaAAACAACACszwgCMDgH/+WRCAIwTAgAo0QAAAIBgAACAAABAAAAAD//yAJCJAD/9AAABAA
+AABAAAAf/5ZgAFAH/yAJCRAgAqyQAAAQAADAAAAAAA//ACAAAAAP//AgCMFQ//9AAB//lZAgCMGQ
+AAAf/h//ljjXaqR46Me3ViQgcNvBvc7u9XwPr0eHxiqoMEYT/UaVAWmAmNiLRPev//9bsYlc175r
+kBEi/Zhxk6Z5Q45JtAgh9h4lYsBAs0AmXlpR6bbHqtYvEF0CRBRT2KHmgefT+8gh4c3mwzcH1vTV
+DYdFWhTtqePpBfzvo/hnbwLZjSpMiv/6OUKHcfaBbZ1hIv3lOAykvupES97Pqfa7S2C+v7xwKJt+
+xuqhJ/rU7zCFBIgdBdnU0Dnm25nlH6J8+MSsVmX0KSJEQyr/l6uUI6f8k6A5ZVtZw48MzJL/7/R9
+hYRd0W+ofk/+LObgowFDFE4IEaH3U36CvTryNSrX0rvrhtORIAKLcCACiJAgAoxwIAKMACACkJAf
+/5iAIAkKICACi1AgCMHQIAjCED/////P////IAKLfCAJCkBnRSMB782riZi63P4QMlR2IAkKYCAJ
+CoAgCQqgIAkKwCAJCuAgApC4IAKKwCACjCwgAotsIAjCUCAJCwDAAAAAIAkLQAAAIAAgCMKA4QAA
+ACACixAgCMLQIAjC8CAIw4AgCMMgIAjDUB/83gAgCQfQIAkIMCAJC4AgBVgAGgAAACAJDDAAD0JA
+IAACmAACAAAgAovQIAkL4AD///8gAuVoIAjEoAQAAAiBAAAAAABIAAwAAAAgCMVAIAKLaAAAQAAg
+AueYIAKKRCAIxaAgCMVwIAjGACAIxdAgAwYEIAjGMCAJDGAgCMZgIAjGoCAIxwAgCMeAIAjG0CAI
+xzAgAAAAIAMC9CAIymAgBhP0CgAAACAC1ewgAqg8IAKlgAAAwAAgCQlQIAkJsCAIy/ACAAAAIAjM
+gCAIzUAf/5RwIAYSAAAP/AAAADAAIAjNcCAIzgAgCM6gVQAAAAAAD/4f/5YwAAAMIPAAAAAgCM7Q
+IAMvtB//lqAf/41wIAKLICAIzyAgCM9wH/+VhCAI0DAgCQ0AIAjP0CADGnAgCNCQIAjRACAI0VAg
+CQ2QIAjRkCAI0gD/9///H/+VmCAJDdAmAAAAIAjSYB//liQgCNLQIAYXMCAI01AgBhbwIAkOUBeQ
+AAAgBg9Af////yACgADAAAABIAjVMCAI1ZCAAAAAIAjTsCAGFkAAAFAAFLAAAIAAAAQgAy0YH/+P
+OCAI1KAVoAAAAACP/iAI1NAWoAAAIygVACCgAAA/8AAAI6AAAAP/AB8gBhb6IAjT8CAI1EAgCNXQ
+//8AABAAAAAgCNYgIAjWgA4AAAAgCNagKgAAACADLZQgCNbAIAjXECAI2VAf/5ZoIAjYoCAI2QAg
+CNdwIAjX4CACieQgCNhA4QGOACAJDpAAAZEMIAkO4CAJDxD///P/4QIWAOECGgD//8j///8X////
+H/8AAhkcAAIZfAACGZwf/5ZA///x/wACGqQAAhooAAIaqAACGjQAAhq0AAIaMAACGrD///f/AAD/
+6eECDgAAABOHIAKAICACgFAgAoCAAABADQAA//cAAA9CAAD/9QAA//AgCNoQIAjZsCAI2eAAAAwA
+AAAYAAACEDQAACBAAADEEAAAwAEAAMggIAjaQAAAxAD+AAAAAF/2pwCyN8dAAAAAHf///2IAAAAA
+AMQwIAkPYAAAxDEgCQ8wAADoACAI2pAgCNrQIAjaYAAAyAAgCQ+AAAAnECAJD7AAAMRFIASK0AAA
+yBAAABABAAAgfAAAMgDhAF4AAAJJ7wAAzAAgBhCMIAKAsCAI2wAgCNuQIAjbMCAI22D//7//IAjc
+AB//luAAHoSAAAGGoP/he4AABJPg//tsICAI3DAgCNygIAjc0CAI3QAgCN0wIAjdYCAI3cAgCN2Q
+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
+AO0WFinQBIAAW/pN+GBoHaAJRQDTD22aKSmAASqAAyuAAumAACzmAoAACKoRCroC7JkCDVQCgAAK
+mQLphgAkQBEAACoSNfpgaB3kbEUADwIA/UAARTAcBQBYyEX95OYFoApVAPwnZhWgOwUAWMwHG/Jk
+KhJADwIAI7D8KqwB67JAKeAEgABYyDoqEkHr8mgR4AUAAKyqKhZB9UAARTA91QD6KAYVoAwlAO2k
+ACVQBQAAWMgv9+S+BaudxQD84DmkYgCdACvKHPrgOUxiAJ0AIjqAAnsILrDk/XyQFeXuEQAObggu
+4IAutGT/fLAVoD8FAOsWPi7vAoAAD90B/XywFaPuIQAO3QINbQgt0IAttGUtsOb/kAAWMD7FAA7M
+Aft80BWh3TEADcwC/MAARjAINQD9kBAVoAlFAOy0ZiXYEQAAbZpi6HkIBdgRAACziPMgAES1qgEA
+qmoqoIAqtF8qkOQKKkWqaiqggCq0YCqQ5CyQ5QyqEf9ABAVzzCEADKoCqmoqoIAqtGEqkOUskOYO
+qhH/QAQFMcwxAAyqAqpqKqCAKrRiKpDmIhI+++QqBaXKAQCsbCzAgCy0Yygg8yqgBCokevpPZh2l
+mBEACWkI6ZCALEcCgADTD/hPBh3gOQUACYgBqG8v8ID+TyYd4BKFACoSQCs65Ot7CAlgBIAA6xY9
+JVANAABYx9otEkGzLq7epO8l9AAsco79wCAV4As1APwoJhXozLkA/WAKBiIAnQD8JsgVpGhFAPjg
+AEQyiQUA+OAARPOCBQCiciIWPiaQ3yIg7CKU3CWEACWEASWEAiWEAyWEBCWEBSWEBiWEByWECCWE
+CSWECiWECyWEDCWEDSWEDuWEDyD5gQAAlfCV8ZXylfOV9JX1lfaV95X4lfmV+pX7lfyV/ZX+JfYP
+JfYQJfYRJfYSJfYTJfYU9eKmFeAKVQDyK4YdoDsFAFjLcBvx0Brx0Bzxzu3xzBDxgQAAleCV4ZXi
+leOV5JXlleaV55XolemV6pXrleyV7ZXuJeYPJeYQJeYRJeYSJeYTJeYUJeYVLRYaLBYbKhYd+iOG
+FeAKVQD8JugVoDsFAFjLWCocYPorgBXgDBUAW/tlwKX8JwgVoDsFAFjLUShKgKh4L4DU8eZADeAM
+BQBtCAwpgNWxzOSQVGRABQAAY//s0tDRDwAT8bAmMCzaQOsyDCtgBIAAWMd7pkryepAV4DvVACuk
+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
+AgAAAAAAAAcSAAAAAAAACAMAAAAAAAAPEwAAAAAAABAEAAAAAAAAHxQAAAAAAAAgBQAAAAAAAD8V
+AAAAAAAAQAYAAAAAAACABwAAAAAAAMAWAAAAAAABAAgAAAAAAAIACQAAAAAAAwAXAAAAAAAEAAoA
+AAAAAAgACwAAAAAADAAYAAAAAAAQAAwAAAAAABgAGgAAAAAAIAANAAAAAABAAA4AAAAAAIAADwAA
+AAAAwAAaAAAAAADgABsAAAAAAQAAEAAAAAABgAAcAAAAAAHAAB0AAAAAAeAAHgAAAAACAAARAAAA
+8tUSmPLVEpjy1RKY8tUSmPLVEpjy1RKY8tUSmPLVEpjy1RKY8tUSmPLVEpgDhRsYA4UbmPLVEpjy
+1RKY8tUSmPLVEpjy1RKY8tUSmPLVEpjy1RKYAAAAAAAAAAAAAAAA//8ABQAGAAcACAAJAAoACwAM
+AA0ADgAPABD///////8ACgAUAIwAggBkAFoAoACWAHgAbgBQAEYAPAAyACgAHgAKBM4EkgnOCZIC
+sgRWBOIEpgO2BBoHsglWBl4CdgniCaYHTgI6CLYJGggWBiICxgRqAJYDegFyB3YAvgPeBPYEugRC
+A6ICYgc6Bg4AggPKBC4AbgBaAyoBNgHqAz4HxglqAUoHEgWWCHoGwgH+BnICigNSBeYFvgjeAZoH
+2gn2CboJfgeeCUIIogkGAV4HYgJOByYDFgEiBYIIZgWqCMoJLgiOAQ4FbgVaBUYG1ggqBjYCEgHC
+BuoIPgDmBoYC2gR+Ap4EBgZKAiYIAgNmAKoDjgX6AEYB1gb+Bq4F0gGGB4oI8gMCCFIA+gUyAa4A
+0gPyB+4AMgaaAu4FHgAeBQoAAAnECYgE2AScB6gJTAnYCZwIrAkQArwEYAFoB2wE7ASwAlgHMAPA
+BCQDIAEsB7wJYAWMCHAGaAKABbQI1AnsCbAJOAiYB1gCRAEYBXgIwAkkBWQFUAggBiwG4Ag0AtAE
+dAZAAhwAoAOEAcwG9AF8B4AISADwAMgD6AaQAuQFAATEBIgCqARMA6wEEAZUAmwHRAIwCAwGGACM
+A3AAtAPUBDgDmAYEAHgAZABQAeADNAFABwgGuAH0A0gF3AGQB9AJdAeUCPwBVAccAwwIXAWgCIQB
+BAU8BswCCAG4ANwGfAKUA/wH+ANcBfAAPAakBcgI6AL4BSgBpAfkACgFFAAUAAAEyQSNCckJjQKt
+BFEE3QShA7EEFQetCVEGWQJxCd0JoQdJAjUIsQkVCBEGHQLBBGUAkQN1AW0HcQC5A9kE8QS1BD0D
+nQJdBzUGCQB9A8UEKQBpAFUDJQExAeUDOQfBCWUBRQcNBZEIdQa9AfkGbQKFA00F4QW5CNkBlQfV
+CfEJtQl5B5kJPQidCQEBWQddAkkHIQMRAR0FfQhhBaUIxQkpCIkBCQVpBVUFQQbRCCUGMQINAb0G
+5Qg5AOEGgQLVBHkCmQQBBkUCIQf9A2EApQOJBfUAQQHRBvkGqQXNAYEHhQjtAv0ITQD1BS0BqQDN
+A+0H6QAtBpUC6QUZABkFBQAACb8JgwTTBJcHowlHCdMJlwinCQsCtwRbAWMHZwTnBKsCUwcrA7sE
+HwMbAScHtwlbBYcIawZjAnsFrwjPCecJqwkzCJMHUwI/ARMFcwi7CR8FXwVLCBsGJwbbCC8CywRv
+BjsCFwCbA38BxwbvAXcHewhDAOsAwwPjBosC3wT7BL8EgwKjBEcDpwQLBk8CZwc/AisIBwYTAIcD
+awCvA88EMwOTBf8AcwBfAEsB2wMvATsHAwazAe8DQwXXAYsHywlvB48I9wFPBxcDBwhXBZsIfwD/
+BTcGxwIDAbMA1wZ3Ao8D9wfzA1cF6wA3Bp8FwwjjAvMFIwGfB98AIwUPAAAACgCMAG4AlgB4ADwA
+UACgAIIAZAAyAEYAWgAoAB4AFAAAAIcAaQCRAHMANwBLAJsAfQBfAC0AQQBVACMAGQAAIAKOLCAH
+GqwgAo4wIAcgaCACjjwgByAYIAKOUCAHH2wgAo5oIAceLCACjnggBx4EIAKOgCAHHdwgAo6UIAcd
+tCACjpwgBx2MIAKOsCAHIRwgAo64IAcabCACjrwgBxnwIAKOxCAHGbggAo7MIAcZgCACjtggBxlI
+IAKO3CAHGRAgAo7oIAcY2CACjuwgBxooIAKO9CAHGKAgAo78IAcYaCACjwQgBxZ4IAKPDCAHGDAg
+Ao8YIAcX+CACjyAgBxfAIAKPKCAHF4ggAo8wIAcXUCACjzggBxcYIAKOBCAHFIAgAo9AIAcUSCAC
+j0ggBxQQIAKPUCAHE9ggAo9gIAcToCACj2ggBxNoIAKPcCAHEzAgAo94IAcTCCACj4QgBxLgIAKP
+kCAHErAgAo+oIAcSiCACj8QgBxJgIAKP1CAHEjggAo/kIAcSECACj/QgBxHoIAKQBCAHEcAgApAU
+IAcRmCACkCQgBxFwIAKQMCAHEUggApA8IAcRIAAAAAAAAAAAIAKQSCAHEAggApBMIAcP2CACkFQg
+Bw+oIAKQYCAHD3ggApBkIAcPSCACkGggBw8YIAKQbCAHDvAgApB0IAcOyCACjhAgByNgIAKOGCAH
+IowgAo38IAch1CACjiQgByEkAAAQISBCMGNAhFClYMZw54EIkSmhSrFrwYzRreHO8e8SMQIQMnMi
+UlK1QpRy92LWkzmDGLN7o1rTvcOc8//j3iRiNEMEIBQBZOZ0x0SkVIWlarVLhSiVCeXu9c/FrNWN
+NlMmchYRBjB212b2VpVGtLdbp3qXGYc499/n/tedx7xIxFjlaIZ4pwhAGGEoAjgjyczZ7emO+a+J
+SJlpqQq5K1r1StR6t2qWGnEKUDozKhLb/cvc+7/rnpt5i1i7O6sabKZ8h0zkXMUsIjwDDGAcQe2u
+/Y/N7N3NrSq9C41onUl+l262XtVO9D4TLjIeUQ5w/5/vvt/dz/y/G686n1mPeJGIgamxyqHr0QzB
+LfFO4W8QgAChMMIg41AEQCVwRmBng7mTmKP7s9rDPdMc43/zXgKxEpAi8zLSQjVSFGJ3cla16qXL
+laiFifVu5U/VLMUNNOIkwxSgBIF0ZmRHVCREBafbt/qHmZe451/3fscd1zwm0zbyBpEWsGZXdnZG
+FVY02UzJbfkO6S+ZyInpuYqpq1hESGV4BmgnGMAI4TiCKKPLfdtc6z/7Hov5m9iru7uaSnVaVGo3
+ehYK8RrQKrM6kv0u7Q/dbM1Nvaqti53ojcl8JmwHXGRMRTyiLIMc4AzB7x//Ps9d33yvm7+6j9mf
++G4XfjZOVV50LpM+sg7RHvAAADAEAAAwEAAAWQgAAFmkAAGUMAAAECQAABAwAAAQPAAAENwAAHss
+AAB7NAAB4owAAeaMAAHqjAAB7owAAfKMAAH2jAAB+owAAf6MAACNzAAAfnQAAI/cAAGRWAAAj/wA
+AHUcAAB1GAAAdRAAAHfgAAB35AAAd/QAAZw8AAEQdAABEIQAAJQIAACYXAAAlgwAAJYUAACWIAAA
+liwAANAoAACQCAACENwAAjDcAAJQ3AACcNwAAZBUAABgHAABoNgAAZCQAAB34AAAd+QAAHf0AAB5
+eAAAefgAAZQEAAHjwAAB58AAAevAAAHvwAAB88AAAffAAAH7wAAB/8AAAZQMACEACQCBAEEAIQAJ
+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
+4ogIAzAFAAB9awJj/6oikllkIJsVz+yMEPX/4h2gCgUA8AEQDaAGBQAAwMEk1Aws1A0m1CIv1HaY
+35fc86FoFe+CBQAi1CAi1CGC3qN3I5JZ4ogIBVP9AADr1S4jMAUAAONrS3ZgBQAAIpKfLZKmomIJ
+IxED3QjzoAYVoAPVAPOghh3gA4UA49QFLX0OAAAqUH4kTAHlr5FiqAUAAG0IDCpQfrFE5a+BYqgF
+AABj/+woklrLivWbigXgBgUA+ADiHaAH5QBtCCUskqArkqasbAnNEa27nLAutA0otAwntAQqklrl
+tS8jMAUAAHprAmP/08Ag0Q/Y4P/8TA2gBwUAAGwQBsCgW5AtEs5P0w+iqSiSgGeAC20IBSqSgGeg
+AmP/88ChW5AmoqkrkoBnsA1tCAUskoBnwARj//MAAPud5AXgChUA/Z3iBaANBQD/nz4F4A4VAFum
+jR/OVxPOLhjO6R7NuSkykioykSsykC420S420y421S421ywyjyg20Cg20i82zy821C0yji023i8y
+lCgyk63MLjKYLTKXLDbfrLsrNuCrqiwylSo24aqZKzKWKTbiqYgqMqAoNuOo/ykyoS825ygyoq3/
+Lzbor+4uNuSuzCw25i8ypq3MLjKnLTKoLDblrLsrNumrqiwyqSo26qqZKzKqKTbrqYgqMqwoNuyo
+/ykyrS827a/uKDKwLjburt0tNu8fzcGtzCw28C82zh7OJ6y7Kzbx/nrGFaANBQAtNt2rqio28qqZ
+KTbzqYgoNvRbpk4rMtcvMtYPAgDzb+AVr4gFAOgiAQ1uQoAAotp680gpMtQPAgDLn+o21y1YBIAA
+HM2RLjLV8iBmFaAKVQD6IAYV4IgFAPwgJhXgCwUA+CBGFaANFQBbqNjiNvUhAKGAAMAg0Q8AAAAA
+//8MDaACBQDHJNEPbBAEE881+5piBaAEBQD3noIFoAcVACSmgSSmgySmgCSmghvN1ygwdf2bxAXg
+3lUA/MsIFaAZBQDppookfKKAAA7MKB7N3Q3MLC+ywA7/AQ/PAi+2wC2y4A7dAQ3MAiy24Cuy4MCg
+W4+nFc3IEs3JGc54Ba8IKfaBGM8oKPaCJPaD8/AGFaAKFQBbj56lqiSmgRvN2iumgiSmgyKmgFv+
+Quah1W0QBIAAHc19LgoIL9KPDw9DLzR0LNKKG85S/4YADjAIBQD9sUYVoImFAG2aDQuJCySWQOSW
+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
+7/+SAKWb92AEHe//agClnPeABhXv/0IApZ0n1ADRD6WeJ+UA0Q8AAAAAAAAAAAAAAAAAACACjaQM
+wAACIAXtfCACjagIwAAIIAXtfCACjawgwAAMIAXtBCACjbAGwAA0IAXu2CACjbQIwAA4IAXtfCAC
+jbgCwAA8IAXu2CACjbwIwABAIAXtfCACjcAIgABEIAXuBCACjcQYgABYIAXuBCACjcgYgABkIAXu
+BCACjcwYgABwIAXuBCACjdAYgAB8IAXuBCACjdQYgAC4IAXuBCACjdgYgADEIAXuBCACjdwYgADQ
+IAXuBCACjeAYgADcIAXuBCACjeQIgAEYIAXuBGNzb2NrX2Nsb3NlZDogc2l6ZW9mKHRjYl9mYy0+
+dS5vZmxkLm8uZm9pc2NzaV9jb25uKSBbJXVdLCBieXRlcwoAAAAAAAAAAAAAAAAAAAAAY3NvY2tf
+ZmFpbGVkOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgl
+eF0sIHNlc3NfZmMtPmZsb3djX2lkIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhd
+LCBldnQgWzB4JXhdCgAAAAAAAAAAAAAAY2huZXRfZmluZF9sMnRfZW50cnk6IGRhZGRyIFslMDh4
+XSwgWzB4JTA4eF0sIGxvY2FsIG5ldHdvcmsgWyVkXQoAAAAAAAAAAAAAAAAAAABsMnRlbnQgWyUw
+eF0sIGwydGVudC0+aWR4IFslZF0KAHJjIFslZF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxv
+d2NfaWQgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABjc29ja19mcmVlOiBzaXplb2YoY3NrX2ZjLT51
+LmNzb2NrKSBbJXVdLCBieXRlcwoAAAAAAAAAAAAAAAAAAAAAbG9naW5fcGFyYW1zOiBjb25uX2Zj
+LT5mbG93Y19mb2lzY3NpX2Nvbm5fZmxhZ3MgWzB4JXhdCgAAAAAAAAAAAGxvZ2luX3BhcmFtczog
+Y29ubl9mYy0+Zmxvd2NfZm9pc2NzaV9jb25uX2ZsYWdzIFsweCV4XQoAAAAAAAAAAABUQ1AgY29u
+biBlc3RhYmxpc2htZW50IGZhaWxlZCAlZAoAAAAAAAAAAAAAAAAAAABpbm9kZV9mYy0+Zmxvd2Nf
+ZmxhZ3MgWzB4JXhdLCBpbm9kZV9mYy0+Zmxvd2NfYnVmLT5maWZvLm51bV9ieXRlcyBbJXVdCgAA
+AAAAAAAAAHVzZXJuYW1lIG1pc21hdGNoCgAAAAAAAAAAAAAAAAAAUmVjdmQgYW5kIENvbXB1dGVk
+IGRpZ2VzdCBtaXNtYXRjaAoAAAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAl
+ZCBwYWQuCgAAAAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAlZCBwYWQuCgAA
+AAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAlZCBwYWQuCgAAAAAAAAAAAAAA
+AAAAUmVjaWV2ZWQgQXV0aE1ldGhvZCB2YWx1ZQoAAAAAAAB2YWxpZGF0ZV9rZXl2YWw6IGZsb3dj
+X2ZvaXNjc2lfY29ubl9mbGFncyBbMHgleF0KAAAAAAAAAAAAAAAAAAAAdmFsaWRhdGVfa2V5dmFs
+OiBmbG93Y19mb2lzY3NpX2Nvbm5fZmxhZ3MgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAE5lZ28gRkJM
+IFsldV0KAABLRVlfTUFYUkNWRFNMIFsldV0KAAAAAAAAAAAAAAAAAER1cGxpY2F0ZSBpc2NzaSBr
+ZXkKAAAAAAAAAAAAAAAAc2VuZF9sb2dpbl9yZXF1ZXN0OmNvbm5fZmMtPmZsb3djX2lkIFsweCV4
+XSwgc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwYXJhbSBbMHgleF0sIHBhcmFtLT5zZXNzX3R5
+cGUgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19mb2lzY3NpX3Nlc3NfdHlwZSBbMHgleF0KAAAAAAAA
+AAAAAHNlbmRfbG9naW5fcmVxdWVzdDogdHhfbGVuIFsldV0KAAAAAAAAAAAAAAAAAAAAAGZvaXNj
+c2lfcGFyc2VfcmN2ZF9wYXJhbXM6IGVycm9yCgAAAAAAAAAAAAAAAAAAAGZvaXNjc2lfcGFyc2Vf
+cmN2ZF9wYXJhbXM6IHJsZW4gJWQKAAAAAAAAAAAAAAAAAFNlcSAjIG1pc21hdGNoIHN0YXRzbiA9
+IDB4JXggZXhwc3RhdHNuID0gMHgleAoAAHRleHRfcmVzcDogY19iaXQgWzB4JXhdLCBmX2JpdCBb
+MHgleF0KAAAAAAAAAAAAAGxvZ2luX3Jlc3A6IGZsb3djX2ZvaXNjc2lfY29ubl9mbGFncyBbMHgl
+eF0KAAAAAGxvZ2luX3Jlc3A6IGZsb3djX2ZvaXNjc2lfY29ubl9mbGFncyBbMHgleF0sIHJjIFsw
+eCV4XQoAAAAAAAAAAABpU0NTSSBTZWMtcGFyYW1zIHJlY2VpdmVkaGF2ZSBlcnJvcnMhIQoAAAAA
+AAAAAABUYXJnZXQgbW92ZWQgdGVtcC4gY29ubiAleCwgc2VzcyAleAoAAAAAAAAAAAAAAABMb2dp
+biBGYWlsZWQhIS4gY29ubiAlZCwgc2VzcyAlZAoAAAAAAAAAAAAAAAAAAABsb2dpbl9yZXNwOiBz
+ZXNzX2ZjLT5mbG93Y19pZCBbJXVdLCBjb25uX2ZjLT5mbG93Y19pZCBbJXVdIGxvZ2dlZCBpbgoA
+AAAAAAAAAAAAAFByb3RvY29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNnICVkCgAA
+AGRyb3BfYWxsX3Rhc2s6IHJlcXVlc3RlZCBsaWR4IFsldV0KAAAAAAAAAAAAAAAAAGdldF9yZWZf
+dGFzazogaXN0YXNrLT5mbG93Y19pZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc3RhdGUgWyV1
+XSwgaXN0YXNrX2ZjLT5mbG93Y19mb2lzY3NpX3Rhc2tfbGlkeCBbJXVdLCBsaWR4IFsldV0KAAAA
+AAAAAAAAcHJvY2Vzc190bWZfcmVzcG9uc2U6IGlzdGFza19mYy0+Zmxvd2NfYnVmLT5zY2hlZF9u
+b2RlLm5leHQgWzB4JXhdLCBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsl
+dV0KAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiB1bHB0eHBsZW4xNiBbJXVdCgAAAAAAAAAAAHByb2Nl
+c3NfdG1mX3Jlc3BvbnNlOiBkZWxheV9wcm9jZXNzaW5nLCBvcCBbJXhdCgAAAAAAAAAAAAAAAAAA
+AABwcm9jZXNzX3RtZl9yZXNwb25zZTo6IHdyIG9wY29kZSBbMHgleF0KAAAAAAAAAABwcm9jZXNz
+X3RtZl9yZXNwb25zZTo6IHRhc2sgZnVuY3Rpb24gWzB4JXhdCgAAAABjYWxsaW5nIGRyb3BfdGFz
+aywgaXN0YXNrX2ZjLT5mbG93Y19mb2lzY3NpX3Rhc2tfbGlkeCAweCV4CgAAAAAAcHJjb2VzX2Rh
+dGFfaW5fcmVzcG9uc2U6IGNvbm4tPmZsb3djX2lkIFsweCV4XSwgaXN0YXNrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0KAAAAAABERFAgZXJyb3IgZm9yIGNvbm4gWzB4JXhdLCBtYXNrIFsweCV4XQoAAAAA
+AAAAAABzZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5m
+bG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBb
+JXVdLCBidWZmZXJlZCBbJXVdCgAAAAAAAAAAAAAAAAAAAABpc2NzaV9oZHI6IGJhZCB0Y2Igc3Rh
+dGUgdG8gcnggZGF0YSwgdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2Nfc3Rh
+dGUgWzB4JXhdCgAAAAAAAAB3cmhfZm9pc2NzaV9ub2RlOiBub2RlX3dyLT5mbG93aWRfbGVuMTYg
+MiBbJXhdCgB3cmhfZm9pc2NzaV9jaGFwOiBpZF9sZW4gWyV4XSwgc2VjX2xlbiBbJXhdCgAAAAB3
+cmhfZm9pc2NzaV9jaGFwOiB0Z3RfaWRfbGVuIFsleF0sIHRndF9zZWNfbGVuIFsleF0KAAAAAAAA
+AAAAAAAAcGVlcl9jb246IGNza19mYyA9PiBmbG93aWQgWzB4JXhdLCBmbG93Y19idWYgWzB4JXhd
+CgAAAAAAAAAAAAAAAGZvaXNjc2lfY3RybDogc3Vib3AgWzB4JXhdLCBzZXNzX3R5cGVfdG9fZXJs
+IFsweCV4XSwgc2Vzc190eXBlIFsweCV4XQoAAAAAAAAAAAAASW52YWxpZCBvcGNvZGUgMHgleCBp
+biBjdHJsIHBhdGgKAAAAAAAAAAAAAAAAAAAAcnhfZGF0YS0+c2VxIFsweCV4XSwgcnhfZGF0YS0+
+bGVuIFsweCV4XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAAAAAAABjc2tfZmMt
+PmZsb3djX2Nzb2NrX29mZnNldCBbMHgleF0sIGRsZW4xNiBbMHgleF0KAAAAAAAAAAAAAAAAAAAA
+YWN0X2VzdDogZmxvd2NfZm9pc2NzaV9jb25uX2ZsYWdzIFsweCV4XQoAAAAAAAAAYWN0X2VzdGFi
+OiB0Y2JfZmMtPmZsb3djX2J1ZiBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNi
+X2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIG5wYWdlcyBbMHgleF0sIGZsb3djX3RwX3NuZF9tYXgg
+WzB4JXhdCgAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwg
+b3AgWzB4JXhdLCByY3ZfaXNuIFsweCV4XSwgc25kX2lzbiBbMHgleF0sIGNzb2NrLT5mbG93Y19z
+dGF0ZSBbMHgleF0sIHRjcF9vcHQgWzB4JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSAKAAAA
+AAAAAAAAAAAAAGNza19mYy0+Zmxvd2NfY3NvY2tfY29va2llIFsweCV4XSAKAAAAAAAAAAAAAAAA
+AG5ldGlmX2RvX2RoY3A6IHdyLT5wYXJhbS52bGFuaWQgWyV1XSwgbDJkZXZfZmMtPmZsb3djX25l
+dF9sMmRldl92bGFuZGV2IFsweCV4XQoAbmV0aWZfZG9fZGhjcDogcmwyZGV2X2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGRoY3BfY3R4dCBpbml0aWFsaXphdGlvbiBlcnJvcgoAAAAAAABsM2luNF9kZXZf
+Y29uZmlnOiB3ci0+cGFyYW0udmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZf
+dmxhbmRldiBbMHgleF0KAAAAAAAAAAAAAAAAAABuZXRfbDNpbjRfZGV2X2NvbmZpZzogbDJkZXZf
+ZmMtPmZsb3djX2lkIFsweCV4XSwgYWRkcmVzcyBhbHJlYWR5IHVzZWQgYnkgcG9ydCAlZAoAAAAA
+AAAAAAAAAAAAAABuZXRfbDNpbjRfZGV2X2NvbmZpZzogIGFkZHIgWzB4JXhdLCBtYXNrIFsweCV4
+XSwgZ3cgWzB4JXhdLCByZWZfY250IFsweCV4XSBpbiB1c2UKAAAAAAAAAAAAAAAAAAB3cmhfY2hu
+ZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfdHlw
+ZSBbJTB4XSwgaWZjb25mX3dyLT5zdWJvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAd3JoX2NobmV0
+X2lmY29uZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgdW5rbm93biBzdWJvcCBbMHgleF0K
+AAAAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd
+LCByYyAlZAoAAAAAAAAAAAAAAAAAbmV0aWZfaXBfY29uZmxpY3RfdGltZXJfY2I6IGwyZGV2X2Zj
+LT5mbG93Y19pZCBbMHgleF0sIGluZGV2Y3R4dC0+c3RhdGUgWyVkXSwgaW5kZXZjdHh0LT5yZXRy
+eV9jbnQgWyVkXQoAAAAAAAAAAG5ldGlmX2lwX2NvbmZsaWN0X3RpbWVyX2NiOiBsMmRldl9mYy0+
+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0eHQgWzB4JXhdLCBpbiBmcmVlIHN0YXRlCgAAAAAAAAAA
+AGlmYWNlX2NtZF9oYW5kbGVyOiBmYyBbMHgleF0sIGZjLT5mbG93Y19pZCBbMHgleF0sIGZjLT5m
+bG93Y190eXBlIFsweCV4XSwgcCBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbMHgleF0KAAAAAABp
+ZmFjZV9jbWRfaGFuZGxlcjpsMmRldl9mYyBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl
+eF0sIGwyZGV2LT5mbG93Y190eXBlIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfZmxh
+Z3MgWyUweF0KAAAAAGZvaXNjc2lfaWZhY2VfY21kX2hhbmRsZXI6IGwyZGV2X2ZjLT5mbG93Y19u
+ZXRfbDJkZXZfZmxhZ3MgY2hhbmdlZCBmcm9tIFslMHhdIHRvIFslMHhdCgAAAAAAAAAAAGNobmV0
+X2wyZGV2X3VwOiBtYiBbMHgleF0sIGRlZmVycmVkLCBzdGF0ZSBbMHgleF0sIHBvcnQgWzB4JXhd
+CgB2aWlkIFsweCV4XSBwb3J0IFsweCV4XSwgbWFjLWlkIFslMDJ4OiUwMng6JTAyeDolMDJ4OiUw
+Mng6JTAyeF0gcnNzX3NpemUgJXUKAAAAAHZpIHR5cGUgWzB4JXhdLCBwb3J0IFsweCV4XSwgZmxv
+d2Nfc2dlX2VxaWQgWzB4JXhdLCBmbG93Y19zZ2VfZXFpZCBbMHgleF0sIGZsb3djX3NnZV9lcWNy
+ICV1CgAAAG5ldGlmX3NldF9tYWM6IG1iX3NjcmF0Y2ggWzB4JXhdLCBwb3J0IFsweCV4XQoAAG5l
+dGlmX3NldF9yeG1vZGU6IGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfbXR1IFsldV0sIG1iX3Nj
+cmF0Y2ggWzB4JXhdLCBwb3J0IFsweCV4XQoAAAAAAAAAAAAAAGNobmV0X2wyZGV2X3VwOiBsMmRl
+dl9tYWMgWyUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4XSwgZmxvd2NfbmV0X2wyZGV2X2Zs
+YWdzIFsweCV4XQoAAAAAAAAAAGNobmV0X2wyZGV2X3VwOiBtYl9sb2MgWzB4JXhdLCBtYl9vcmln
+IFsweCV4XSwgcmMgWyVkXQoAAAAAAAAAAABjaG5ldF9sMmRldl91cF9tYl9jYjogcmMgWyVkXSwg
+cG9ydCBbJXVdLCBzdGF0ZSBbJXVdLCBjb29raWUgWyV1XQoAAAAAAAAAAAAAAAAAAGNobmV0X3ht
+aXQ6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHZsYW5pZCBbJXVdLCBMNENoa0Rpc2FibGVf
+dG9faVZsYW5UYWcgWzB4JXhdCgAAAAAAAAAAAAAAAGNobmV0X3htaXQ6IHR4X2RsZW4gWyV1XQoA
+AAAAAAAAY2huZXRfeG1pdDogYWxyZWFkeSBzY2hlZHVsZWQKAABjaG5ldF94bWl0OiBsMmRldl9m
+Yy0+Zmxvd2NpZCBbMHgleF0sIG5idWYgWzB4JXhdIGluIGRlbGF5ZWRfcHJvY2Vzc2luZwoAAAAA
+AAAAAGRoY3BfcHJvY2Vzc19jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5z
+dGF0ZSBbJTB4XSwgZGhjdHh0LT5ydHJ5X2NudCBbJXVdCgAAAAAAAAAAAGRoY3BfdGltZXJfY2I6
+IERIQ1BESVNDT1ZFUiBzZW50LCBidXQgbm8gcmVwbHkgZnJvbSBhbnkgcG9zc2libGUgc2VydmVy
+IG9uIHRoZSBuZXR3b3JrLiBSZXRyeWluZyBhZ2FpbgoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBs
+MmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZW5kaW5nIERIQ1BESVNDT1ZFUiBmb3IgZGhjdHh0
+IFsweCV4XSBvbiBwaWQgWyVkXQoAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQg
+WzB4JXhdLCBESENQT0ZGRVIgcmVjZWl2ZWQgZm9yIGRoY3R4dCBbJXhdIHBpZCBbJWRdCgAAAAAA
+AAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCAgREhDUEFDSyBy
+ZWNlaXZlZCBmb3IgZGhjdHh0IFsleF0sIHBpZCBbJWRdCgAAAAAAAAAAAABkaGNwX3RpbWVyX2Ni
+OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBkaGN0eHQtPmlwYWRkciBbMHgleF0KAAAAAAAA
+AAAAAAAAAAAAAGRoY3BfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIG5vIHJl
+cGx5IGZyb20gZGhjcCBzZXJ2ZXIsIHRpbWluZyBvdXQKAAAAAAAAAAAAAAAAAAAAAHBbJXVdIGNo
+YW5naW5nIHNwZWVkIGZyb20gJSN4IHRvICUjeAoAAAAAAAAAAAAAAHBbJXVdIGJjbTg0ODM0IGxp
+bmsgc3RhdHVzIGNoYW5nZSBVUAoAAAAAAAAAAAAAAHBbJXVdIGJjbTg0ODM0IGxpbmsgc3RhdHVz
+IGNoYW5nZSBET1dOCgAAAAAAAAAAAGh3X2NsNDVfdXBkX3NwZF9hZHYgJSN4CgAAAAAAAAAAcFsl
+dV0gYXExMjAyIGxpbmsgc3RhdHVzIGNoYW5nZSBVUAoAAAAAAAAAAAAAAAAAcFsldV0gUEhZIE9W
+RVJIRUFURUQgLSBmb3JjZWQgcG93ZXIgZG93biAodGVtcD0lZCkKAAAAAAAAAAAAAAAAAHBbJXVd
+IGFxMTIwMiBsaW5rIHN0YXR1cyBjaGFuZ2UgRE9XTgoAAAAAAAAAAAAAAG1vZHVsZVsldV06IHBv
+cnQgbW9kdWxlIGluc2VydGVkIGFuZCByZWFkeQoAAAAAAG1vZHVsZVsldV06IHBvcnQgbW9kdWxl
+IHJlbW92ZWQKAAAAAAAAAAAAAAAAAAAAAG1vZHVsZVsldV06IHVua25vd24gbW9kdWxlIGlkZW50
+aWZpZXIgMHglMDJ4CgAAAG1vZHVsZVsldV06IGdwaW8gJXUgdHJhbnMgMTBHIDB4JTAyeCAxRyAw
+eCUwMnggKGxlbmd0aCAldSkgY2FibGUgMHglMDJ4IChsZW5ndGggJXUpIG1vZHVsZV90eXBlIDB4
+JTAyeAoAAAAAAAAAAABjeDRfY3JfcGRvd25bJXVdOiBlbiAldSB2aV9lbl9jbnQgJXUKAAAAAAAA
+AAAAAABpbml0X3BvcnRbJXVdOiAgbGluayBzdGF0dXMgMHgleCBtb2RfdHlwZSAweCV4IHZpX2Vu
+X2NudCAldSByeF9sb3MgJXUgaHNzX3NpZ2RldCAldSBwb3J0X2NmZy5zaWdkZXQgJXUKAAAAAAAA
+AAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9w
+b3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTog
+IGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3Rh
+dHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgK
+AAAAAAAAAAAAAAAAAAAAbmV3IG1vZHVsZSBuZXcgc3BlZWQgKHRlY2hfdHlwZT0lI3gpCgAAAAAA
+AAAAAAAAY3JfbW9kdWxlX3N0YXR1c1sldV06IHR5cGUgY2hhbmdlZCBmcm9tIDB4JTAyeCB0byB0
+eXBlIDB4JTAyeCBzdHlwZSAweCUwMngKAAAAAABjeDRfY3JbJXVdOiByZXQgJWQgc3RhdHVzICV1
+IHhnbV9scyAweCUwOHgKAAAAAAB3YXRjaGRvZyBjbWQgaGFuZGxlciAodGltZSAldSBhY3Rpb24g
+JXUpCgAAAAAAAABXQVRDSERPRzogZGV2aWNlIHNodXRkb3duCgAAAAAAAFdBVENIRE9HOiBieXBh
+c3MgdGltZW91dAoAAAAAAAAAV0FUQ0hET0c6IEZMUiAtIG5vdCBpbXBsZW1lbnRlZCB5ZXQKAAAA
+AAAAAAAAAAAAZmlsdGVyOiBwb3JncmFtbWluZyB0aWQgJXUgKGxlIHRjYW0gaW5kZXggJXUpLi4u
+CgAAAAAAAAAAAAAAAAAAAGZpbHRlcjogcmVxdWVzdGluZyBjb21wbGV0aW9uLi4uCgAAAAAAAAAA
+AAAAAAAAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5mbG93Y19pZCAl
+eCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAAcG9ydCAlZCBwcmlvciAlZCBzZWxlY3QgJWQg
+cHJvdG9jb2xJRCAweCUwNHgKAAAAcG9ydCAlZCBzZXQgcGZjX2VuID0gMHgleAoAAAAAAABwb3J0
+ICVkIHNldCBwZ2lkXzBfNyA9IDB4JTA4eCBwZ19wZXJjZW50YWdlIDB4JTA4eF8lMDh4IG51bV90
+Y3Nfc3VwcG9ydGVkICVkCgAAAHBvcnQgJWQgc2V0IHBmY19lbiA9IDB4JXgKAAAAAAAARkNvRSBE
+RFAgZmFpbGVkIDogb3hfaWQgMHgleCByeF9pZCAweCV4CgAAAAAAAAAARkNvRSBERFAgZmFpbGVk
+IDogRGRwUmVwb3J0IDB4JXggRGRwVmFsaWQgMHgleAoAUFJMSSBSc3AgdGltZWRvdXQgOiBmbG93
+Y19pZCAweCV4IG94X2lkIDB4JXggcnhfaWQgMHgleCAKAAAAAAAAAGNhbm5vdCBhbGxvY2F0ZSBv
+ZmZsb2FkZWQgZmlsdGVyIGNvbm5lY3Rpb24KAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQg
+ZmlsdGVyIElQdjYgY29ubmVjdGlvbgoAAAAAAAAAAAAAAAAAAAB1b1sldV06IHdyICVwIHdyLT5s
+ZW5ndGggJXUgbXNzICV1CgAAAAAAAAAAAAAAAAB1b1sldV06IGYgMHglMDh4IGRzdF9jcGwgMHgl
+MDh4IHNyY19jcGwgMHglMDh4IGltbWRsZW4xNiAldQoAAAAAdW9bJXVdOiBsYXN0IG1zcyAldQoA
+AAAAAAAAAAAAAAB1b1sldV06ICFsYXN0IHdyLT5zY2hlZHBrdHNpemUgJXUKAAAAAAAAAAAAAAAA
+AABpbnZhbGlkIGJ1ZmZlciBncm91cFsldV0gY29uZmlndXJhdGlvbjogbXR1ICV1IGx3bSAldSBo
+d20gJXUgZHdtICV1CgAAAAAAAAAAAAAAAGZjICV1IHZmICV1IGdvdCBpdmY9MHgleCxyYW5nZTog
+JSN4LSUjeCAoJXUvJXUgdXNlZCkKAAAAAAAAAAAAAABWSSAldSBjYW5ub3QgZ2V0IFJTUyBzbGlj
+ZTogTm8gbW9yZSBzbGljZXMgYXZhaWxhYmxlICh1c2VkICV1LyV1KQoAAAAAAAAAAAAAAAAAAHBm
+biAldSB2Zm4gJXUgd2l0aCBwb3J0IG1hc2sgMHgleCBjYW5ub3QgYWNjZXNzIHBvcnQgJXUsIHJl
+dCAlZAoAAAAAAAAAAAAAAAAAAAAAcGZuICV1IHZmbiAldSBjb3VsZCBub3QgYWxsb2NhdGUgdmlp
+ZCwgcmV0ICVkCgAAcGZuICV1IHZmbiAldSBjb3VsZCBtYXAgdmlpZCAgMHgleCB0byBmbG93Yywg
+cmV0ICVkCgAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgY291bGQgbm90IGFsbG9jYXRlIHV3aXJl
+IGZ1bmMgJWQgbWFjIGFkZHIsIHJldCAlZAoAAAAAAAAAAAAAAAAAAAAAbWlpX2Fkdl9mY1sldV06
+IHJjYXBzIDB4JXgKAAAAAABtaWlfYW5yZXN0YXJ0WyV1XTogYWNhcHMgMHgleAoAAG1paV9mb3Jj
+ZV9zcGVlZFsldV06IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAAAAAAAG1paV9saW5rX3N0YXR1c1sl
+dV06IGJtc3IgMHglMDh4IHN0YXR1cyAldSB4Z21fbHMgMHglMDh4CgAAAAAAAABwb3J0X2NtZF9o
+YW5kbGVyOiB1bmtub3duIHUuZGNiLnR5cGUgMHgleAoAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUw
+MnhdOiBwaHkgcmVzZXQgbm90IGF2YWlsYWJsZQoAAAAAAAAAAAAAAAAAAAAAcG9ydFsldToweCUw
+Mng6MHglMDJ4XTogdW5rbm93biBhY3Rpb24gMHgleAoAAAAAcG9ydFsldToweCUwMng6MHglMDJ4
+XTogdW5rbm93biByZWFkIGFjdGlvbiAweCV4CgAAAAAAAAAAAAAAAAAAAGNoX2NsX3JhdGVbJXUv
+JXVdOiBjYXBwZWQgY2xhc3MgcmF0ZSBmcm9tIHJlcXVlc3RlZCAldSB0byBjb25maWd1cmVkIGNo
+YW5uZWwgcmF0ZSAldQoAAAAAAAAAAAAAAGNoX2NsX3JhdGVbJXUvJXVdOiBpbmNyZWFzZWQgZGVm
+aWNpdF9pbmNyIGZyb20gcmVxdWVzdGVkICV1IHRvIHJlcXVpcmVkIG1pbiBvZiAldTsgcmF0ZSAl
+dSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoAAAAAAAAAAAAAAAAAcGt0c2NoZWQgY2hhbm5lbCAl
+dSBzZXRzIHNwZWVkIChmcm9tICV1KSB0byAldSBrYnBzCgAAAAAAAAAAAAAAAHBvcnRfY21kX2hh
+bmRsZXI6IHVua25vd24gdS5kY2IudHlwZSAweCV4CgAAAAAAAGh3X2kyY190cmFuc2FjdGlvbjog
+bmRhdGEgJXUgYWRkcl9vcCAweCV4IGRhdGFbMF0gMHgleCBkaWZmICV1CgBod19pMmNfdHJhbnNh
+Y3Rpb246IG5kYXRhICV1IGFkZHJfb3AgMHgleCBkYXRhWzBdIDB4JXggZGlmZiAldSBkcG9zICV1
+IGNvbnQgJXUgZmFpbGVkIHdpdGggZXJyICVkCgAAAAAAAAAAAAAAAAAAaTJjIHRyYW5zYWN0aW9u
+IGZhaWxlZCB0byBjb21wbGV0ZQoAAAAAAAAAAAAAAAAAaTJjIGVycm9yIGNhdXNlZCBieSBtb2R1
+bGUgdW5wbHVnCgAAAAAAAAAAAAAAAAAAUVNGUCBtb2R1bGUgdW5wbHVnIC0gcmVpbml0aWFsaXpp
+bmcgcnhfbG9zICB0byAweGZmCgAAAAAAAAAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRlOiBj
+aGFuZ2VkIHJ4X2xvcyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABncGlvX3FzZnBfbW9kdWxlX3Vw
+ZGF0ZTogY2hhbmdlZCB0eF9kaXMgZnJvbSAweCV4IHRvIDB4JXgKAAAAAAAAc2VuZHRvIHBlbmRp
+bmc6IHdyX3BlbmQgJXAgZm9yIHBvcnQgJXUsICB3YW50IHRvIHNlbmQgdG8gcG9ydCAldQoAAAAA
+AAAAAAAAAAAAAABzZW5kdG86Zmxvd2NpZCAldQoAAAAAAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5
+OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHgKAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUg
+Y3BsIDB4JTA4eCUwOHggMHglMDh4JTA4eAoAAAAAAAAAAAAAAAAAAABjcGxfZXJyX25vdGlmeTog
+dGlkICV1IGxlbiAldQoAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5m
+bG93Y19pZCAleCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAARkNPRSBCUCBXUiBFUlI6IFdS
+IHdpdGggY29va2llICV4JXggZXJyb3JlZCBiYWNrIAoAAAAAAAAAAAAAAAAAAHNjc2lfYWJvcnQ6
+IEVudGVyaW5nIEFib3J0X3Rhc2sKAAAAAAAAAAAAAAAAAAAAAHNjc2lfYWJvcnQ6OiB3ci0+aXFp
+ZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc2dlX2lxaWQgWzB4JXhdCgBzY3NpX2Fib3J0Ojog
+bHVuX2lkeCBbMHgleF0KAAAAAHNjc2lfYWJvcnQ6IHJlZiB0YXNrIG5vdCBvdXRzdGFuZGluZwoA
+AAAAAAAAAAAAAHNjc2lfYWJvcnQ6IHJlZiB0YXNrIGZvdW5kIGl0dCBbMHgleF0gY29va2llIFsw
+eCVwXQoAAAAAAAAAAAAAAABzY3NpX2Fib3J0OiBzcmVxLT5vcGNvZGUgWzB4JXhdIGZsYWdzIFsw
+eCV4XQoAAABzY3NpX2Fib3J0OiB0YXNrX2lkeCBbJXVdLCBpdHQgWzB4JXhdCgAAAAAAAAAAAABh
+Ym9ydC9jbG9zZSBXUiB3aXRoIGNvb2tpZSAweCVseCB3YXMgaXNzdWVkIG9uIHNzbiAweCV4IGlu
+IHdyb25nIHN0YXRlIDB4JXgKAAAAAGFib3J0IFdSIG9uIHNzbiAweCV4IGRpZCBub3QgZmluZCBX
+UiB3aXRoIGNvb2tpZSAweCV4JXgKAAAAAAAAAABjbG9zZSBXUiB3aXRoIGNvb2tpZSAweCVseCBv
+biBzc24gMHgleDtkaWQgbm90IGZpbmQgV1Igd2l0aCBjb29raWUgMHglbHgKAAAAAAAAAGFib3J0
+IFdSIG9uIHNzbiAweCV4IHdhcyBpc3N1ZWQgb24geGNoZyAweCV4IHdpdGggcnhfaWQgMHgleCBp
+biB3cm9uZyBzdGF0ZSAweCV4CgAAAAAAAAAAAAAAAAAAAHdyaF9mb2lzY3NpX3Njc2lfZXJyOiB3
+ciBbMHgleF0sIHF1ZXVlZCBvbiBmbG93YyBbMHgleF0sIGZpZm8gWzB4JXhdIGJ5dGVzX2F2YWls
+YWJsZQoAAAAAAAAAAAAAAG5ldF9sMmRldl9ub3RpZnk6IEV2ZW50IG9uIGwyZGV2X2ZjLT5mbG93
+Y19pZCBbMHgleF0sIHBvcnQgWyVkXSwgZXZlbnQgWzB4JXhdLCB1bHB0eGNoIFsldV0sIGNsYXNz
+IFsweCV4XSwgcHJpb3JpdHkgWzB4JXhdCgAAAAAAcG9ydCAlZCBhcHBsSUQgMHglMDR4IG91aSAw
+eCUwNnggdXNlcl9wcmlvciAlZAoAc2VuZCBkY2J4IGluZm86Zmxvd2NpZCAldQoAAAAAAABzZW5k
+IGRjYnggY29tcGxldGUKAAAAAAAAAAAAAAAAAERDQlggcG9ydCAldSBhbGxfc3luY2QgPSAldQoA
+AAAAY2huZXRfbDJ0X3VwZGF0ZTogbDJkZXZfZmMgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfaWQg
+WyV1XSBsMmRldl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdCgAAAAAAAAAAY2huZXRfbDJ0X3VwZGF0
+ZTogbDJkZXZfZmMtPmZsb3djX2lkIFsldV0gYWxyZWFkeSBzY2hlZHVsZWQKAAAAAGNobmV0X2wy
+dF91cGRhdGU6IGluIGRlbGF5ZWRfcHJvY2Vzc2luZywgbDJ0ZW50IFslMDh4XQoAAAAAAAAAAABj
+aG5ldF9sMnRfdXBkYXRlOiBsMnRfdXBkYXRlIHJlcXVlc3Qgc2VudCBsMnRlbnQgWyUwOHhdLCBs
+MnRlbnQtPmlkeCBbJWRdLCBsMnRlbnQtPnZsYW4gWyVkXQoAAABuZXRpZl9wcm9jZXNzX2RoY3A6
+IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHByb2Nlc3NpbmcsIG9wdF9sZW4gJXUKAAAAAAAA
+AAAAAGNobmV0X2RoY3BfcmVjdjogdmxhbmlkIFsldV0sIGwyZGV2X3BpZF9mYy0+Zmxvd2NfbmV0
+X2wyZGV2X3ZsYW5kZXYgWzB4JXhdLCBsMmRldl9mYyBbMHgleF0KAAAAAGNobmV0X2RoY3BfcmVj
+djogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5zdGF0ZSBbJWRdLCBtYWxhY2lv
+dXMgZGhjcCByZWN2IGZvciBubyByZXF1ZXN0CgAAAAAAAAAAAAAAAABkaGN0eHQtPnN0YXRlIDog
+JWQAAAAAAAAAAAAAAAAAAGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIEJhZCBESENQIGNvb2tp
+ZSByZWNpZXZlZCwgYWJvcnRpbmcKAABOX1BPUlQgMHgleCV4JXggcmVqZWN0ZWQgUExPR0kgd2l0
+aCByZWFzb24gY29kZSAleAoAAAAAAAAAAAAAAAAAQUJUUyB3aGlsZSBhd2FpdGluZyBQUkxJIFJz
+cDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXggCgAAAAAAAAAAAAAAAABBQlRT
+IGZha2UgUnNwOiBsb2MgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXgKAABjYW5ub3QgYWxsb2Nh
+dGUgUE9GQ09FIGZpbHRlciBjb25uZWN0aW9uIGZvciB4X2lkICV4IAoAAAAAAAAAAAAAYWN0X29w
+ZW5fcnBsOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwgb3AgWzB4JXhdLCBzdGF0dXMgWzB4JXhd
+CgAAAAAAAAAAAAAAAAAAAABhY3Rfb3Blbl9ycGw6IGNza19mYy0+dGNiX3N0YXRlIFsweCV4XSwg
+Y3NrX2ZjLT5mbGFncyBbMHgleF0sIHRjYl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdCgAAAAAAAABz
+ZW5kX2Fib3J0X3JwbDogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBbJXVdLCBi
+dWZmZXJlZCBbJXVdCgAAAAAAAAAAAAAAAAAAAAB3cmhfb2ZsZF90Y3BfY2xvc2VfY29uX3JlcGx5
+OiB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSwgdGNiX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgbGVu
+MTYgWyV1XSwgbG9jIFsldV0KAAAAAAAAAAAAd3JoX29mbGRfdGNwX2Nsb3NlX2Nvbl9yZXBseTog
+cnBsLT5vcF9UaWQgWzB4JXhdLCBycGw+c3RhdHVzIFsweCV4XSwgcnBsLT5zbmRfbnh0IFsweCV4
+XSwgcnBsLT5yY3Zfbnh0IFsweCV4XQoAAHRjcF9hYm9ydF9ycGxfcnNzOiB0aWQgWzB4JXhdLCBz
+dGF0dXMgWzB4JXhdCgAAAHRjcF9hYm9ydF9yZXFfcnNzOiB0aWQgWzB4JXhdLCBzdGF0dXMgWzB4
+JXhdCgAAAHBrdHNjaGVkX2NsX3JsWyV1OiV1XTogbW9kZSB8IHVuaXQgfCByYXRlIDB4JTA2eCBt
+aW4gJXUgbWF4ICV1IHBrdHNpemUgJXUKAAAAAAAAcGFyYW1fZG1hcVsweCV4OjB4JXhdOiBkbWFx
+IDB4JXggcmVhZCAldSBwZiAldSByZXQgJWQKAAAAAAAAAAAAAGh3X2JjbTg0ODM0X2xvYWRzZXF1
+ZW5jZTogU3RhcnRlZAoAAAAAAAAAAAAAAAAAAGh3X2JjbTg0ODM0X2xvYWRzZXF1ZW5jZTogVXBs
+b2FkIGltYWdlIHRvIFBIWSBvbi1jaGlwIG1lbW9yCgAAAABod19iY204NDgzNF9sb2Fkc2VxdWVu
+Y2U6IGRvbmUgbG9hZGluZyBpbWFnZSAoaSA9ICV1KQoAAAAAAAAAAAAARkxBU0ggbm90IHJlYWR5
+OiBpICV1IG52clJlZyAlI3gKAAAAAAAAAAAAAAAAAAAAQVFfRkxBU0hfUmVhZHkgLSBUaW1lb3V0
+ICgxKQoAAABBUV9GTEFTSF9SZWFkeSAtIFRpbWVvdXQgKDIpCgAAAAlBUV9SZXR1cm5Db250cm9s
+T2ZGTEFTSAoAAAAAAAAAcGh5OiBmYWlsZWQgdG8gYWxsb2NhdGVkIG1lbW9yeSBmb3IgcGh5IGZ3
+IGZpbGUsIHJldCAlZAoAAAAAAAAAAFBIWSBGVyB2ZXJzaW9uIGluZm9ybWF0aW9uIG5vdCBhdmFp
+bGFibGUgZm9yIHRoaXMgdGVjaG5vbG9neQoAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAl
+dSByb3V0ZSAldSBjbGlwICV1IGZpbHRlciAldSBhY3RpdmUgJXUgc2VydmVyICV1IGhhc2ggJXUK
+AAAAAAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1
+IGZpbHRlciAldSBzZXJ2ZXIgJXUgYWN0aXZlICV1IGhhc2ggJXUgbnNlcnZlcnNyYW0gJXUKAAAA
+AAAAAAAAAAAAY2ZfcGFyc2U6IGZpbGUgbWVtdHlwZSAweCV4IG1lbWFkZHIgMHgleCBtYXBwZWQg
+QCAlcDoKAAAAAAAAAAAAAGNvbmZpZ3VyZWQgd2l0aCBjYXBzIG5ibXxsaW5rIDB4JTA4eCBzd2l0
+Y2h8bmljIDB4JTA4eCB0b2V8cmRtYSAweCUwOHggaXNjc2l8ZmNvZSAweCUwOHgKAAAAAAAAAG5l
+dCBWSSBhbGxvY2F0aW9uIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAA
+AAAAAABuZXQgVkkgbWFjIGFkZHJlc3MgcHJvZ3JhbW1pbmcgZmFpbGVkIGZvciBmY19pZCAldSB3
+aXRoIGVycm9yICVkCgAAAAAAAAAAAAAAAAAAAG5ldCBWSSByeG1vZGUgcHJvZ3JhbW1pbmcgZmFp
+bGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAABuZXQgVkkgcnNzIGluZGlyZWN0aW9u
+IHRhYmxlIHByb2dyYW1taW5nIGZvciBmY19pZCAldSBmYWlsZWQgd2l0aCBlcnJvciAlZAoAAAAA
+AG5ldCBWSSByc3MgY29uZmlnIGNvbW1hbmQgZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9y
+ICVkCgAAAABuZXQgVkkgY29tbWFuZCBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQK
+AAAAAAAAAAAAAAAAAAAAbGUgaW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNs
+aXAgJXUgZmlsdGVyICV1IGFjdGl2ZSAldSBzZXJ2ZXIgJXUgaGFzaCAldQoAAAAAAAAAAAAAbGUg
+aW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IHNl
+cnZlciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAAAAAAAAAAAHRwIG1l
+bSBkaXN0cmlidXRpb25bJSVdIHBtdHggJXUgcG1yeCAldSBkZHAgJXUgZGRwX2lzY3NpICV1IHN0
+YWcgJXUgcGJsICV1IHJxICV1IHJxdWRwICV1CgAAAAAAAFRQX1BNTV9SWF9QQUdFX1NJWkUgJXUg
+aXMgbm90IHN1cHBvcnRlZAoAAAAAAAAAAFRQX1BNTV9UWF9QQUdFX1NJWkUgJXUgaXMgbm90IHN1
+cHBvcnRlZAoAAAAAAAAAAHBwbWF4IFsldV0sIGJpdHMgWyV1XSwgRldfSVNDU0lfUEFHRVBPRF9U
+QUdfSURYX01BWF9TSVpFIFsldV0KAABkZWZhdWx0IHRhZ21hc2sgWzB4JTB4XQoAAAAAAAAAAHBy
+b2dyYW1tZWQgdGFnbWFzayBbMHglMHhdCgAAAAAAY3hjbmljLT5kZHBfaW5mby5sbGltaXQgWzB4
+JTB4XSwgY3hjbmljLT5kZHBfaW5mby51bGltaXQgWzB4JTB4XSwgY3hjbmljLT5kZHBfaW5mby5z
+aXplIFsweCUweF0KAAAAAAAAAAAAAAAAAAAAAGN4Y25pYy0+ZGRwX2luZm8ubWF4X3R4c3ogWzB4
+JTB4XSBjeGNuaWMtPmRkcF9pbmZvLm1heF9yeHN6IFsweCUweF0gaW9zaXplIFsweCUweF0KAAAA
+AAAAAAAAAAAAAHBwbWF4IFsldV0sIGlkeF9iaXRzIFsldV0sIGlkeF9tYXNrIFsweCUweF0sIHJl
+c3ZkX3RhZ19tYXNrIFsweCUweF0sIHRhZ21hc2sgWzB4JTB4XQoAAAAAAAAAAAAAAHRhZyBpdHQg
+MHglMHgsIGJpdHMgJXUsIGFnZSAweCUweCwgYml0cyAldQoAAAAAAGN4Y25pYy0+aXNjc2lfcHBt
+IFsweCUweF0KAAAAAAAAc2NzaV9wbGRfc2l6ZSBbJXVdLCBBTElHTihzY3NpX3BsZF9zaXplLCAx
+NikgWyV1XQoAAAAAAAAAAAAAAAAAAG1heF9wcG9kX3pvbmVzIFsldV0KAAAAAAAAAAAAAAAAbDJk
+ZXZfZmMtPmZsb3djX2lkIFsldV0sIGwyZGMtPnBmbiBbJXVdLCBsMmRjLT52Zm4gWyV1XSwgbDJk
+Yy0+bHBvcnQgWyV1XSwgbDJkZXZfZmMtPmZsb3dpZCBbJXVdIGwyZGMtPnR4X2NoIFsldV0sIGRl
+di52cGQucG9ydHZlYyBbJXhdCgAAAAAAAAAAcG9ydHZlYyBbJXVdCgAAAGN4Y25pY19kZXZpY2Vf
+aW5pdDogY3hjbmljX2RldmljZV9pbml0X2RvbmUgWyV1XSwgZGV2LnJlcy5mb2lzY3NpX250YXNr
+cyBbJXVdLCBkZXYucmVzLmZvaXNjc2lfbnNlc3MgWyV1XSwgZGV2LnJlcy5uY3NvY2sgWyV1XSwg
+ZGV2LnJlcy5mb2lzY3NpX25pbml0IFsldV0KAAAAAABhcnBfdGFibGVfc2l6ZSBbJXVdLCBhcnBf
+dGJsX2JtX3NpemUgWyV1XSwgbnN0YWNrX25sMnRfYm1fc2l6ZSBbJXVdLCBvZmxkX3Nwb3J0X2Jt
+X3NpemUgWyV1XQoAAABpc2NzaV9uc2Vzc19ibV9zaXplIFsldV0sIGNzb2NrX2JtX3NpemUgWyV1
+XSwgaXNjc2lfc2NzaV9udGFza3NfYm1fc2l6ZSBbJXVdCgAAAGN4Y25pY19kZXZpY2VfaW5pdDog
+Y3hjbmljIFsweCUweF0sIGN4Y25pYy0+ZmlsdGVyIFslMHhdLCBjeGNuaWMtPm9mbGRfdGNwX3Nw
+b3J0X2JtIFsleF0gc2l6ZW9mKHN0cnVjdCBmbG93YykgWyV1XSwgdG90YWxfaXNjc2lfYm1fc2l6
+ZSBbJXVdLCB0b3RhbF9tZW1fc2l6ZSBbJXVdCgAAAAAAAAAAAAAAAAAAY3hjbmljX2RldmljZV9p
+bml0OiBkZXYudHAubnVtX3R4X3BhZ2VzIFsldV0sIGRldi5tYy5zaXplIFsldV0sIGRldi50cC50
+eF9wYWdlX3N6IFsldV0gbnN0YWNrX25sMnQgWyV1XSwgZm9pc2NzaV9udGNiIFsldV0sIHJjIFsl
+dV0KAAAAAAAAAAAAAAAAUG9ydFsldV06IFVua25vd24gU0dNSUkgc3ViLXR5cGUgJSN4CgAAAAAA
+AAAAAAAAUG9ydFsldV06IFVua25vd24gQlRfWEZJIHN1Yi10eXBlICUjeAoAAAAAAAAAAAAAUG9y
+dFsldV06IFVua25vd24gQlRfWEFVSSBzdWItdHlwZSAlI3gKAAAAAAAAAAAAcG9ydF9pbml0WyV1
+XTogcG9ydCB0eXBlIDB4JXggaXMgbm90IHN1cHBvcnRlZAoARVEgcGZuICV1IHZmbiAldTogZGVz
+dHJveWluZyBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAobnVtX2J5dGVzICV1IGFuZCBmbGFn
+cyAweCUwOHgKAAAAAAAAAAAAbmV0X2wyZGV2X2ZyZWU6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl
+eF0sIHBvcyBbJXVdCgAAAAAAAAAAAAAAAEFoIGhhLi4uZG91YmxlIGZyZWUgb3hfaWQgMHgleCwg
+cnhfaWQgMHgleAoAAAAAAEhvc3QgUFJMSSBSZXNwb25zZSB0aW1lZG91dDogb3hfaWQgMHgleCBy
+eF9pZCAweCV4CgAAAAAAAAAAAAAAAABsMmRldl9mYy0+Zmxvd2NfaWQgWyV1XSwgbDJkZXZfZmMt
+PmZsb3djX25ldF9sMmRldl9wZm4gWyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92Zm4g
+WyV1XSwgbmV0X2wyZGMtPmxwb3J0IFsldV0KAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgdmlhIGNv
+bW1hbmQKAAAAAAAAaHdfbGVfY2xpcF9oYW5kbGVyOiByZW1vdmVkIHBvcz0ldSAoPWlkeCAldSkK
+AAAAaHdfbGVfY2xpcF9oYW5kbGVyOiBhZGRpbmcgdG8gcG9zPSV1ICg9aWR4ICV1KQoAcGZuICV1
+IHZmbiAldQoAAGh3IHBmIGJpdG1hcCAweCUwMnggdmZpZCBiaXRtYXAgMHglMDh4OjB4JTA4eDow
+eCUwOHg6MHglMDh4CgAAAABhZnRlciB2ZmlkIGZpeHVwLCB2ZmlkIGJpdG1hcCAweCUwOHg6MHgl
+MDh4OjB4JTA4eDoweCUwOHgKAAAAAAAAd29ya2Fyb3VuZDEzNzIzOiBkZXRlY3RlZCBXUiBAIDB4
+JTA4eCBvZiBzaXplICV1IGJ5dGVzLCBkcmliYmxpbmcgaXQgaW4gJXUgYnl0ZXMgYXQgYSB0aW1l
+CgAAAAAAdGltZXIgcXVldWUgJXUgbG9zdCBhIHRpY2shIG5leHQgJXAgbGFzdCAlcCBudW1lICV1
+CgAAAAAAAAAAAAAAAGZscl90aW1lcl9zdGFydDogZmxvd2NfaWQgJXUgJXAgYnVmICVwCgAAAAAA
+AAAAAHNldHRpbmcvdW5zZXR0aW5nIGhzcyByZXN5bmMgYml0CgAAAAAAAAAAAAAAAAAAAE1DIGlu
+aXRpYWxpemF0aW9uIG5vdCBjb21wbGV0aW5nLCBNQyBjdXJyZW50IGluaXQgc3RhdGUgaXMgMHgl
+MDJ4CgAAAAAAAAAAAAAAAAAAcGNpZTogbnBmICV1IChwZmJpdG1hcCAweCUwMngpIG52ZiAldSAo
+cGYgMC4uMyAweCUwMnggMHglMDJ4IDB4JTAyeCAweCUwMngpCgAAAABmYWlsZWQgdG8gZmluZCB0
+aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAAAAAAAAAAAABmYWlsZWQgdG8gcGFyc2UgdGhlICVjJWMg
+VlBEIHBhcmFtZXRlcgoAAAAAAAAAAABmYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGZpbmQgQ2hlbHNp
+byBWUEQKAAAAAAAAAABsb2cgaW5pdGlhbGl6ZWQgQCAweCUwOHggc2l6ZSAldSAoJXUgZW50cmll
+cykKAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5m
+bG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAABzZW5kX2Nsb3NlX3Jl
+cTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNz
+a19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBbJXVdLGJ1ZmZlcmVkIFsldV0K
+AG9mbGRfdGNwX2RvX2FjdGl2ZV9jbG9zZTogY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAAAAAG9mbGRfdGNwX2RvX2FjdGl2
+ZV9jbG9zZTogY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+
+dGNiX3N0YXRlIFsweCV4XQoAAAAAAHRjcF9zZW5kX2FvcGVuX3JlcTogY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBidWZmZXJlZCBbJXVdLCByZXNf
+Y250IFsweCV4XSwgc2NoZWRfbm9kZS5uZXh0IFsweCV4XQoAb2ZsZF90Y3Bfc2VuZF9hb3Blbl9y
+ZXE6IGNwbF9yZXEtPkZpbHRlciBbMHglMHhdCgAAAAAAAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiB0
+eF9jaCBbMHgleF0sIGxwb3J0IFsweCV4XSwgc21hY19pZHggWyV1XSwgbXNzX2lkeCBbJXVdIGNv
+b2tpZSBbJTA4eF0KAAAAAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiBhdmFpbGFibGUgWyV1XSwgbmNz
+b2NrIFsldV0sIHBvczphdGlkIFsweCV4XSwgY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIHNwb3J0IFsldV0KAABlbmNvZGVfbnVtYmVyOiBhbGVuIFsldV0KAAAAAAAAAGNo
+YXBfY2FsY19kaWdlc3RfbWQ1IC0xCgAAAAAAAAAAY2hhcF9jYWxjX2RpZ2VzdF9tZDUgLTIKAAAA
+AAAAAABjaGFwX2NhbGNfZGlnZXN0X21kNSAtMwoAAAAAAAAAAGNoYXBfY2FsY19kaWdlc3RfbWQ1
+IC00CgAAAAAAAAAAY2hhcF9jYWxjX2RpZ2VzdF9tZDUgLTUKAAAAAAAAAABjaGFwX2NhbGNfZGln
+ZXN0X21kNSAtNgoAAAAAAAAAAGZvaXNjc2lfcGVlcl9pbml0OiBjb25uX2F0dHItPmhkaWdlc3Rf
+dG9fZGRwX3Bnc3ogWzB4JXhdCgAAAAAAAABmb2lzY3NpX3BlZXJfaW5pdDogY29ubl9mYy0+Zmxv
+d2NfZm9pc2NzaV9jb25uX2ZsYWdzIFsweCV4XQoAAAAAb2ZsZF90Y3BfZGlzY29ubmVjdDogdGNi
+X2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2stPnRjYl9z
+dGF0ZSBbMHgleF0KAAAAeG1pdF9zZW5kdGFyZ2V0czogcGFyYW0tPnR0dCBbMHgleF0sIGRhdGFf
+bGVuIFsldV0sIHBhZF9sZW4gWyV1XQoAAAAAAAAAAAAAAAAAAABsb2dnZWRfaW46IGZsb3djX2Zv
+aXNjc2lfY29ubl9mbGFncyBbMHgleF0KAAAAAABmb2lzY3NpX3ZhbGlkYXRlX2xvZ2luX3N0YWdl
+OiAtIDEKAAAAAAAAAAAAAAAAAAB0YXNrX2ZyZWU6IHRyeWluZyB0byBmcmVlIHF1ZXVlZCB0YXNr
+IFsweCV4XSEhIQoAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBvcGNvZGUgMHgleCBpbiBkYXRhIHBh
+dGgKAAAAAAAAAAAAAAAAAAAAbmV0X2wyZGV2X2ZpbmRfYnlfYWRkcjogbDJkZXZfZmMtPmZsb3dj
+X2lkIFsweCV4XSwgbDJkYy0+bHBvcnQgWyV1XSwgbDJkX2ZjLT5mbG93Y19pZCBbMHgleF0sIGwy
+ZGMtPmluNF9kZXYuaW5fYWRkci5hZGRyIFsweCV4XSwgYWRkciBbMHgleF0KAAAAbmV0X2wyZGV2
+X210dV9jb25maWc6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIG10dSAldQoAAAAAAAAAAGZv
+aXNjc2kgY29ubl9mYyBbMHgleF0sIGZsb3djX3NjaGVkY2wgWzB4JXhdLCBpbmdfY2ggWzB4JXhd
+LCBlZ3JfY2ggWzB4JXhdCgAAAAAAbDJkZXZfbm90aWZ5IHdpdGggdW5rbm93biBmbGFnIFsweCV4
+XQoAAAAAAAAAAAAAY2huZXRfdmlfZW5hYmxlOiB2aWlkIFslZF0sIHZpX2ZjLT5mbG93Y192aV9m
+bGFncyBbMHgleF0KAAAAAAAAAGh3IHJlZ2lzdGVyIG9wZXJhdGlvbiBub3QgY29tcGxldGluZywg
+cmVnIDB4JTA4eCBtYXNrIDB4JTA4eCB2YWx1ZSAweCUwOHgKAAAAAAAATURJTyBDTDQ1OiBmYWls
+ZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHJlYWQKAAAA
+AAAAAAAAAABNRElPIENMNDU6IGZhaWxlZCB0byBzZXQgdXAgTU1EIGFkZHIKAAAAAAAAAAAAAABN
+RElPOiBmYWlsZWQgdG8gd3JpdGUKAAAAAAAAAAAAAHBbJXVdIGNoYW5naW5nIHNwZWVkIGZyb20g
+JSN4IHRvICUjeAoAAAAAAAAAAAAAAHBbJXVdIGNhbGlicmF0aW5nIFBIWSBTRVJERVMgZm9yIG5l
+dyBzcGVlZAoAAAAAAGh3X3hnbV9sZWRfbGlua191cCBsZWQwIGNvbmZpZzogJXUKAAAAAAAAAAAA
+AAAAAGh3X3hnbV9sZWRfbGlua191cCBsZWQxIGNvbmZpZzogJXUKAAAAAAAAAAAAAAAAAGhzc19z
+aWdkZXRbJXVdOiBoc3Nfc2lnZGV0IGNoYW5nZWQgdG8gMHgleAoAAAAAAGNyX21vZHVsZV9yeF9s
+b3NbJXVdOiByeF9sb3MgY2hhbmdlZCB0byAldQoAAAAAAFdBVENIRE9HOiBObyB0ZW1wZXJhdHVy
+ZSBzZW5zb3IgYXZhaWxhYmxlLgoAAAAAAFdBVENIRE9HOiBBY3RpdmF0aW5nCgAAAAAAAAAAAAAA
+V0FUQ0hET0cgLSBFbmFibGUgYWN0aW9uICV1IHRpbWUgJXUKAAAAAAAAAAAAAAAAV0FUQ0hET0cg
+LSBEaXNhYmxlIGFjdGlvbiAldQoAAABXQVRDSERPRzogRGUtYWN0aXZhdGluZwoAAAAAAAAAAEZD
+b0UgRkNCIGxpbmtkb3duOiBpb19yZXEgMHgleCV4IGlxaWQgMHgleCBmbG93aWQgMHgleCBvcCAw
+eCV4CgBmY29lIG5vdGlmeSA6IFVwZGF0ZSBuZXcgRENCWCB2YWx1ZXMgVkkgc3RhdGUgMHgleCBw
+cmkgMHgleCBzY2hlZGNsIDB4JXggZGNieF9kb25lIDB4JXgKAAAAAAAAAABmY29lIG5vdGlmeSA6
+IEZDRiBmbG93aWQgMHgleCwgdWxwY2ggMHgleCAKAAAAAABmY29lIG5vdGlmeSA6IERDQlggOiBw
+b3J0IDB4JXgsIHByaW9yaXR5IDB4JXggdWxwdHhjaCAweCV4IGNsYXNzIDB4JXgKAAAAAAAAAAAA
+AGNoX2NsX3JhdGVbJXUvJXVdOiBjYXBwZWQgZGVmaWNpdF9pbmNyIGZyb20gcmVxdWlyZWQgJXUg
+dG8gJXU7IHJhdGUgJXUgKGVmZiAldSkgZGVmaWNpdF9tYXggJXUKAEZDb0UgRkNGIHRpbWVyOiBm
+bG93YyBzdGF0ZSAweCV4LCBwb3J0IDB4JXggLGZjZiAweCV4LCBmbG93Y19pZCAweCV4CgAAAAAA
+AAAAAAAAY29yZV9wcm9ncmFtX3RjYjogdGlkICUjeCB0X3N0YXRlICUjeCByY3ZfYWR2IDB4JTA4
+eCByY3Zfc2NhbGUgJSN4IHR4X21heCAlI3ggcmN2X254dCAlI3ggYXRpZCAlI3gKAAAAAAAAAAAA
+AAAAAAlvcHQwICUjeCV4IG9wdDIgJSN4IGlwdjYgJSN4IGZsYWdzX3RpbWVyIDB4JTA4eAoAAAAA
+AAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxw
+IDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCUwOHggcGlwIDB4JTA4eCUwOHggZmlsdGVyIDB4
+JTA4eCBleGlzdHMgQCBMRSBpbmRleCAldQoAAAAAAAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25f
+d3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4
+eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHggZXhpc3RzIEAgTEUgaW5kZXggJXUKAAAAAAAAAG9m
+bGRfY29ubmVjdGlvbl93cjogY29ubmVjdGlvbiB3aXRoIDUtdHVwbGUgbHAgMHglMDR4IGZwIDB4
+JTA0eCBsaXAgMHglMDh4JTA4eCBwaXAgMHglMDh4JTA4eCBmaWx0ZXIgMHglMDh4CgAAAABvZmxk
+X2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUw
+NHggbGlwIDB4JTA4eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHgKAAAAAAAAAAAAAAAASVFGTElO
+VCBwZm4gJXUgdmZuICV1OiBpcWVzaXplICV1IHRvbyBzbWFsbAoAAAAASVFGTElOVCBwZm4gJXUg
+dmZuICV1OiBpcWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAAAElRRkxJTlQg
+cGZuICV1IHZmbiAldTogaXFpZCAldSBub3QgYWxsb2NhdGVkCgAAAElRRkxJTlQgcGZuICV1IHZm
+biAldTogZmwwaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAABJUUZMSU5UIHBm
+biAldSB2Zm4gJXU6IGZsMGlkICV1IG5vdCBhbGxvY2F0ZWQKAABJUUZMSU5UIHBmbiAldSB2Zm4g
+JXU6IGZsMWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAASVFGTElOVCBwZm4g
+JXUgdmZuICV1OiBmbDFpZCAldSBub3QgYWxsb2NhdGVkCgAASVFGTElOVCBwZm4gJXUgdmZuICV1
+OiBmbDFpZCAldSBpcyB2YWxpZCBidXQgbm90IGZsMGlkICV1CgAAAAAAAElRRkxJTlQgcGZuICV1
+IHZmbiAldTogZmwxaWQgJXUgaXMgdmFsaWQgYnV0IGhlYWRlciBzcGxpdCBmZWF0dXJlIGlzIG5v
+dCBlbmFibGVkCgAAAAAAAAAAAAAAAAAAAElRIHBmbiAldSB2Zm4gJXU6IGlxaWQgJXUgdG9vIGxh
+cmdlIChtYXggJXUpCgAAAElRIHBmbiAldSB2Zm4gJXU6IGlxaWQgJXUgbm90IGFsbG9jYXRlZAoA
+AAAAAAAAAElRIHBmbiAldSB2Zm4gJXU6IGZsMGlkICV1IGZsMWlkICV1IGJ1dCBub3Qgc3VwcG9y
+dGVkCgAAAAAAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBjcmVhdGluZyBFVEggZXFpZCAldSB3aXRo
+IHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBhbmQgZmxhZ3MgMHglMDh4CgAAAAAAAABFUSBw
+Zm4gJXUgdmZuICV1OiBjcmVhdGluZyBDVFJMIGVxaWQgJXUgd2l0aCBwZW5kaW5nIFdSKHMpIChu
+dW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBlcWlk
+ICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAABFUSBwZm4gJXUgdmZuICV1OiBlcWlkICV1IG5vdCBh
+bGxvY2F0ZWQKAAAAAAAAAABod19jaW1fdHBfd29ya2Fyb3VuZDEzNzIzX2VuYWJsZTogcG9ydCAl
+dSBwcm90b2NvbCAweCV4IGVuICV1IGN1cnJlbnQgMHgleCB3b3JrYXJvdW5kX3ByMTM3MjMgMHgl
+eAoAAAAAAAAAAAAAAAAAcG9ydF9ibGlua19sZWRfcmVzdG9yZQoAAAAAAAAAAABwb3J0X2JsaW5r
+OiBibGlua2R1cj0weCV4IGJsaW5rX3JlZmNudAoAAAAAAAAAAABwb3J0X2JsaW5rOiAJYmxpbmtf
+cmVmY250PTB4JXgKAHBvcnRfYmxpbms6IAlibGlua19yZWZjbnQ9MHgleAoAbWlpX2Fkdl9zcGVl
+ZFsldV06IHJjYXBzIDB4JXgKAABtaWlfaW5pdFsldV06IGFjYXBzIDB4JXgKAAAAAAAAAG1paV9w
+ZG93blsldV06IHBvd2VyZG93biBlbiAldQoAcG9ydFsldV06IGdhdmUgdXAgZml4aW5nIGVycm9y
+cyEhIQoAAAAAAAAAAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIHBjYXBzIDB4
+JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1OjB4JTAyeDow
+eCUwMnhdOiBsMWNmZywgaW52YWxpZCByZXF1ZXN0LCBwY2FwcyAweCV4IGFjYXBzIDB4JXggcmNh
+cHMgMHgleAoAAAAAAAAAAAAAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgbWRp
+IG4vYSBwY2FwcyAweCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAAAAAAAAAHBvcnRbJXU6MHgl
+MDJ4OjB4JTAyeF06IGwxY2ZnLCBjYW5ub3QgZm9yY2UgbXVsdGlwbGUgc3BlZWRzLCBwY2FwcyAw
+eCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAGNoX3JhdGVbJXVdOiBjYXBwZWQgdGljayBmcm9t
+IHJlcXVpcmVkICV1IHRvIHN1cHBvcnRlZCAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X2lu
+Y3IgJXUgdGljayAldQoAAAAAAAAAAAAAAABod19pMmNfdyBwb3J0ICV1IGRldiAleCByZWcgJXUg
+ZGF0YSAweCV4CgAAAAAAAABnZXRfcmVmX3Rhc2s6IHJlcXVlc3RlZCBjb29raWU6IGhpZ2ggWzB4
+JTA4eF0sIGxvdyBbMHglMDh4XQoAAAAAZ2V0X3JlZl90YXNrOiB0YXNrIGNvb2tpZTogaGlnaCBb
+MHglMDh4XSwgbG93IFsweCUwOHhdCgAAAAAAAAAAAGdldF9yZWZfdGFzazogaXN0YXNrLT5mbG93
+Y19pZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc3RhdGUgWyV1XQoAAAAAAAAAAAAAAAAAZ2V0
+X3JlZl90YXNrOiB0YXNrIG5vdCBmb3IgY29va2llICVseAoAAAAAAAAAAAAAbmV0aWZfcHJvY2Vz
+c19kaGNwX29wdHM6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIE1TR19UWVBFIFslZF0sIGRo
+Y3R4dC0+c3RhdGUgWyVkXQoAAAAAAAAAAAAAaWNtcF9yZWN2OiBsMmRldl9mYy0+Zmxvd2NfaWQg
+WzB4JXhdLCBwaWQgWzB4JXhdLCBpY21wIHR5cGUgWzB4JXhdCgAAAAAAAAAAAAAAAABBQlRTIEFD
+QyBhd2FpdGluZyBQUkxJIFJzcDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXgg
+aXFpZCAweCV4CgAAAAAAAGNobmV0X2FycF9yZWN2OiBwaWQgWyV1XSwgcGt0LT5haGRyLnNpcCBb
+MHgleF0sIHBrdC0+YWhkci5yaXAgWzB4JXhdLCBwa3QtPmFoZHIub3Bjb2QgWzB4JXhdCgAAAGNo
+bmV0X2FycF9yZWN2OiB2bGFuIGV4dHJhY3RlZCwgdmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93
+Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0sIGwyZGV2X2ZjIFsweCV4XQoAAAAAAAAAAABjaG5l
+dF9hcnBfcmVjdjogaXAgY29uZmxpY3QgZGV0ZWN0ZWQKAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVj
+djogdmxhbmlkIFslMHhdLCBwaWQgWyV1XQoAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogbDJkZXZf
+ZmMgWyV4XSwgcGt0LT5haGRyLnJpcCBbMHgleF0sIHBrdC0+YWhkci5zaXAgWzB4JXhdCgAAAAAA
+AGNzb2NrX3BlZXJfY2xvc2U6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPnRjYl9m
+Yy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY3NrX2ZjLT5m
+bG93Y19jc29ja190Y2JfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAAAABjc29ja19wZWVy
+X2Nsb3NlOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSAgWzB4
+JXhdCgAAAAAAAAAAAHRjYl9mYy0+Zmxvd2NfaWQgWzB4JTA2eF0sIHRjYl9mYy0+Zmxvd2NfdHlw
+ZSBbMHgleF0sIGNwbG9wIFsweCV4XSAKAAAAAAAAAAAAAAAAcGt0c2NoZWRfY2hfcmxbJXVdOiBj
+aGFubmVsIHJsIG5vdCBhdmFpbGFibGUgaW4gY29uanVuY3Rpb24gd2l0aCBmbG93IHNoYXBpbmcK
+AABwa3RzY2hlZF9jaF9ybFsldV06IHJhdGUgJXUgbWF4ICV1CgAAAAAAAAAAAAAAAABwa3RzY2hl
+ZF9jbF93cnJbJXU6JXVdOiB3ZWlnaHQgJXUgd2VpZ2h0ZWRfbWFzayAweCV4CgAAAAAAAAAAAAAA
+ZXFfcGFyYW1zWzB4JXg6MHgleF06IGRtYXEgMHgleCByZWFkICV1IHBmICV1IGVxaWRfYXBpICV1
+IHJldCAlZAoAAAAAAAAAAAAAAAAAAABod19iY204NDM0X2NoZWNrcmFtOiBTdGFydAoAAAAAAFBI
+WVsldV0gcHJvY2Vzc29yIG5vdCBydW5uaW5nCgAAUEhZWyV1XSBGVyBoYXMgYmFkIENSQwoAAAAA
+AAAAAABQSFkgZmlybXdhcmUgbG9hZCBzdWNjZXNzZnVsIQoAAAlBUV9UYWtlQ29udHJvbE9mRkxB
+U0g6IDFlLmMwMDE9JSN4IDFlLmM0NTA9JSN4IDFlLmM0NTE9JSN4IDFlLjEwMD0lI3gKAAAAAAAA
+AAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIEltYWdlIGludGVncml0eSBjaGVj
+ayBmYWlsZWQgKGNhbGMgJSN4IHZhbCAlI3gpCgAAAAAAAAAAAAAAAAAAQVFfQVBJX1dyaXRlQW5k
+VmVyaWZ5Rmxhc2hJbWFnZSAtIEltYWdlIGludGVncml0eSBjaGVjayBwYXNzZWQKAEFRX0FQSV9X
+cml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVy
+ZmFjZSAoJXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQg
+d2FpdGluZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJp
+ZnlGbGFzaEltYWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoA
+AAAAAEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9y
+IGZsYXNoIGludGVyZmFjZSAoJXUpIChwcCAlI3ggYXAgJSN4KQoAAAAAAEFRX0FQSV9Xcml0ZUFu
+ZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVyZmFjZSAo
+JXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQgd2FpdGlu
+ZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFz
+aEltYWdlIC0gRXJyb3Igb24gYnVybmluZyBGTEFTSCAoY3JjMTYgbWlzbWF0Y2gpCgAAAAAAAG1h
+bGxvY19kZWNbJXVdOiBzdGFydCAlcCBlbmQgJXAgbmV4dCAlcCBzaXplIDB4JXggYWxpZ21lbnQg
+MHgleCBwICVwCgAAAAAAAAAAAAAAbWFsbG9jX2luY1sldV06IHN0YXJ0ICVwIGVuZCAlcCBuZXh0
+ICVwIHNpemUgMHgleCBhbGlnbWVudCAweCV4IHAgJXAKAAAAAAAAAAAAAABsZSBjb25maWd1cmF0
+aW9uOiBoYXNoIG1vZGUgcmVxdWlyZXMgYXQgbGVhc3QgMTYgZW50cmllcywgbmhhc2ggJXUKAAAA
+AAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBlbnRyaWVz
+IHRvIGJlIGEgcG93ZXIgb2YgMiwgbmhhc2ggJXUKAAAAbGUgY29uZmlndXJhdGlvbjogcmVxdWVz
+dGVkICV1IHRjYW0gZW50cmllcyBidXQgb25seSAldSBhdmFpbGFibGUKAAAAAAAAAAAAAAAAAABs
+ZSBjb25maWd1cmF0aW9uOiB0Y2FtIHJlZ2lvbnMgbXVzdCBoYXZlIG11bHRpcGxlIG9mIDMyIGVu
+dHJpZXMsIG5yb3V0ZSAldSBuY2xpcCAldSBuZmlsdGVyICV1IG5zZXJ2ZXIgJXUKAAAAAAAAb2Zs
+ZCB0cCB0aW1lciBzZXR0aW5ncyBUUF9NU0wgMHglMDh4IFRQX1JYVF9NSU4gMHglMDh4IFRQX1JY
+VF9NQVggMHglMDh4IFRQX1BFUlNfTUlOIDB4JTA4eCBUUF9QRVJTX01BWCAweCUwOHgKACAgICAg
+ICAgICAgICAgICAgICAgICAgVFBfS0VFUF9JRExFIDB4JTA4eCBUUF9LRUVQX0lOVFZMIDB4JTA4
+eCBUUF9JTklUX1NSVFQuaW5pdF9zcnR0X21heHJ0dCAweCUwNHggVFBfSU5JVF9TUlRULmluaXRf
+c3J0dF9pbml0c3J0dCAweCUwNHggVFBfRklOV0FJVDJfVElNRVIgMHglMDh4CgAAAAAAAAAAAAAA
+Y29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciBlbmNvdW50ZXJlZCBlcnJvciBAIGxpbmUgJXU6CgAA
+AAAAAAAAAEhPU1QgUEFHRV9TSVpFIFsweCUwbHhdIHRvbyBzbWFsbCwgbWluIFsweCUwbHhdIHJl
+cXVpcmVkCgAAAAAAAABwYWdlIHNpemUgWyVsdV0gbWlzbWF0Y2gKAAAAAAAAAFBBR0Ugc2l6ZSAl
+bHUgdW5zdXBwb3J0ZWQsIGRkcCBkaXNhYmxlZAoAAAAAAAAAAEhvc3QgcGFnZV9zaXplICVsdSwg
+ZGRwX2lkeCAldQoARkNvRSBERFAgaW5pdDogZmNvZSBsbGltaXQgMHgleCwgZmNvZSB1bGltaXQg
+MHgleCBnYmwgbGxpbWl0IDB4JXggZ2JsIHVsaW1pdCAweCV4CgAAAAAAAAAAAAAAAAAARkNvRSBE
+RFAgaW5pdDogZmNvZSBwcG9kIG9mZiAweCV4LCBmY29lIHN0IHBwb2QgYWRkciAweCV4IGZjb2Ug
+bnVtIHBwb2RzIDB4JXgKAABmY29lIHhjaGcgbWdyIGluaXQ6IE51bWJlciBvZiBleGNoYW5nZXMg
+Zm9yIEZDb0UgaXMgJXgKAAAAAAAAAAAAQ2FsY3VsYXRpb24gb3V0IG9mIGJvdW5kcyBmdXJpbmcg
+aW5pdDogJSN4ICUjeCAlI3gKAAAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgaGFzIHBuZHR4bnMg
+JXUgYWZ0ZXIgMTAwbXMKAAAAAAAAAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7
+IG9wY29kZSAweCV4ID4gTEFTVEMyRSAweCV4CgBtYWlsYm94IGNtZCBub3QgeWV0IHN1cHBvcnRl
+ZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4CgAAYmFkIG1haWxib3ggY21kOiBwZm4g
+MHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXggaXMgdmFsaWQgcG9zdCBkZXZpY2UgaW5pdCBvbmx5
+CgBiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHglMDJ4IHJhbWFz
+ayAweCV4IGNtZCByYW1hc2sgMHgleAoAAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4
+JXg7IG9wY29kZSAweCUwMnggbGVuMTYgMHgleCB2ZXJzdXMgZXhwZWN0ZWQgbGVuMTYgMHgleAoA
+AAAAAAAAAGluc3VmZmljaWVudCBjYXBzIHRvIHByb2Nlc3MgbWFpbGJveCBjbWQ6IHBmbiAweCV4
+IHZmbiAweCV4OyByX2NhcHMgMHgleCB3eF9jYXBzIDB4JXggcmVxdWlyZWQgcl9jYXBzIDB4JXgg
+d19jYXBzIDB4JXgKAAAAAAAAAAAAaW5zdWZmaWNpZW50IGNhcHMgdG8gcHJvY2VzcyBtYWlsYm94
+IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IHJfY2FwcyAweCV4IHd4X2NhcHMgMHgleCByZXF1aXJl
+ZCByX2NhcHMgMHgleCB3X2NhcHMgMHgleAoAAAAAAAAAAABWUEQgcmVnaW9uIGlzIHRvbyBzbWFs
+bCAoU0VSQ0ZHX1NSX1BGTlZQRFNJWkUgMHgleCkKAAAAAAAAAAAAAAAAY2Y6IGZhaWxlZCB0byBh
+bGxvY2F0ZWQgbWVtb3J5IGZvciBjb25maWd1cmF0aW9uIGZpbGUsIHJldCAlZAoAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIAAAEgAAAAAAAAAIIAAAEAAAAAAAAAAIAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAgAAAAAAAAAAAAAAAAIAAAAAAAAAAAAKAAAAA
+AAAAAAAAAgADAAAAAAFgCAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAACAAAAAAAAAAAAIAAA
+AAAAAAAAAAAAAQADgAAAAAAAAAAAAAACAAAAAAAAAAAAIAOAAAAAAAAAAAAAEAKAAIAAAAAAAAAA
+AAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAACAAAAAAAAAAAAAAACgAAAAAAA
+AAAAAQADAAAAAAAAAAAAAAKDAAAAAAAAAAAAEAKAAAAAAAAAAAAAMAADAAAAAAAACAAAMAADAAAA
+AAAAAAAAMAWDAAAAAAAACAAAMAWDAAAAAAAAAAAAMASDAAAAAAAACAAAMASDAAAAAAAAAAAAMAMD
+AAAAAAAACAAAMAMDAAAAAAAAAAAAOAMDAAAAAAAAAAAAOAWDAAAAAAAAAAAAOASDAAAAAAAAAAAA
+OAADAAAAAAAAAAAANAaCAAAAAAAAAAAAPAOCAAAAAAAAAAAAPAADAAAAAAAACAAAPAADAAAAAAAA
+AAAAPASDAAAAAAAAAAAAPAUDAAAAAAAAAAAAPQQDAAAAAAAAAAAAPAODAAAAAAAAAAAALAACAAAA
+AAAAAAAALAWCAAAAAAAAAAAALAUCAAAAAAAAAAAAEAaAAAAAAAAAAAAAEAaCwAAAAAAAAAAAEAaC
+gAAAAAAAAAAAAA6CAAAAAAAAAAAAEAeCgAAAACAAAAAAAAeCAAAAACAAAAAAEAcCgAAAAAAAAAAA
+EAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAAAcCAAAAACAAAAAAEBeDAAAAAAAACAAAEBeDAAAAAAAA
+CAAAEAAAAAAAAAAAAAAAEAYDgAAAAAAAAAAAAA4DAAAAAAAAAAAAEAYDQAAAAAAAAAAAEAYDAAAA
+AAAAAAAAEAYAAAAAAAAAAAAAAAYDgAAAAAAAAAAAAAYDAAAAAAAAAAAAAA4CAAAAAAAAAAAAAA4C
+AAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCgAAAAAAAAAAAEAYCgAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAA
+AAAA////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////AAAAIAAAAADAAAAAAAAAIAAAAADgAAAAAAAAAAIAAAAAAAAA
+QAAAAAAAAAAAAAAAAAABIQAAAAAAAAAAAAEBIAAAAAAAAAAAAAACAAAABAAEAAAAAAUAAAAEAAAA
+AAAAAAAAoAAAAACAAAAAAIAAQAAAAAAAAgAAAIAAIAAAAAAAAgAAAQBAAAAAAAAAAAAAAQBCAAAA
+AAAAAAAAAAAgAAAAAAAAAAAAAhAgAAAAAAAAAAAAAgwCAAAAAAAAAAAAAIUCAAAABAAAAAAAAIBC
+AAAAAAAAAAAAAgAiAAAAAAAAAAAAAIBBAAAAAAAAAAAAAIBBgAAAAAAAAAAAAgAhAAAAAAAAAAAA
+ABAggAAAAAAAAAAAAiUAgAAAAAAAAAAAAAUAAAAAAAAAAAAACIgEgAAAAAAAAAAACIgEgAAAAAAA
+AAAACKIAgAAAAAAAAAAACKIAgAAAAAAAAAAACKMAgAAAAAAAAAAACKMAgAAAAAAAAAAACKSAgAAA
+AAAAAAAACKSAgAAAAAAAAAAABKSAwAAAAAAAAAAABKIAwAAAAAAAAAAABKMAwAAAAAAAAAAABIgE
+wAAAAAAAAAAAAAkBgAAAAAAAAAAAAgwAgAAAAAAAAAAAAIgEwAAAAAAAAAAAAIgEgAAAAAAAAAAA
+AgsAgAAAAAAAAAAAAIqAgAAAAAAAAAAAAAuAgAAAAAAAAAAAAIwAgAAAAAAAAAAAAiAQgAAAAAAA
+AAAAAgoAgAAAAAAAAAAAAgqAgAAAAAAAAAAAAAkCgAAAAAAAAAAAAAEBAAAAAAAAAAAAAAEBQAAA
+AAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAACBEAAAAAAAAAAAAACB
+CAAAAAAAAAAAAACBBAAAAAAAAAAAAACBgAAAAAAAAAAAAIAAwAAAAAAAAAAAAIAAoAAAAAAAAAAA
+AAAIAAAAAAAAAAAAAIGAAAAAAAAAAAAAAIGAgAAAAAAAAAAAAImAgAAAAAAAAAAAAImAwAAAAAAA
+AAAAAAGCAAAAAAAAAAAAAgGAAAAAAAAAAAAAAgGAgAAAAAAAAAAAAEGBgAAAAAAAAAAAAgGBgAAA
+AAAAAAAAAEmBgAAAAAAAAAAAAgmBgAAAAAAAAAAAAgGBAAAAAAAAAAAAAEGBAAAAAAAAAAAAIAAA
+AAAAAAAAAAAAEAAAAgAAAAAAAAAAEAAAAAAAAAAAAAAAAIAAwAAAAAAAAAAAAAAAAAAAAAAAAAAA
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAJIAAAAAAAAAA2YAIABA
+AAAAAAgAkgAAAAAAAAADcgElBEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCIA4cAAFYA
+IABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAA
+A5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAAAAAA
+AAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAA
+AAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAA
+AAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAgADlgAmBEAAAAAACEcgAQQAAAKyAALSBSAkQAAA
+AAAAAAAAAAAAAAAAA5YAIABAAAAAAABHIAEGDKGCsEABkgQgJEAAAAAAAEcgAQQMoEKzgAISBSAk
+QAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAACAAAAAIAiAOFAACW
+ASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAA3FEroCsIDTFFSL4kpGJEAAAAAABcUSugK3gNMU
+VItiSaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAAAA3FEqIGt4DTFFSLYkmmJEAAAAAABcUSogaw
+gNMUVIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAXFEqIGsIDTFFSL4kpGJEAAAAAADcUS
+oga3gNMUVItiSaYkQAAAAAAJxBCgAgCAkAAAi2JpxiRAAAAAAAHEEKAGsICTBlSLYmnGJEAAAAAA
+AcQQoAawgJMGVItiacYkQAAAAAABxRC4BrCAkxZUi2JIxiRAAAAAAAihEIgCAIFYEgALUgCmJEAA
+AAAACcAQkAKwgAMWVIqSAcYkQAAAAAAJwBC4BrCAAxCUi+ICRiRAAAAAAAnAELgCtIADEJSLYgGm
+JEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSAAxCUi2IBpiRAAAAAAAnAELgCtIADEJSL
+YgGmJEAAAAAAAaAQkAa0gAMQlItiAaYkQAAAAAABwBCAArCAAxRUilIAxiRAAAAAAAHAEIACsIAD
+FFSKUgDGJEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAAIRyABBAAAArIAAtIFICRAAAAAAACBAAAC
+AIVYB0ALUgCmJEAAAAAAAIEAAAIAhVgHQAtSAKYkQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAAA
+AAAGAKGAAEABVgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAIgQAAAgCFWYAEC1IApiRAAAAA
+AAlhQAAAAAAYAAADQgEmpEAAAAAACEAAAAAAAAAAAANSASYkQAAAAAAAAAAABACgQAGAAdYAIABA
+AAAAAAgAAAACAIgDhwAD1gAmBEAAAAAACAAAAAIAiAOHAAPWACYEQAAAAAAAAAAAAAAAAAAAA5YA
+IABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAJwBC4ArSAAxCU
+i2IBpiRAAAAAAAAAAAAAAAAAAgADlgAmBEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCI
+A4UAAJYBIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAAAAAA
+BACgQAGAAdYAIABAAAAAAAihEIgCAIFYEAAJEgGmJEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAA
+AAAABgChgABAAVYAIABAAAAAAAgAAAACAIgDhUAI0gJGJEAAAAAACcUSogKUiNIQgIsiSKYkQAAA
+AAAJwBCAAqSIAIdUi1IBpiRAAAAAAAnAEIAGtIgDARSLUgGmJEAAAAAADcAAAAKwgMMWVIviA0Yk
+QAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAwAAQAAAACAAACACYkQAAAAAAA
+RzAABgMgArcACAIBwCRAAAAAAAgDAAACBqAKtQAIAgDGJEAAAAAAAAAAAAAAAAACAAACACYkQAAA
+AAAAIFAABAAAAAIAAAIAJiRAAAAAAAhgIACEAAAAAAAABgAgAEAAAAAACGAgAIQAAAACATACACYl
+QAAAAAAIYAAABACEAYAEBAIBxiTAAAAAAAHAAAACQ4ADAgyIAgGmJEAAAAAACABgAAQAAAACAAAC
+ACYkQAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAAAAAABAEgAEAAAAAABAgUgAYKAAAH
+AUwCIKYmQAAAAAAIgAAABgCEAYAECAIBpiZAAAAAAABAAAACAKAAAkAIAgGmJEAAAAAAAAAAAAAA
+AAACAAACACYkQAAAAAAEAAAAAoQAAwKKCAIEpiRAAAAAAAAAAAAAAAAAAgAABgEgSEAAAAAAACBQ
+AAQAAAACAAACACYkQAAAAAAIYCAAhAAAAAIAAAYAJgRAAAAAAAhgIACEAAAAAgAAAgEmJUAAAAAA
+CGAAAAQAhAGABAQCAcYkwAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAAAAAAAgAmTHAA
+AAAAAAAAAAAAAAAAAAAGASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAItJAE
+CRYEAgTGJEAAAAAAAcAAAAi0kAQJFgQCBMYkQAAAAAAECHSATAkAAFAAXAJh5iRAAAAAAAwIdIBE
+AAAAUgBAAmEmJEAAAAAACAIQoAQAAAAAAQACACYkQAAAAAAIAhCgBAAAAAABAAIAJiRAAAAAAAQI
+dABCAQAABwCIAmDGJEAAAAAADcgUAAIJAAAEQJwCYOYkQAAAAAAJyBCABrSQBAKUiAJlxiRAAAAA
+AA3IdABItJADAJSIAmCmJMAAAAAADch0AEi0kAMAlIgCYKYkwAAAAAAIRwAABAAAAAAAAAIBICRA
+AAAAAAhHAAAEAAAAAgAAAgUgJEAAAAAAAEcgAQwHIcK3AAgCAcAkQAAAAAAARyABDAchwrcACAIB
+wCRAAAAAAABHIAEMByHCtwAIAgHAJEAAAAAAAAAgAQgAhAAFQIgCAcYkwAAAAAAAACABCACEAAVA
+iAIBxiTAAAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAYaCAAECwIgCA8YkwAAAAAAAACABgoIA
+AALAiAIDxiTAAAAAAAnAIAGCpIABBUCIAgHGJMAAAAAACAAAAAwAhAAFQIgCAcYkwAAAAAAAACAB
+hoIAAQLAiAIDxiTAAAAAAAAAIAGCggAAAMCIAgKmJMAAAAAACcAgAYKkgAEFQIgCAcYkwAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAQkBAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAW2dsb2JhbF0KcnNzX2dsYl9jb25maWdfbW9kZT1iYXNpY3ZpcnR1YWwKcnNzX2ds
+Yl9jb25maWdfb3B0aW9ucz10bmxtYXBlbixoYXNodG9lcGxpdHosdG5sYWxsbGtwCnJlZ1sweDEw
+MDhdPTB4NDA4MTAvMHgyMWM3MApyZWdbMHgxMDBjXT0weDIyMjIyMjIyCnJlZ1sweDEwYTBdPTB4
+MDEwNDA4MTAKcmVnWzB4MTA0NF09NDA5NgpyZWdbMHgxMDQ4XT02NTUzNgpyZWdbMHgxMDRjXT0x
+NTM2CnJlZ1sweDEwNTBdPTkwMjQKcmVnWzB4MTA1NF09OTIxNgpyZWdbMHgxMDU4XT0yMDQ4CnJl
+Z1sweDEwNWNdPTEyOApyZWdbMHgxMDYwXT04MTkyCnJlZ1sweDEwNjRdPTE2Mzg0CnJlZ1sweDEw
+YTRdPTB4YTAwMGEwMDAvMHhmMDAwZjAwMApyZWdbMHgxMGE4XT0weDIwMDAvMHgyMDAwCnNnZV90
+aW1lcl92YWx1ZT01LDEwLDIwLDUwLDEwMCwyMDAKcmVnWzB4N2RjMF09MHg2MmY4ODQ5CmZpbHRl
+ck1vZGU9ZnJhZ21lbnRhdGlvbixtcHNoaXR0eXBlLHByb3RvY29sLHZsYW4scG9ydCxmY29lCnRw
+X3Btcng9MzAKdHBfcG1yeF9wYWdlc2l6ZT02NEsKdHBfcG10eD01MAp0cF9wbXR4X3BhZ2VzaXpl
+PTY0SwpbZnVuY3Rpb24iMCJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5p
+cWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDEK
+W2Z1bmN0aW9uIjEiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MQpuaXFmbGlu
+dD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwKcG1hc2s9MHgyCltmdW5j
+dGlvbiIyIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApu
+ZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4NApbZnVuY3Rpb24i
+MyJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0
+cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDgKW2Z1bmN0aW9uIjQiXQp3
+eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0xNzAKbmV0aGN0cmw9MTAwCm5l
+cT0yNTYKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5ldGhvZmxkPTEwMjQKbnJvdXRl
+PTMyCm5jbGlwPTMyCm5maWx0ZXI9NDk2Cm5zZXJ2ZXI9NDk2Cm5oYXNoPTEyMjg4CnByb3RvY29s
+PW5pY192bSxvZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90YXJnZXRf
+cGR1CnRwX2wydD0zMDcyCnRwX2RkcD0yCnRwX2RkcF9pc2NzaT0yCnRwX3N0YWc9Mgp0cF9wYmw9
+NQp0cF9ycT03CltmdW5jdGlvbiI1Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApuaXFm
+bGludD0zNApuZXRoY3RybD0zMgpuZXE9NjQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz1hbGwK
+bnNlcnZlcj0xNgpuaGFzaD0yMDQ4CnRwX2wydD0xMDI0CnByb3RvY29sPWlzY3NpX2luaXRpYXRv
+cl9mb2ZsZAp0cF9kZHBfaXNjc2k9Mgppc2NzaV9udGFzaz0yMDQ4CmlzY3NpX25zZXNzPTIwNDgK
+aXNjc2lfbmNvbm5fcGVyX3Nlc3Npb249MQppc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlPTY0Cltm
+dW5jdGlvbiI2Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApuaXFmbGludD0zNApuZXRo
+Y3RybD0zMgpuZXE9NjYKbmV4YWN0Zj0zMgpjbWFzaz1hbGwKcG1hc2s9YWxsCm5oYXNoPTIwNDgK
+cHJvdG9jb2w9ZmNvZV9pbml0aWF0b3IKdHBfZGRwPTIKZmNvZV9uZmNmPTE2CmZjb2VfbnZucD0z
+MgpmY29lX25zc249MTAyNApbZnVuY3Rpb24iMTAyMyJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwK
+bnZpPTQKY21hc2s9YWxsCnBtYXNrPWFsbApuZXhhY3RmPTgKbmZpbHRlcj0xNgpbZnVuY3Rpb24i
+MC8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9
+MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MQpbZnVuY3Rpb24iMS8qIl0Kd3hf
+Y2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApu
+ZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MgpbZnVuY3Rpb24iMi8qIl0Kd3hfY2Fwcz0weDgy
+CnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQK
+Y21hc2s9YWxsCnBtYXNrPTB4NApbZnVuY3Rpb24iMy8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0w
+eDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxs
+CnBtYXNrPTB4OApbcG9ydCIwIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpo
+d209MzAKbHdtPTE1CmR3bT0zMApbcG9ydCIxIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJr
+X21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbcG9ydCIyIl0KZGNiPXBwcCxkY2J4CmJnX21l
+bT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbcG9ydCIzIl0KZGNiPXBwcCxk
+Y2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbZmluaV0KdmVy
+c2lvbj0weDE0MjUwMDBjCmNoZWNrc3VtPTB4NzY4ZWY3YTUKAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZpZ19tb2RlPWJhc2ljdmlydHVhbApyc3NfZ2xiX2NvbmZp
+Z19vcHRpb25zPXRubG1hcGVuLGhhc2h0b2VwbGl0eix0bmxhbGxsa3AKcmVnWzB4MTAwOF09MHg0
+MDgxMC8weDIxYzcwCnJlZ1sweDEwMGNdPTB4MjIyMjIyMjIKcmVnWzB4MTBhMF09MHgwMTA0MDgx
+MApyZWdbMHgxMDQ0XT00MDk2CnJlZ1sweDEwNDhdPTY1NTM2CnJlZ1sweDEwNGNdPTE1MzYKcmVn
+WzB4MTA1MF09OTAyNApyZWdbMHgxMDU0XT05MjE2CnJlZ1sweDEwNThdPTIwNDgKcmVnWzB4MTA1
+Y109MTI4CnJlZ1sweDEwNjBdPTgxOTIKcmVnWzB4MTA2NF09MTYzODQKcmVnWzB4MTBhNF09MHhh
+MDAwYTAwMC8weGYwMDBmMDAwCnJlZ1sweDEwYThdPTB4MjAwMC8weDIwMDAKc2dlX3RpbWVyX3Zh
+bHVlPTUsMTAsMjAsNTAsMTAwLDIwMApyZWdbMHg3ZGMwXT0weDYyZjg4NDkKZmlsdGVyTW9kZT1m
+cmFnbWVudGF0aW9uLG1wc2hpdHR5cGUscHJvdG9jb2wsdmxhbixwb3J0LGZjb2UKdHBfcG1yeD0z
+MAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9wbXR4PTUwCnRwX3BtdHhfcGFnZXNpemU9NjRLCltm
+dW5jdGlvbiIwIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MjgKbmlxZmxpbnQ9MTcwCm5l
+dGhjdHJsPTk2Cm5lcT0yNTIKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5yb3V0ZT0z
+MgpuY2xpcD0zMgpuZmlsdGVyPTQ4Cm5zZXJ2ZXI9MzIKbmhhc2g9MApwcm90b2NvbD1uaWNfdm0s
+b2ZsZCxyZGRwLHJkbWFjLGlzY3NpX2luaXRpYXRvcl9wZHUsaXNjc2lfdGFyZ2V0X3BkdQp0cF9s
+MnQ9MzA3Mgp0cF9kZHA9Mgp0cF9kZHBfaXNjc2k9Mgp0cF9zdGFnPTIKdHBfcGJsPTUKdHBfcnE9
+NwpbZnVuY3Rpb24iMSJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTQKbmlxZmxpbnQ9MzQK
+bmV0aGN0cmw9MzIKbmVxPTY2Cm5leGFjdGY9MzIKY21hc2s9YWxsCnBtYXNrPWFsbApuaGFzaD0w
+CnByb3RvY29sPWZjb2VfaW5pdGlhdG9yCnRwX2RkcD0yCmZjb2VfbmZjZj0xNgpmY29lX252bnA9
+MzIKZmNvZV9uc3NuPTEwMjQKW2Z1bmN0aW9uIjEwMjMiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxs
+Cm52aT00CmNtYXNrPWFsbApwbWFzaz1hbGwKbmV4YWN0Zj04Cm5maWx0ZXI9MTYKW2Z1bmN0aW9u
+IjAvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJs
+PTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEvKiJdCnd4
+X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQK
+bmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDIKW3BvcnQiMCJdCmRjYj1wcHAsZGNieApiZ19t
+ZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKW3BvcnQiMSJdCmRjYj1wcHAs
+ZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKW3BvcnQiMiJd
+CmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAK
+W3BvcnQiMyJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0x
+NQpkd209MzAKW2ZpbmldCnZlcnNpb249MHgxNDI1MDAwYwpjaGVja3N1bT0weDRjNTY2NjM5CgAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+====
Modified: trunk/sys/dev/cxgbe/firmware/t4fw_cfg.txt
===================================================================
--- trunk/sys/dev/cxgbe/firmware/t4fw_cfg.txt 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/firmware/t4fw_cfg.txt 2016-10-02 00:13:34 UTC (rev 9115)
@@ -15,14 +15,10 @@
sge_timer_value = 1, 5, 10, 50, 100, 200 # usecs
# TP_SHIFT_CNT
- reg[0x7dc0] = 0x62f8849
+ reg[0x7dc0] = 0x64f8849
filterMode = fragmentation, mpshittype, protocol, vlan, port, fcoe
- # TP rx and tx channels (0 = auto).
- tp_nrxch = 0
- tp_ntxch = 0
-
# TP rx and tx payload memory (% of the total EDRAM + DDR3).
tp_pmrx = 38
tp_pmtx = 60
@@ -141,7 +137,7 @@
[fini]
version = 0x1
- checksum = 0x6cc2514b
+ checksum = 0xfdebb6ef
#
-# $FreeBSD: release/9.2.0/sys/dev/cxgbe/firmware/t4fw_cfg.txt 252814 2013-07-05 18:27:38Z np $
+# $FreeBSD: stable/9/sys/dev/cxgbe/firmware/t4fw_cfg.txt 247434 2013-02-28 00:44:54Z np $
#
Modified: trunk/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt
===================================================================
--- trunk/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt 2016-10-02 00:13:34 UTC (rev 9115)
@@ -109,7 +109,7 @@
reg[0x10a8] = 0x2000/0x2000 # SGE_DOORBELL_CONTROL
sge_timer_value = 5, 10, 20, 50, 100, 200 # SGE_TIMER_VALUE* in usecs
- reg[0x7dc0] = 0x62f8849 # TP_SHIFT_CNT
+ reg[0x7dc0] = 0x64f8849 # TP_SHIFT_CNT
# Selection of tuples for LE filter lookup, fields (and widths which
# must sum to <= 36): { IP Fragment (1), MPS Match Type (3),
@@ -124,9 +124,6 @@
# TP RX payload page size
tp_pmrx_pagesize = 64K
- # TP number of RX channels
- tp_nrxch = 0 # 0 (auto) = 1
-
# Percentage of dynamic memory (in either the EDRAM or external MEM)
# to use for TP TX payload
tp_pmtx = 50
@@ -134,9 +131,6 @@
# TP TX payload page size
tp_pmtx_pagesize = 64K
- # TP number of TX channels
- tp_ntxch = 0 # 0 (auto) = equal number of ports
-
# Some "definitions" to make the rest of this a bit more readable. We support
# 4 ports, 3 functions (NIC, FCoE and iSCSI), scaling up to 8 "CPU Queue Sets"
# per function per port ...
@@ -520,8 +514,8 @@
dwm = 30
[fini]
- version = 0x1425000d
- checksum = 0x25c2f782
+ version = 0x1425000b
+ checksum = 0x7690f7a5
# Total resources used by above allocations:
# Virtual Interfaces: 104
@@ -531,5 +525,5 @@
# MSI-X Vectors: 736
# Virtual Functions: 64
#
-# $FreeBSD: release/9.2.0/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt 252814 2013-07-05 18:27:38Z np $
+# $FreeBSD: stable/9/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt 237925 2012-07-01 13:43:30Z np $
#
Modified: trunk/sys/dev/cxgbe/firmware/t4fw_interface.h
===================================================================
--- trunk/sys/dev/cxgbe/firmware/t4fw_interface.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/firmware/t4fw_interface.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/firmware/t4fw_interface.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/firmware/t4fw_interface.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -80,7 +80,6 @@
********************************/
enum fw_wr_opcodes {
- FW_FRAG_WR = 0x1d,
FW_FILTER_WR = 0x02,
FW_ULPTX_WR = 0x04,
FW_TP_WR = 0x05,
@@ -204,24 +203,6 @@
#define V_FW_WR_LEN16(x) ((x) << S_FW_WR_LEN16)
#define G_FW_WR_LEN16(x) (((x) >> S_FW_WR_LEN16) & M_FW_WR_LEN16)
-struct fw_frag_wr {
- __be32 op_to_fragoff16;
- __be32 flowid_len16;
- __be64 r4;
-};
-
-#define S_FW_FRAG_WR_EOF 15
-#define M_FW_FRAG_WR_EOF 0x1
-#define V_FW_FRAG_WR_EOF(x) ((x) << S_FW_FRAG_WR_EOF)
-#define G_FW_FRAG_WR_EOF(x) (((x) >> S_FW_FRAG_WR_EOF) & M_FW_FRAG_WR_EOF)
-#define F_FW_FRAG_WR_EOF V_FW_FRAG_WR_EOF(1U)
-
-#define S_FW_FRAG_WR_FRAGOFF16 8
-#define M_FW_FRAG_WR_FRAGOFF16 0x7f
-#define V_FW_FRAG_WR_FRAGOFF16(x) ((x) << S_FW_FRAG_WR_FRAGOFF16)
-#define G_FW_FRAG_WR_FRAGOFF16(x) \
- (((x) >> S_FW_FRAG_WR_FRAGOFF16) & M_FW_FRAG_WR_FRAGOFF16)
-
/* valid filter configurations for compressed tuple
* Encodings: TPL - Compressed TUPLE for filter in addition to 4-tuple
* FR - FRAGMENT, FC - FCoE, MT - MPS MATCH TYPE, M - MPS MATCH,
@@ -3015,9 +2996,6 @@
FW_LDST_ADDRSPC_FUNC_I2C = 0x002A, /* legacy */
FW_LDST_ADDRSPC_LE = 0x0030,
FW_LDST_ADDRSPC_I2C = 0x0038,
- FW_LDST_ADDRSPC_PCIE_CFGS = 0x0040,
- FW_LDST_ADDRSPC_PCIE_DBG = 0x0041,
- FW_LDST_ADDRSPC_PCIE_PHY = 0x0042,
};
/*
@@ -3430,7 +3408,6 @@
FW_MEMTYPE_CF_EXTMEM = 0x2,
FW_MEMTYPE_CF_FLASH = 0x4,
FW_MEMTYPE_CF_INTERNAL = 0x5,
- FW_MEMTYPE_CF_EXTMEM1 = 0x6,
};
struct fw_caps_config_cmd {
@@ -3505,21 +3482,13 @@
FW_PARAMS_PARAM_DEV_INTFVER_ISCSIPDU = 0x08,
FW_PARAMS_PARAM_DEV_INTFVER_ISCSI = 0x09,
FW_PARAMS_PARAM_DEV_INTFVER_FCOE = 0x0A,
- FW_PARAMS_PARAM_DEV_FWREV = 0x0B,
- FW_PARAMS_PARAM_DEV_TPREV = 0x0C,
- FW_PARAMS_PARAM_DEV_CF = 0x0D,
- FW_PARAMS_PARAM_DEV_BYPASS = 0x0E,
- FW_PARAMS_PARAM_DEV_PHYFW = 0x0F,
- FW_PARAMS_PARAM_DEV_LOAD = 0x10,
- FW_PARAMS_PARAM_DEV_DIAG = 0x11,
- FW_PARAMS_PARAM_DEV_UCLK = 0x12, /* uP clock in khz */
- FW_PARAMS_PARAM_DEV_MAXORDIRD_QP = 0x13, /* max supported QP IRD/ORD
- */
- FW_PARAMS_PARAM_DEV_MAXIRD_ADAPTER= 0x14,/* max supported ADAPTER IRD
- */
- FW_PARAMS_PARAM_DEV_INTFVER_FCOEPDU = 0x15,
- FW_PARAMS_PARAM_DEV_MCINIT = 0x16,
- FW_PARAMS_PARAM_DEV_ULPTX_MEMWRITE_DSGL = 0x17,
+ FW_PARAMS_PARAM_DEV_FWREV = 0x0B,
+ FW_PARAMS_PARAM_DEV_TPREV = 0x0C,
+ FW_PARAMS_PARAM_DEV_CF = 0x0D,
+ FW_PARAMS_PARAM_DEV_BYPASS = 0x0E,
+ FW_PARAMS_PARAM_DEV_PHYFW = 0x0F,
+ FW_PARAMS_PARAM_DEV_LOAD = 0x10,
+ FW_PARAMS_PARAM_DEV_DIAG = 0x11,
};
/*
@@ -3578,8 +3547,7 @@
FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_MNGT = 0x10,
FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_CTRL = 0x11,
FW_PARAMS_PARAM_DMAQ_EQ_SCHEDCLASS_ETH = 0x12,
- FW_PARAMS_PARAM_DMAQ_EQ_DCBPRIO_ETH = 0x13,
- FW_PARAMS_PARAM_DMAQ_CONM_CTXT = 0x20,
+ FW_PARAMS_PARAM_DMAQ_EQ_DCBPRIO_ETH = 0x13
};
/*
@@ -3606,7 +3574,6 @@
enum fw_params_param_dev_diag {
FW_PARAM_DEV_DIAG_TMP = 0x00,
- FW_PARAM_DEV_DIAG_VDD = 0x01,
};
#define S_FW_PARAMS_MNEM 24
@@ -5893,9 +5860,6 @@
FW_PORT_TYPE_SFP = 9, /* No, 1, Yes, No, No, No, 10G */
FW_PORT_TYPE_BP_AP = 10, /* No, 1, No, No, Yes, Yes, 10G, BP ANGE */
FW_PORT_TYPE_BP4_AP = 11, /* No, 4, No, No, Yes, Yes, 10G, BP ANGE */
- FW_PORT_TYPE_QSFP_10G = 12, /* No, 1, Yes, No, No, No, 10G */
- FW_PORT_TYPE_QSFP = 14, /* No, 4, Yes, No, No, No, 40G */
- FW_PORT_TYPE_BP40_BA = 15, /* No, 4, No, No, Yes, Yes, 40G/10G/1G, BP ANGE */
FW_PORT_TYPE_NONE = M_FW_PORT_CMD_PTYPE
};
@@ -6771,8 +6735,6 @@
__u8 type;
__u8 minmaxen;
__u8 r3[5];
- __u8 nclasses[4];
- __be32 r4;
} config;
struct fw_sched_params {
__u8 sc;
@@ -6821,7 +6783,6 @@
*/
enum fw_devlog_facility {
FW_DEVLOG_FACILITY_CORE = 0x00,
- FW_DEVLOG_FACILITY_CF = 0x01,
FW_DEVLOG_FACILITY_SCHED = 0x02,
FW_DEVLOG_FACILITY_TIMER = 0x04,
FW_DEVLOG_FACILITY_RES = 0x06,
@@ -7587,7 +7548,7 @@
__u8 intfver_fcoe;
__u32 reserved2;
__u32 reserved3;
- __u32 magic; /* runtime or bootstrap fw */
+ __u32 reserved4;
__be32 flags;
__be32 reserved6[23];
};
@@ -7626,42 +7587,16 @@
(((x) >> S_FW_HDR_FW_VER_BUILD) & M_FW_HDR_FW_VER_BUILD)
enum {
- T4FW_VERSION_MAJOR = 0x01,
- T4FW_VERSION_MINOR = 0x08,
- T4FW_VERSION_MICRO = 0x0b,
- T4FW_VERSION_BUILD = 0x00,
-
- T5FW_VERSION_MAJOR = 0x01,
- T5FW_VERSION_MINOR = 0x08,
- T5FW_VERSION_MICRO = 0x16,
- T5FW_VERSION_BUILD = 0x00,
+ FW_HDR_INTFVER_NIC = 0x00,
+ FW_HDR_INTFVER_VNIC = 0x00,
+ FW_HDR_INTFVER_OFLD = 0x00,
+ FW_HDR_INTFVER_RI = 0x00,
+ FW_HDR_INTFVER_ISCSIPDU = 0x00,
+ FW_HDR_INTFVER_ISCSI = 0x00,
+ FW_HDR_INTFVER_FCOEPDU = 0x00,
+ FW_HDR_INTFVER_FCOE = 0x00,
};
-enum {
- T4FW_HDR_INTFVER_NIC = 0x00,
- T4FW_HDR_INTFVER_VNIC = 0x00,
- T4FW_HDR_INTFVER_OFLD = 0x00,
- T4FW_HDR_INTFVER_RI = 0x00,
- T4FW_HDR_INTFVER_ISCSIPDU = 0x00,
- T4FW_HDR_INTFVER_ISCSI = 0x00,
- T4FW_HDR_INTFVER_FCOEPDU = 0x00,
- T4FW_HDR_INTFVER_FCOE = 0x00,
-
- T5FW_HDR_INTFVER_NIC = 0x00,
- T5FW_HDR_INTFVER_VNIC = 0x00,
- T5FW_HDR_INTFVER_OFLD = 0x00,
- T5FW_HDR_INTFVER_RI = 0x00,
- T5FW_HDR_INTFVER_ISCSIPDU= 0x00,
- T5FW_HDR_INTFVER_ISCSI = 0x00,
- T5FW_HDR_INTFVER_FCOEPDU= 0x00,
- T5FW_HDR_INTFVER_FCOE = 0x00,
-};
-
-enum {
- FW_HDR_MAGIC_RUNTIME = 0x00000000,
- FW_HDR_MAGIC_BOOTSTRAP = 0x626f6f74,
-};
-
enum fw_hdr_flags {
FW_HDR_FLAGS_RESET_HALT = 0x00000001,
};
Modified: trunk/sys/dev/cxgbe/offload.h
===================================================================
--- trunk/sys/dev/cxgbe/offload.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/offload.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/offload.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/offload.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -59,8 +59,8 @@
struct stid_region {
TAILQ_ENTRY(stid_region) link;
- u_int used; /* # of stids used by this region */
- u_int free; /* # of contiguous stids free right after this region */
+ int used; /* # of stids used by this region */
+ int free; /* # of contiguous stids free right after this region */
};
/*
@@ -140,7 +140,6 @@
int ddp;
int indsz;
int ddp_thres;
- int rx_coalesce;
};
int t4_register_uld(struct uld_info *);
Modified: trunk/sys/dev/cxgbe/osdep.h
===================================================================
--- trunk/sys/dev/cxgbe/osdep.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/osdep.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/osdep.h 252495 2013-07-02 04:27:16Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/osdep.h 242015 2012-10-24 19:04:17Z gavin $
*
*/
@@ -64,11 +64,8 @@
#if BYTE_ORDER == BIG_ENDIAN
#define __BIG_ENDIAN_BITFIELD
-#define htobe32_const(x) (x)
#elif BYTE_ORDER == LITTLE_ENDIAN
#define __LITTLE_ENDIAN_BITFIELD
-#define htobe32_const(x) (((x) >> 24) | (((x) >> 8) & 0xff00) | \
- ((((x) & 0xffffff) << 8) & 0xff0000) | ((((x) & 0xff) << 24) & 0xff000000))
#else
#error "Must set BYTE_ORDER"
#endif
@@ -109,7 +106,6 @@
#define SPEED_100 100
#define SPEED_1000 1000
#define SPEED_10000 10000
-#define SPEED_40000 40000
#define DUPLEX_HALF 0
#define DUPLEX_FULL 1
#define AUTONEG_DISABLE 0
@@ -129,7 +125,7 @@
#define PCI_EXP_LNKSTA PCIER_LINK_STA
#define PCI_EXP_LNKSTA_CLS PCIEM_LINK_STA_SPEED
#define PCI_EXP_LNKSTA_NLW PCIEM_LINK_STA_WIDTH
-#define PCI_EXP_DEVCTL2 PCIER_DEVICE_CTL2
+#define PCI_EXP_DEVCTL2 0x28
static inline int
ilog2(long x)
Modified: trunk/sys/dev/cxgbe/t4_ioctl.h
===================================================================
--- trunk/sys/dev/cxgbe/t4_ioctl.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/t4_ioctl.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/t4_ioctl.h 252495 2013-07-02 04:27:16Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/t4_ioctl.h 241573 2012-10-15 06:41:54Z np $
*
*/
@@ -60,7 +60,6 @@
};
#define T4_REGDUMP_SIZE (160 * 1024)
-#define T5_REGDUMP_SIZE (332 * 1024)
struct t4_regdump {
uint32_t version;
uint32_t len; /* bytes */
Modified: trunk/sys/dev/cxgbe/t4_l2t.c
===================================================================
--- trunk/sys/dev/cxgbe/t4_l2t.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/t4_l2t.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/t4_l2t.c 247434 2013-02-28 00:44:54Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/t4_l2t.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
#include "opt_inet6.h"
Modified: trunk/sys/dev/cxgbe/t4_l2t.h
===================================================================
--- trunk/sys/dev/cxgbe/t4_l2t.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/t4_l2t.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/t4_l2t.h 247434 2013-02-28 00:44:54Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/t4_l2t.h 247434 2013-02-28 00:44:54Z np $
*
*/
Modified: trunk/sys/dev/cxgbe/t4_main.c
===================================================================
--- trunk/sys/dev/cxgbe/t4_main.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/t4_main.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/t4_main.c 253776 2013-07-29 19:17:11Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/t4_main.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -55,10 +55,6 @@
#include <net/if_types.h>
#include <net/if_dl.h>
#include <net/if_vlan_var.h>
-#if defined(__i386__) || defined(__amd64__)
-#include <vm/vm.h>
-#include <vm/pmap.h>
-#endif
#include "common/common.h"
#include "common/t4_msg.h"
@@ -114,38 +110,6 @@
.d_name = "t4nex",
};
-/* T5 bus driver interface */
-static int t5_probe(device_t);
-static device_method_t t5_methods[] = {
- DEVMETHOD(device_probe, t5_probe),
- DEVMETHOD(device_attach, t4_attach),
- DEVMETHOD(device_detach, t4_detach),
-
- DEVMETHOD_END
-};
-static driver_t t5_driver = {
- "t5nex",
- t5_methods,
- sizeof(struct adapter)
-};
-
-
-/* T5 port (cxl) interface */
-static driver_t cxl_driver = {
- "cxl",
- cxgbe_methods,
- sizeof(struct port_info)
-};
-
-static struct cdevsw t5_cdevsw = {
- .d_version = D_VERSION,
- .d_flags = 0,
- .d_open = t4_open,
- .d_close = t4_close,
- .d_ioctl = t4_ioctl,
- .d_name = "t5nex",
-};
-
/* ifnet + media interface */
static void cxgbe_init(void *);
static int cxgbe_ioctl(struct ifnet *, unsigned long, caddr_t);
@@ -154,7 +118,7 @@
static int cxgbe_media_change(struct ifnet *);
static void cxgbe_media_status(struct ifnet *, struct ifmediareq *);
-MALLOC_DEFINE(M_CXGBE, "cxgbe", "Chelsio T4/T5 Ethernet driver and services");
+MALLOC_DEFINE(M_CXGBE, "cxgbe", "Chelsio T4 Ethernet driver and services");
/*
* Correct lock order when you need to acquire multiple locks is t4_list_lock,
@@ -169,13 +133,6 @@
/*
* Tunables. See tweak_tunables() too.
- *
- * Each tunable is set to a default value here if it's known at compile-time.
- * Otherwise it is set to -1 as an indication to tweak_tunables() that it should
- * provide a reasonable default when the driver is loaded.
- *
- * Tunables applicable to both T4 and T5 are under hw.cxgbe. Those specific to
- * T5 are under hw.cxl.
*/
/*
@@ -252,11 +209,7 @@
/*
* Configuration file.
*/
-#define DEFAULT_CF "default"
-#define FLASH_CF "flash"
-#define UWIRE_CF "uwire"
-#define FPGA_CF "fpga"
-static char t4_cfg_file[32] = DEFAULT_CF;
+static char t4_cfg_file[32] = "default";
TUNABLE_STR("hw.cxgbe.config_file", t4_cfg_file, sizeof(t4_cfg_file));
/*
@@ -288,9 +241,6 @@
static int t4_fcoecaps_allowed = 0;
TUNABLE_INT("hw.cxgbe.fcoecaps_allowed", &t4_fcoecaps_allowed);
-static int t5_write_combine = 0;
-TUNABLE_INT("hw.cxl.write_combine", &t5_write_combine);
-
struct intrs_and_queues {
int intr_type; /* INTx, MSI, or MSI-X */
int nirq; /* Number of vectors */
@@ -328,19 +278,14 @@
XGMAC_ALL = 0xffff
};
-static int map_bars_0_and_4(struct adapter *);
-static int map_bar_2(struct adapter *);
+static int map_bars(struct adapter *);
static void setup_memwin(struct adapter *);
-static int validate_mem_range(struct adapter *, uint32_t, int);
-static int validate_mt_off_len(struct adapter *, int, uint32_t, int,
- uint32_t *);
-static void memwin_info(struct adapter *, int, uint32_t *, uint32_t *);
-static uint32_t position_memwin(struct adapter *, int, uint32_t);
static int cfg_itype_and_nqueues(struct adapter *, int, int,
struct intrs_and_queues *);
static int prep_firmware(struct adapter *);
-static int partition_resources(struct adapter *, const struct firmware *,
- const char *);
+static int upload_config_file(struct adapter *, const struct firmware *,
+ uint32_t *, uint32_t *);
+static int partition_resources(struct adapter *, const struct firmware *);
static int get_params__pre_init(struct adapter *);
static int get_params__post_init(struct adapter *);
static int set_params__post_init(struct adapter *);
@@ -373,7 +318,6 @@
static int cxgbe_sysctls(struct port_info *);
static int sysctl_int_array(SYSCTL_HANDLER_ARGS);
static int sysctl_bitfield(SYSCTL_HANDLER_ARGS);
-static int sysctl_btphy(SYSCTL_HANDLER_ARGS);
static int sysctl_holdoff_tmr_idx(SYSCTL_HANDLER_ARGS);
static int sysctl_holdoff_pktc_idx(SYSCTL_HANDLER_ARGS);
static int sysctl_qsize_rxq(SYSCTL_HANDLER_ARGS);
@@ -383,8 +327,6 @@
static int sysctl_cctrl(SYSCTL_HANDLER_ARGS);
static int sysctl_cim_ibq_obq(SYSCTL_HANDLER_ARGS);
static int sysctl_cim_la(SYSCTL_HANDLER_ARGS);
-static int sysctl_cim_ma_la(SYSCTL_HANDLER_ARGS);
-static int sysctl_cim_pif_la(SYSCTL_HANDLER_ARGS);
static int sysctl_cim_qcfg(SYSCTL_HANDLER_ARGS);
static int sysctl_cpl_stats(SYSCTL_HANDLER_ARGS);
static int sysctl_ddp_stats(SYSCTL_HANDLER_ARGS);
@@ -393,7 +335,6 @@
static int sysctl_hw_sched(SYSCTL_HANDLER_ARGS);
static int sysctl_lb_stats(SYSCTL_HANDLER_ARGS);
static int sysctl_meminfo(SYSCTL_HANDLER_ARGS);
-static int sysctl_mps_tcam(SYSCTL_HANDLER_ARGS);
static int sysctl_path_mtus(SYSCTL_HANDLER_ARGS);
static int sysctl_pm_stats(SYSCTL_HANDLER_ARGS);
static int sysctl_rdma_stats(SYSCTL_HANDLER_ARGS);
@@ -400,10 +341,7 @@
static int sysctl_tcp_stats(SYSCTL_HANDLER_ARGS);
static int sysctl_tids(SYSCTL_HANDLER_ARGS);
static int sysctl_tp_err_stats(SYSCTL_HANDLER_ARGS);
-static int sysctl_tp_la(SYSCTL_HANDLER_ARGS);
static int sysctl_tx_rate(SYSCTL_HANDLER_ARGS);
-static int sysctl_ulprx_la(SYSCTL_HANDLER_ARGS);
-static int sysctl_wcwr_stats(SYSCTL_HANDLER_ARGS);
#endif
static inline void txq_start(struct ifnet *, struct sge_txq *);
static uint32_t fconf_to_mode(uint32_t);
@@ -420,14 +358,14 @@
static int del_filter_wr(struct adapter *, int);
static int get_sge_context(struct adapter *, struct t4_sge_context *);
static int load_fw(struct adapter *, struct t4_data *);
-static int read_card_mem(struct adapter *, int, struct t4_mem_range *);
+static int read_card_mem(struct adapter *, struct t4_mem_range *);
static int read_i2c(struct adapter *, struct t4_i2c_data *);
#ifdef TCP_OFFLOAD
static int toe_capability(struct port_info *, int);
#endif
-static int mod_event(module_t, int, void *);
+static int t4_mod_event(module_t, int, void *);
-struct {
+struct t4_pciids {
uint16_t device;
char *desc;
} t4_pciids[] = {
@@ -444,31 +382,6 @@
{0x4409, "Chelsio T420-BT"},
{0x440a, "Chelsio T404-BT"},
{0x440e, "Chelsio T440-LP-CR"},
-}, t5_pciids[] = {
- {0xb000, "Chelsio Terminator 5 FPGA"},
- {0x5400, "Chelsio T580-dbg"},
- {0x5401, "Chelsio T520-CR"}, /* 2 x 10G */
- {0x5402, "Chelsio T522-CR"}, /* 2 x 10G, 2 X 1G */
- {0x5403, "Chelsio T540-CR"}, /* 4 x 10G */
- {0x5407, "Chelsio T520-SO"}, /* 2 x 10G, nomem */
- {0x5409, "Chelsio T520-BT"}, /* 2 x 10GBaseT */
- {0x540a, "Chelsio T504-BT"}, /* 4 x 1G */
- {0x540d, "Chelsio T580-CR"}, /* 2 x 40G */
- {0x540e, "Chelsio T540-LP-CR"}, /* 4 x 10G */
- {0x5410, "Chelsio T580-LP-CR"}, /* 2 x 40G */
- {0x5411, "Chelsio T520-LL-CR"}, /* 2 x 10G */
- {0x5412, "Chelsio T560-CR"}, /* 1 x 40G, 2 x 10G */
- {0x5414, "Chelsio T580-LP-SO-CR"}, /* 2 x 40G, nomem */
-#ifdef notyet
- {0x5404, "Chelsio T520-BCH"},
- {0x5405, "Chelsio T540-BCH"},
- {0x5406, "Chelsio T540-CH"},
- {0x5408, "Chelsio T520-CX"},
- {0x540b, "Chelsio B520-SR"},
- {0x540c, "Chelsio B504-BT"},
- {0x540f, "Chelsio Amsterdam"},
- {0x5413, "Chelsio T580-CHR"},
-#endif
};
#ifdef TCP_OFFLOAD
@@ -510,31 +423,6 @@
}
static int
-t5_probe(device_t dev)
-{
- int i;
- uint16_t v = pci_get_vendor(dev);
- uint16_t d = pci_get_device(dev);
- uint8_t f = pci_get_function(dev);
-
- if (v != PCI_VENDOR_ID_CHELSIO)
- return (ENXIO);
-
- /* Attach only to PF0 of the FPGA */
- if (d == 0xb000 && f != 0)
- return (ENXIO);
-
- for (i = 0; i < nitems(t5_pciids); i++) {
- if (d == t5_pciids[i].device) {
- device_set_desc(dev, t5_pciids[i].desc);
- return (BUS_PROBE_DEFAULT);
- }
- }
-
- return (ENXIO);
-}
-
-static int
t4_attach(device_t dev)
{
struct adapter *sc;
@@ -569,7 +457,7 @@
TAILQ_INIT(&sc->sfl);
callout_init(&sc->sfl_callout, CALLOUT_MPSAFE);
- rc = map_bars_0_and_4(sc);
+ rc = map_bars(sc);
if (rc != 0)
goto done; /* error message displayed already */
@@ -589,7 +477,6 @@
for (i = 0; i < nitems(sc->fw_msg_handler); i++)
sc->fw_msg_handler[i] = fw_msg_not_handled;
t4_register_cpl_handler(sc, CPL_SET_TCB_RPL, t4_filter_rpl);
- t4_init_sge_cpl_handlers(sc);
/* Prepare the adapter for operation */
rc = -t4_prep_adapter(sc);
@@ -604,13 +491,9 @@
* will work even in "recovery mode".
*/
setup_memwin(sc);
- sc->cdev = make_dev(is_t4(sc) ? &t4_cdevsw : &t5_cdevsw,
- device_get_unit(dev), UID_ROOT, GID_WHEEL, 0600, "%s",
- device_get_nameunit(dev));
- if (sc->cdev == NULL)
- device_printf(dev, "failed to create nexus char device.\n");
- else
- sc->cdev->si_drv1 = sc;
+ sc->cdev = make_dev(&t4_cdevsw, device_get_unit(dev), UID_ROOT,
+ GID_WHEEL, 0600, "%s", device_get_nameunit(dev));
+ sc->cdev->si_drv1 = sc;
/* Go no further if recovery mode has been requested. */
if (TUNABLE_INT_FETCH("hw.cxgbe.sos", &i) && i != 0) {
@@ -623,18 +506,61 @@
if (rc != 0)
goto done; /* error message displayed already */
- rc = get_params__post_init(sc);
+ rc = get_params__pre_init(sc);
if (rc != 0)
goto done; /* error message displayed already */
- rc = set_params__post_init(sc);
+ rc = t4_sge_init(sc);
if (rc != 0)
goto done; /* error message displayed already */
- rc = map_bar_2(sc);
+ if (sc->flags & MASTER_PF) {
+ /* get basic stuff going */
+ rc = -t4_fw_initialize(sc, sc->mbox);
+ if (rc != 0) {
+ device_printf(dev, "early init failed: %d.\n", rc);
+ goto done;
+ }
+ }
+
+ rc = get_params__post_init(sc);
if (rc != 0)
goto done; /* error message displayed already */
+ rc = set_params__post_init(sc);
+ if (rc != 0)
+ goto done; /* error message displayed already */
+
+ if (sc->flags & MASTER_PF) {
+ uint16_t indsz = min(RX_COPY_THRESHOLD - 1, M_INDICATESIZE);
+
+ /* final tweaks to some settings */
+
+ t4_load_mtus(sc, sc->params.mtus, sc->params.a_wnd,
+ sc->params.b_wnd);
+ /* 4K, 16K, 64K, 256K DDP "page sizes" */
+ t4_write_reg(sc, A_ULP_RX_TDDP_PSZ, V_HPZ0(0) | V_HPZ1(2) |
+ V_HPZ2(4) | V_HPZ3(6));
+ t4_set_reg_field(sc, A_ULP_RX_CTL, F_TDDPTAGTCB, F_TDDPTAGTCB);
+ t4_set_reg_field(sc, A_TP_PARA_REG5,
+ V_INDICATESIZE(M_INDICATESIZE) |
+ F_REARMDDPOFFSET | F_RESETDDPOFFSET,
+ V_INDICATESIZE(indsz) |
+ F_REARMDDPOFFSET | F_RESETDDPOFFSET);
+ } else {
+ /*
+ * XXX: Verify that we can live with whatever the master driver
+ * has done so far, and hope that it doesn't change any global
+ * setting from underneath us in the future.
+ */
+ }
+
+ t4_read_indirect(sc, A_TP_PIO_ADDR, A_TP_PIO_DATA, &sc->filter_mode, 1,
+ A_TP_VLAN_PRI_MAP);
+
+ for (i = 0; i < NCHAN; i++)
+ sc->params.tp.tx_modq[i] = i;
+
rc = t4_create_dma_tag(sc);
if (rc != 0)
goto done; /* error message displayed already */
@@ -670,7 +596,7 @@
device_get_nameunit(dev), i);
mtx_init(&pi->pi_lock, pi->lockname, 0, MTX_DEF);
- if (is_10G_port(pi) || is_40G_port(pi)) {
+ if (is_10G_port(pi)) {
n10g++;
pi->tmr_idx = t4_tmr_idx_10g;
pi->pktc_idx = t4_pktc_idx_10g;
@@ -681,12 +607,11 @@
}
pi->xact_addr_filt = -1;
- pi->linkdnrc = -1;
pi->qsize_rxq = t4_qsize_rxq;
pi->qsize_txq = t4_qsize_txq;
- pi->dev = device_add_child(dev, is_t4(sc) ? "cxgbe" : "cxl", -1);
+ pi->dev = device_add_child(dev, "cxgbe", -1);
if (pi->dev == NULL) {
device_printf(dev,
"failed to add device for port %d.\n", i);
@@ -761,7 +686,7 @@
pi->first_rxq = rqidx;
pi->first_txq = tqidx;
- if (is_10G_port(pi) || is_40G_port(pi)) {
+ if (is_10G_port(pi)) {
pi->nrxq = iaq.nrxq10g;
pi->ntxq = iaq.ntxq10g;
} else {
@@ -776,7 +701,7 @@
if (is_offload(sc)) {
pi->first_ofld_rxq = ofld_rqidx;
pi->first_ofld_txq = ofld_tqidx;
- if (is_10G_port(pi) || is_40G_port(pi)) {
+ if (is_10G_port(pi)) {
pi->nofldrxq = iaq.nofldrxq10g;
pi->nofldtxq = iaq.nofldtxq10g;
} else {
@@ -883,10 +808,6 @@
bus_release_resource(dev, SYS_RES_MEMORY, sc->regs_rid,
sc->regs_res);
- if (sc->udbs_res)
- bus_release_resource(dev, SYS_RES_MEMORY, sc->udbs_rid,
- sc->udbs_res);
-
if (sc->msix_res)
bus_release_resource(dev, SYS_RES_MEMORY, sc->msix_rid,
sc->msix_res);
@@ -1075,10 +996,9 @@
if (rc)
return (rc);
ifp->if_mtu = mtu;
- if (pi->flags & PORT_INIT_DONE) {
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
t4_update_fl_bufsize(ifp);
- if (ifp->if_drv_flags & IFF_DRV_RUNNING)
- rc = update_mac_settings(pi, XGMAC_MTU);
+ rc = update_mac_settings(pi, XGMAC_MTU);
}
end_synchronized_op(sc, 0);
break;
@@ -1376,7 +1296,7 @@
}
static int
-map_bars_0_and_4(struct adapter *sc)
+map_bars(struct adapter *sc)
{
sc->regs_rid = PCIR_BAR(0);
sc->regs_res = bus_alloc_resource_any(sc->dev, SYS_RES_MEMORY,
@@ -1388,7 +1308,6 @@
sc->bt = rman_get_bustag(sc->regs_res);
sc->bh = rman_get_bushandle(sc->regs_res);
sc->mmio_len = rman_get_size(sc->regs_res);
- setbit(&sc->doorbells, DOORBELL_KDB);
sc->msix_rid = PCIR_BAR(4);
sc->msix_res = bus_alloc_resource_any(sc->dev, SYS_RES_MEMORY,
@@ -1401,274 +1320,38 @@
return (0);
}
-static int
-map_bar_2(struct adapter *sc)
-{
-
- /*
- * T4: only iWARP driver uses the userspace doorbells. There is no need
- * to map it if RDMA is disabled.
- */
- if (is_t4(sc) && sc->rdmacaps == 0)
- return (0);
-
- sc->udbs_rid = PCIR_BAR(2);
- sc->udbs_res = bus_alloc_resource_any(sc->dev, SYS_RES_MEMORY,
- &sc->udbs_rid, RF_ACTIVE);
- if (sc->udbs_res == NULL) {
- device_printf(sc->dev, "cannot map doorbell BAR.\n");
- return (ENXIO);
- }
- sc->udbs_base = rman_get_virtual(sc->udbs_res);
-
- if (is_t5(sc)) {
- setbit(&sc->doorbells, DOORBELL_UDB);
-#if defined(__i386__) || defined(__amd64__)
- if (t5_write_combine) {
- int rc;
-
- /*
- * Enable write combining on BAR2. This is the
- * userspace doorbell BAR and is split into 128B
- * (UDBS_SEG_SIZE) doorbell regions, each associated
- * with an egress queue. The first 64B has the doorbell
- * and the second 64B can be used to submit a tx work
- * request with an implicit doorbell.
- */
-
- rc = pmap_change_attr((vm_offset_t)sc->udbs_base,
- rman_get_size(sc->udbs_res), PAT_WRITE_COMBINING);
- if (rc == 0) {
- clrbit(&sc->doorbells, DOORBELL_UDB);
- setbit(&sc->doorbells, DOORBELL_WCWR);
- setbit(&sc->doorbells, DOORBELL_UDBWC);
- } else {
- device_printf(sc->dev,
- "couldn't enable write combining: %d\n",
- rc);
- }
-
- t4_write_reg(sc, A_SGE_STAT_CFG,
- V_STATSOURCE_T5(7) | V_STATMODE(0));
- }
-#endif
- }
-
- return (0);
-}
-
-static const struct memwin t4_memwin[] = {
- { MEMWIN0_BASE, MEMWIN0_APERTURE },
- { MEMWIN1_BASE, MEMWIN1_APERTURE },
- { MEMWIN2_BASE_T4, MEMWIN2_APERTURE_T4 }
-};
-
-static const struct memwin t5_memwin[] = {
- { MEMWIN0_BASE, MEMWIN0_APERTURE },
- { MEMWIN1_BASE, MEMWIN1_APERTURE },
- { MEMWIN2_BASE_T5, MEMWIN2_APERTURE_T5 },
-};
-
static void
setup_memwin(struct adapter *sc)
{
- const struct memwin *mw;
- int i, n;
uint32_t bar0;
- if (is_t4(sc)) {
- /*
- * Read low 32b of bar0 indirectly via the hardware backdoor
- * mechanism. Works from within PCI passthrough environments
- * too, where rman_get_start() can return a different value. We
- * need to program the T4 memory window decoders with the actual
- * addresses that will be coming across the PCIe link.
- */
- bar0 = t4_hw_pci_read_cfg4(sc, PCIR_BAR(0));
- bar0 &= (uint32_t) PCIM_BAR_MEM_BASE;
+ /*
+ * Read low 32b of bar0 indirectly via the hardware backdoor mechanism.
+ * Works from within PCI passthrough environments too, where
+ * rman_get_start() can return a different value. We need to program
+ * the memory window decoders with the actual addresses that will be
+ * coming across the PCIe link.
+ */
+ bar0 = t4_hw_pci_read_cfg4(sc, PCIR_BAR(0));
+ bar0 &= (uint32_t) PCIM_BAR_MEM_BASE;
- mw = &t4_memwin[0];
- n = nitems(t4_memwin);
- } else {
- /* T5 uses the relative offset inside the PCIe BAR */
- bar0 = 0;
+ t4_write_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_BASE_WIN, 0),
+ (bar0 + MEMWIN0_BASE) | V_BIR(0) |
+ V_WINDOW(ilog2(MEMWIN0_APERTURE) - 10));
- mw = &t5_memwin[0];
- n = nitems(t5_memwin);
- }
+ t4_write_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_BASE_WIN, 1),
+ (bar0 + MEMWIN1_BASE) | V_BIR(0) |
+ V_WINDOW(ilog2(MEMWIN1_APERTURE) - 10));
- for (i = 0; i < n; i++, mw++) {
- t4_write_reg(sc,
- PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_BASE_WIN, i),
- (mw->base + bar0) | V_BIR(0) |
- V_WINDOW(ilog2(mw->aperture) - 10));
- }
+ t4_write_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_BASE_WIN, 2),
+ (bar0 + MEMWIN2_BASE) | V_BIR(0) |
+ V_WINDOW(ilog2(MEMWIN2_APERTURE) - 10));
/* flush */
t4_read_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_BASE_WIN, 2));
}
-/*
- * Verify that the memory range specified by the addr/len pair is valid and lies
- * entirely within a single region (EDCx or MCx).
- */
static int
-validate_mem_range(struct adapter *sc, uint32_t addr, int len)
-{
- uint32_t em, addr_len, maddr, mlen;
-
- /* Memory can only be accessed in naturally aligned 4 byte units */
- if (addr & 3 || len & 3 || len == 0)
- return (EINVAL);
-
- /* Enabled memories */
- em = t4_read_reg(sc, A_MA_TARGET_MEM_ENABLE);
- if (em & F_EDRAM0_ENABLE) {
- addr_len = t4_read_reg(sc, A_MA_EDRAM0_BAR);
- maddr = G_EDRAM0_BASE(addr_len) << 20;
- mlen = G_EDRAM0_SIZE(addr_len) << 20;
- if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
- addr + len <= maddr + mlen)
- return (0);
- }
- if (em & F_EDRAM1_ENABLE) {
- addr_len = t4_read_reg(sc, A_MA_EDRAM1_BAR);
- maddr = G_EDRAM1_BASE(addr_len) << 20;
- mlen = G_EDRAM1_SIZE(addr_len) << 20;
- if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
- addr + len <= maddr + mlen)
- return (0);
- }
- if (em & F_EXT_MEM_ENABLE) {
- addr_len = t4_read_reg(sc, A_MA_EXT_MEMORY_BAR);
- maddr = G_EXT_MEM_BASE(addr_len) << 20;
- mlen = G_EXT_MEM_SIZE(addr_len) << 20;
- if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
- addr + len <= maddr + mlen)
- return (0);
- }
- if (!is_t4(sc) && em & F_EXT_MEM1_ENABLE) {
- addr_len = t4_read_reg(sc, A_MA_EXT_MEMORY1_BAR);
- maddr = G_EXT_MEM1_BASE(addr_len) << 20;
- mlen = G_EXT_MEM1_SIZE(addr_len) << 20;
- if (mlen > 0 && addr >= maddr && addr < maddr + mlen &&
- addr + len <= maddr + mlen)
- return (0);
- }
-
- return (EFAULT);
-}
-
-/*
- * Verify that the memory range specified by the memtype/offset/len pair is
- * valid and lies entirely within the memtype specified. The global address of
- * the start of the range is returned in addr.
- */
-static int
-validate_mt_off_len(struct adapter *sc, int mtype, uint32_t off, int len,
- uint32_t *addr)
-{
- uint32_t em, addr_len, maddr, mlen;
-
- /* Memory can only be accessed in naturally aligned 4 byte units */
- if (off & 3 || len & 3 || len == 0)
- return (EINVAL);
-
- em = t4_read_reg(sc, A_MA_TARGET_MEM_ENABLE);
- switch (mtype) {
- case MEM_EDC0:
- if (!(em & F_EDRAM0_ENABLE))
- return (EINVAL);
- addr_len = t4_read_reg(sc, A_MA_EDRAM0_BAR);
- maddr = G_EDRAM0_BASE(addr_len) << 20;
- mlen = G_EDRAM0_SIZE(addr_len) << 20;
- break;
- case MEM_EDC1:
- if (!(em & F_EDRAM1_ENABLE))
- return (EINVAL);
- addr_len = t4_read_reg(sc, A_MA_EDRAM1_BAR);
- maddr = G_EDRAM1_BASE(addr_len) << 20;
- mlen = G_EDRAM1_SIZE(addr_len) << 20;
- break;
- case MEM_MC:
- if (!(em & F_EXT_MEM_ENABLE))
- return (EINVAL);
- addr_len = t4_read_reg(sc, A_MA_EXT_MEMORY_BAR);
- maddr = G_EXT_MEM_BASE(addr_len) << 20;
- mlen = G_EXT_MEM_SIZE(addr_len) << 20;
- break;
- case MEM_MC1:
- if (is_t4(sc) || !(em & F_EXT_MEM1_ENABLE))
- return (EINVAL);
- addr_len = t4_read_reg(sc, A_MA_EXT_MEMORY1_BAR);
- maddr = G_EXT_MEM1_BASE(addr_len) << 20;
- mlen = G_EXT_MEM1_SIZE(addr_len) << 20;
- break;
- default:
- return (EINVAL);
- }
-
- if (mlen > 0 && off < mlen && off + len <= mlen) {
- *addr = maddr + off; /* global address */
- return (0);
- }
-
- return (EFAULT);
-}
-
-static void
-memwin_info(struct adapter *sc, int win, uint32_t *base, uint32_t *aperture)
-{
- const struct memwin *mw;
-
- if (is_t4(sc)) {
- KASSERT(win >= 0 && win < nitems(t4_memwin),
- ("%s: incorrect memwin# (%d)", __func__, win));
- mw = &t4_memwin[win];
- } else {
- KASSERT(win >= 0 && win < nitems(t5_memwin),
- ("%s: incorrect memwin# (%d)", __func__, win));
- mw = &t5_memwin[win];
- }
-
- if (base != NULL)
- *base = mw->base;
- if (aperture != NULL)
- *aperture = mw->aperture;
-}
-
-/*
- * Positions the memory window such that it can be used to access the specified
- * address in the chip's address space. The return value is the offset of addr
- * from the start of the window.
- */
-static uint32_t
-position_memwin(struct adapter *sc, int n, uint32_t addr)
-{
- uint32_t start, pf;
- uint32_t reg;
-
- KASSERT(n >= 0 && n <= 3,
- ("%s: invalid window %d.", __func__, n));
- KASSERT((addr & 3) == 0,
- ("%s: addr (0x%x) is not at a 4B boundary.", __func__, addr));
-
- if (is_t4(sc)) {
- pf = 0;
- start = addr & ~0xf; /* start must be 16B aligned */
- } else {
- pf = V_PFNUM(sc->pf);
- start = addr & ~0x7f; /* start must be 128B aligned */
- }
- reg = PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, n);
-
- t4_write_reg(sc, reg, start | pf);
- t4_read_reg(sc, reg);
-
- return (addr - start);
-}
-
-static int
cfg_itype_and_nqueues(struct adapter *sc, int n10g, int n1g,
struct intrs_and_queues *iaq)
{
@@ -1826,76 +1509,14 @@
return (ENXIO);
}
-#define FW_VERSION(chip) ( \
- V_FW_HDR_FW_VER_MAJOR(chip##FW_VERSION_MAJOR) | \
- V_FW_HDR_FW_VER_MINOR(chip##FW_VERSION_MINOR) | \
- V_FW_HDR_FW_VER_MICRO(chip##FW_VERSION_MICRO) | \
- V_FW_HDR_FW_VER_BUILD(chip##FW_VERSION_BUILD))
-#define FW_INTFVER(chip, intf) (chip##FW_HDR_INTFVER_##intf)
-
-struct fw_info {
- uint8_t chip;
- char *kld_name;
- char *fw_mod_name;
- struct fw_hdr fw_hdr; /* XXX: waste of space, need a sparse struct */
-} fw_info[] = {
- {
- .chip = CHELSIO_T4,
- .kld_name = "t4fw_cfg",
- .fw_mod_name = "t4fw",
- .fw_hdr = {
- .chip = FW_HDR_CHIP_T4,
- .fw_ver = htobe32_const(FW_VERSION(T4)),
- .intfver_nic = FW_INTFVER(T4, NIC),
- .intfver_vnic = FW_INTFVER(T4, VNIC),
- .intfver_ofld = FW_INTFVER(T4, OFLD),
- .intfver_ri = FW_INTFVER(T4, RI),
- .intfver_iscsipdu = FW_INTFVER(T4, ISCSIPDU),
- .intfver_iscsi = FW_INTFVER(T4, ISCSI),
- .intfver_fcoepdu = FW_INTFVER(T4, FCOEPDU),
- .intfver_fcoe = FW_INTFVER(T4, FCOE),
- },
- }, {
- .chip = CHELSIO_T5,
- .kld_name = "t5fw_cfg",
- .fw_mod_name = "t5fw",
- .fw_hdr = {
- .chip = FW_HDR_CHIP_T5,
- .fw_ver = htobe32_const(FW_VERSION(T5)),
- .intfver_nic = FW_INTFVER(T5, NIC),
- .intfver_vnic = FW_INTFVER(T5, VNIC),
- .intfver_ofld = FW_INTFVER(T5, OFLD),
- .intfver_ri = FW_INTFVER(T5, RI),
- .intfver_iscsipdu = FW_INTFVER(T5, ISCSIPDU),
- .intfver_iscsi = FW_INTFVER(T5, ISCSI),
- .intfver_fcoepdu = FW_INTFVER(T5, FCOEPDU),
- .intfver_fcoe = FW_INTFVER(T5, FCOE),
- },
- }
-};
-
-static struct fw_info *
-find_fw_info(int chip)
-{
- int i;
-
- for (i = 0; i < nitems(fw_info); i++) {
- if (fw_info[i].chip == chip)
- return (&fw_info[i]);
- }
- return (NULL);
-}
-
/*
- * Is the given firmware API compatible with the one the driver was compiled
- * with?
+ * Is the given firmware compatible with the one the driver was compiled with?
*/
static int
-fw_compatible(const struct fw_hdr *hdr1, const struct fw_hdr *hdr2)
+fw_compatible(const struct fw_hdr *hdr)
{
- /* short circuit if it's the exact same firmware version */
- if (hdr1->chip == hdr2->chip && hdr1->fw_ver == hdr2->fw_ver)
+ if (hdr->fw_ver == htonl(FW_VERSION))
return (1);
/*
@@ -1902,123 +1523,42 @@
* XXX: Is this too conservative? Perhaps I should limit this to the
* features that are supported in the driver.
*/
-#define SAME_INTF(x) (hdr1->intfver_##x == hdr2->intfver_##x)
- if (hdr1->chip == hdr2->chip && SAME_INTF(nic) && SAME_INTF(vnic) &&
- SAME_INTF(ofld) && SAME_INTF(ri) && SAME_INTF(iscsipdu) &&
- SAME_INTF(iscsi) && SAME_INTF(fcoepdu) && SAME_INTF(fcoe))
+ if (hdr->intfver_nic == FW_HDR_INTFVER_NIC &&
+ hdr->intfver_vnic == FW_HDR_INTFVER_VNIC &&
+ hdr->intfver_ofld == FW_HDR_INTFVER_OFLD &&
+ hdr->intfver_ri == FW_HDR_INTFVER_RI &&
+ hdr->intfver_iscsipdu == FW_HDR_INTFVER_ISCSIPDU &&
+ hdr->intfver_iscsi == FW_HDR_INTFVER_ISCSI &&
+ hdr->intfver_fcoepdu == FW_HDR_INTFVER_FCOEPDU &&
+ hdr->intfver_fcoe == FW_HDR_INTFVER_FCOEPDU)
return (1);
-#undef SAME_INTF
return (0);
}
/*
- * The firmware in the KLD is usable, but should it be installed? This routine
- * explains itself in detail if it indicates the KLD firmware should be
- * installed.
+ * Install a compatible firmware (if required), establish contact with it (by
+ * saying hello), and reset the device. If we end up as the master driver,
+ * partition adapter resources by providing a configuration file to the
+ * firmware.
*/
static int
-should_install_kld_fw(struct adapter *sc, int card_fw_usable, int k, int c)
-{
- const char *reason;
-
- if (!card_fw_usable) {
- reason = "incompatible or unusable";
- goto install;
- }
-
- if (k > c) {
- reason = "older than the version bundled with this driver";
- goto install;
- }
-
- if (t4_fw_install == 2 && k != c) {
- reason = "different than the version bundled with this driver";
- goto install;
- }
-
- return (0);
-
-install:
- if (t4_fw_install == 0) {
- device_printf(sc->dev, "firmware on card (%u.%u.%u.%u) is %s, "
- "but the driver is prohibited from installing a different "
- "firmware on the card.\n",
- G_FW_HDR_FW_VER_MAJOR(c), G_FW_HDR_FW_VER_MINOR(c),
- G_FW_HDR_FW_VER_MICRO(c), G_FW_HDR_FW_VER_BUILD(c), reason);
-
- return (0);
- }
-
- device_printf(sc->dev, "firmware on card (%u.%u.%u.%u) is %s, "
- "installing firmware %u.%u.%u.%u on card.\n",
- G_FW_HDR_FW_VER_MAJOR(c), G_FW_HDR_FW_VER_MINOR(c),
- G_FW_HDR_FW_VER_MICRO(c), G_FW_HDR_FW_VER_BUILD(c), reason,
- G_FW_HDR_FW_VER_MAJOR(k), G_FW_HDR_FW_VER_MINOR(k),
- G_FW_HDR_FW_VER_MICRO(k), G_FW_HDR_FW_VER_BUILD(k));
-
- return (1);
-}
-/*
- * Establish contact with the firmware and determine if we are the master driver
- * or not, and whether we are responsible for chip initialization.
- */
-static int
prep_firmware(struct adapter *sc)
{
- const struct firmware *fw = NULL, *default_cfg;
- int rc, pf, card_fw_usable, kld_fw_usable, need_fw_reset = 1;
+ const struct firmware *fw = NULL, *cfg = NULL, *default_cfg;
+ int rc, card_fw_usable, kld_fw_usable;
enum dev_state state;
- struct fw_info *fw_info;
- struct fw_hdr *card_fw; /* fw on the card */
- const struct fw_hdr *kld_fw; /* fw in the KLD */
- const struct fw_hdr *drv_fw; /* fw header the driver was compiled
- against */
+ struct fw_hdr *card_fw;
+ const struct fw_hdr *kld_fw;
- /* Contact firmware. */
- rc = t4_fw_hello(sc, sc->mbox, sc->mbox, MASTER_MAY, &state);
- if (rc < 0 || state == DEV_STATE_ERR) {
- rc = -rc;
- device_printf(sc->dev,
- "failed to connect to the firmware: %d, %d.\n", rc, state);
- return (rc);
- }
- pf = rc;
- if (pf == sc->mbox)
- sc->flags |= MASTER_PF;
- else if (state == DEV_STATE_UNINIT) {
- /*
- * We didn't get to be the master so we definitely won't be
- * configuring the chip. It's a bug if someone else hasn't
- * configured it already.
- */
- device_printf(sc->dev, "couldn't be master(%d), "
- "device not already initialized either(%d).\n", rc, state);
- return (EDOOFUS);
- }
+ default_cfg = firmware_get(T4_CFGNAME);
- /* This is the firmware whose headers the driver was compiled against */
- fw_info = find_fw_info(chip_id(sc));
- if (fw_info == NULL) {
- device_printf(sc->dev,
- "unable to look up firmware information for chip %d.\n",
- chip_id(sc));
- return (EINVAL);
- }
- drv_fw = &fw_info->fw_hdr;
-
- /*
- * The firmware KLD contains many modules. The KLD name is also the
- * name of the module that contains the default config file.
- */
- default_cfg = firmware_get(fw_info->kld_name);
-
/* Read the header of the firmware on the card */
card_fw = malloc(sizeof(*card_fw), M_CXGBE, M_ZERO | M_WAITOK);
rc = -t4_read_flash(sc, FLASH_FW_START,
sizeof (*card_fw) / sizeof (uint32_t), (uint32_t *)card_fw, 1);
if (rc == 0)
- card_fw_usable = fw_compatible(drv_fw, (const void*)card_fw);
+ card_fw_usable = fw_compatible((const void*)card_fw);
else {
device_printf(sc->dev,
"Unable to read card's firmware header: %d\n", rc);
@@ -2026,29 +1566,38 @@
}
/* This is the firmware in the KLD */
- fw = firmware_get(fw_info->fw_mod_name);
+ fw = firmware_get(T4_FWNAME);
if (fw != NULL) {
kld_fw = (const void *)fw->data;
- kld_fw_usable = fw_compatible(drv_fw, kld_fw);
+ kld_fw_usable = fw_compatible(kld_fw);
} else {
kld_fw = NULL;
kld_fw_usable = 0;
}
- if (card_fw_usable && card_fw->fw_ver == drv_fw->fw_ver &&
- (!kld_fw_usable || kld_fw->fw_ver == drv_fw->fw_ver)) {
- /*
- * Common case: the firmware on the card is an exact match and
- * the KLD is an exact match too, or the KLD is
- * absent/incompatible. Note that t4_fw_install = 2 is ignored
- * here -- use cxgbetool loadfw if you want to reinstall the
- * same firmware as the one on the card.
- */
- } else if (kld_fw_usable && state == DEV_STATE_UNINIT &&
- should_install_kld_fw(sc, card_fw_usable, be32toh(kld_fw->fw_ver),
- be32toh(card_fw->fw_ver))) {
+ /*
+ * Short circuit for the common case: the firmware on the card is an
+ * exact match and the KLD is an exact match too, or it's
+ * absent/incompatible, or we're prohibited from using it. Note that
+ * t4_fw_install = 2 is ignored here -- use cxgbetool loadfw if you want
+ * to reinstall the same firmware as the one on the card.
+ */
+ if (card_fw_usable && card_fw->fw_ver == htonl(FW_VERSION) &&
+ (!kld_fw_usable || kld_fw->fw_ver == htonl(FW_VERSION) ||
+ t4_fw_install == 0))
+ goto hello;
- rc = -t4_fw_upgrade(sc, sc->mbox, fw->data, fw->datasize, 0);
+ if (kld_fw_usable && (!card_fw_usable ||
+ ntohl(kld_fw->fw_ver) > ntohl(card_fw->fw_ver) ||
+ (t4_fw_install == 2 && kld_fw->fw_ver != card_fw->fw_ver))) {
+ uint32_t v = ntohl(kld_fw->fw_ver);
+
+ device_printf(sc->dev,
+ "installing firmware %d.%d.%d.%d on card.\n",
+ G_FW_HDR_FW_VER_MAJOR(v), G_FW_HDR_FW_VER_MINOR(v),
+ G_FW_HDR_FW_VER_MICRO(v), G_FW_HDR_FW_VER_BUILD(v));
+
+ rc = -t4_load_fw(sc, fw->data, fw->datasize);
if (rc != 0) {
device_printf(sc->dev,
"failed to install firmware: %d\n", rc);
@@ -2058,31 +1607,30 @@
/* Installed successfully, update the cached header too. */
memcpy(card_fw, kld_fw, sizeof(*card_fw));
card_fw_usable = 1;
- need_fw_reset = 0; /* already reset as part of load_fw */
}
if (!card_fw_usable) {
- uint32_t d, c, k;
+ uint32_t c, k;
- d = ntohl(drv_fw->fw_ver);
c = ntohl(card_fw->fw_ver);
k = kld_fw ? ntohl(kld_fw->fw_ver) : 0;
device_printf(sc->dev, "Cannot find a usable firmware: "
- "fw_install %d, chip state %d, "
- "driver compiled with %d.%d.%d.%d, "
+ "fw_install %d, driver compiled with %d.%d.%d.%d, "
"card has %d.%d.%d.%d, KLD has %d.%d.%d.%d\n",
- t4_fw_install, state,
- G_FW_HDR_FW_VER_MAJOR(d), G_FW_HDR_FW_VER_MINOR(d),
- G_FW_HDR_FW_VER_MICRO(d), G_FW_HDR_FW_VER_BUILD(d),
+ t4_fw_install,
+ G_FW_HDR_FW_VER_MAJOR(FW_VERSION),
+ G_FW_HDR_FW_VER_MINOR(FW_VERSION),
+ G_FW_HDR_FW_VER_MICRO(FW_VERSION),
+ G_FW_HDR_FW_VER_BUILD(FW_VERSION),
G_FW_HDR_FW_VER_MAJOR(c), G_FW_HDR_FW_VER_MINOR(c),
G_FW_HDR_FW_VER_MICRO(c), G_FW_HDR_FW_VER_BUILD(c),
G_FW_HDR_FW_VER_MAJOR(k), G_FW_HDR_FW_VER_MINOR(k),
G_FW_HDR_FW_VER_MICRO(k), G_FW_HDR_FW_VER_BUILD(k));
- rc = EINVAL;
goto done;
}
+hello:
/* We're using whatever's on the card and it's known to be good. */
sc->params.fw_vers = ntohl(card_fw->fw_ver);
snprintf(sc->fw_version, sizeof(sc->fw_version), "%u.%u.%u.%u",
@@ -2090,50 +1638,61 @@
G_FW_HDR_FW_VER_MINOR(sc->params.fw_vers),
G_FW_HDR_FW_VER_MICRO(sc->params.fw_vers),
G_FW_HDR_FW_VER_BUILD(sc->params.fw_vers));
- t4_get_tp_version(sc, &sc->params.tp_vers);
+ /* Contact firmware. */
+ rc = t4_fw_hello(sc, sc->mbox, sc->mbox, MASTER_MAY, &state);
+ if (rc < 0) {
+ rc = -rc;
+ device_printf(sc->dev,
+ "failed to connect to the firmware: %d.\n", rc);
+ goto done;
+ }
+ if (rc == sc->mbox)
+ sc->flags |= MASTER_PF;
+
/* Reset device */
- if (need_fw_reset &&
- (rc = -t4_fw_reset(sc, sc->mbox, F_PIORSTMODE | F_PIORST)) != 0) {
+ rc = -t4_fw_reset(sc, sc->mbox, F_PIORSTMODE | F_PIORST);
+ if (rc != 0) {
device_printf(sc->dev, "firmware reset failed: %d.\n", rc);
if (rc != ETIMEDOUT && rc != EIO)
t4_fw_bye(sc, sc->mbox);
goto done;
}
- sc->flags |= FW_OK;
- rc = get_params__pre_init(sc);
- if (rc != 0)
- goto done; /* error message displayed already */
-
/* Partition adapter resources as specified in the config file. */
- if (state == DEV_STATE_UNINIT) {
+ if (sc->flags & MASTER_PF) {
+ snprintf(sc->cfg_file, sizeof(sc->cfg_file), "%s",
+ pci_get_device(sc->dev) == 0x440a ? "uwire" : t4_cfg_file);
+ if (strncmp(sc->cfg_file, "default", sizeof(sc->cfg_file))) {
+ char s[32];
- KASSERT(sc->flags & MASTER_PF,
- ("%s: trying to change chip settings when not master.",
- __func__));
+ snprintf(s, sizeof(s), "t4fw_cfg_%s", sc->cfg_file);
+ cfg = firmware_get(s);
+ if (cfg == NULL) {
+ device_printf(sc->dev,
+ "unable to locate %s module, "
+ "will use default config file.\n", s);
+ snprintf(sc->cfg_file, sizeof(sc->cfg_file),
+ "%s", "default");
+ }
+ }
- rc = partition_resources(sc, default_cfg, fw_info->kld_name);
+ rc = partition_resources(sc, cfg ? cfg : default_cfg);
if (rc != 0)
goto done; /* error message displayed already */
-
- t4_tweak_chip_settings(sc);
-
- /* get basic stuff going */
- rc = -t4_fw_initialize(sc, sc->mbox);
- if (rc != 0) {
- device_printf(sc->dev, "fw init failed: %d.\n", rc);
- goto done;
- }
} else {
- snprintf(sc->cfg_file, sizeof(sc->cfg_file), "pf%d", pf);
- sc->cfcsum = 0;
+ snprintf(sc->cfg_file, sizeof(sc->cfg_file), "%s", "notme");
+ sc->cfcsum = (u_int)-1;
}
+ sc->flags |= FW_OK;
+
done:
free(card_fw, M_CXGBE);
if (fw != NULL)
firmware_put(fw, FIRMWARE_UNLOAD);
+ if (cfg != NULL)
+ firmware_put(cfg, FIRMWARE_UNLOAD);
if (default_cfg != NULL)
firmware_put(default_cfg, FIRMWARE_UNLOAD);
@@ -2148,136 +1707,115 @@
V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_PFVF_##param))
/*
- * Partition chip resources for use between various PFs, VFs, etc.
+ * Upload configuration file to card's memory.
*/
static int
-partition_resources(struct adapter *sc, const struct firmware *default_cfg,
- const char *name_prefix)
+upload_config_file(struct adapter *sc, const struct firmware *fw, uint32_t *mt,
+ uint32_t *ma)
{
- const struct firmware *cfg = NULL;
- int rc = 0;
- struct fw_caps_config_cmd caps;
- uint32_t mtype, moff, finicsum, cfcsum;
+ int rc, i;
+ uint32_t param, val, mtype, maddr, bar, off, win, remaining;
+ const uint32_t *b;
- /*
- * Figure out what configuration file to use. Pick the default config
- * file for the card if the user hasn't specified one explicitly.
- */
- snprintf(sc->cfg_file, sizeof(sc->cfg_file), "%s", t4_cfg_file);
- if (strncmp(t4_cfg_file, DEFAULT_CF, sizeof(t4_cfg_file)) == 0) {
- /* Card specific overrides go here. */
- if (pci_get_device(sc->dev) == 0x440a)
- snprintf(sc->cfg_file, sizeof(sc->cfg_file), UWIRE_CF);
- if (is_fpga(sc))
- snprintf(sc->cfg_file, sizeof(sc->cfg_file), FPGA_CF);
+ /* Figure out where the firmware wants us to upload it. */
+ param = FW_PARAM_DEV(CF);
+ rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, &val);
+ if (rc != 0) {
+ /* Firmwares without config file support will fail this way */
+ device_printf(sc->dev,
+ "failed to query config file location: %d.\n", rc);
+ return (rc);
}
+ *mt = mtype = G_FW_PARAMS_PARAM_Y(val);
+ *ma = maddr = G_FW_PARAMS_PARAM_Z(val) << 16;
- /*
- * We need to load another module if the profile is anything except
- * "default" or "flash".
- */
- if (strncmp(sc->cfg_file, DEFAULT_CF, sizeof(sc->cfg_file)) != 0 &&
- strncmp(sc->cfg_file, FLASH_CF, sizeof(sc->cfg_file)) != 0) {
- char s[32];
-
- snprintf(s, sizeof(s), "%s_%s", name_prefix, sc->cfg_file);
- cfg = firmware_get(s);
- if (cfg == NULL) {
- if (default_cfg != NULL) {
- device_printf(sc->dev,
- "unable to load module \"%s\" for "
- "configuration profile \"%s\", will use "
- "the default config file instead.\n",
- s, sc->cfg_file);
- snprintf(sc->cfg_file, sizeof(sc->cfg_file),
- "%s", DEFAULT_CF);
- } else {
- device_printf(sc->dev,
- "unable to load module \"%s\" for "
- "configuration profile \"%s\", will use "
- "the config file on the card's flash "
- "instead.\n", s, sc->cfg_file);
- snprintf(sc->cfg_file, sizeof(sc->cfg_file),
- "%s", FLASH_CF);
- }
- }
+ if (maddr & 3) {
+ device_printf(sc->dev,
+ "cannot upload config file (type %u, addr %x).\n",
+ mtype, maddr);
+ return (EFAULT);
}
- if (strncmp(sc->cfg_file, DEFAULT_CF, sizeof(sc->cfg_file)) == 0 &&
- default_cfg == NULL) {
+ /* Translate mtype/maddr to an address suitable for the PCIe window */
+ val = t4_read_reg(sc, A_MA_TARGET_MEM_ENABLE);
+ val &= F_EDRAM0_ENABLE | F_EDRAM1_ENABLE | F_EXT_MEM_ENABLE;
+ switch (mtype) {
+ case FW_MEMTYPE_CF_EDC0:
+ if (!(val & F_EDRAM0_ENABLE))
+ goto err;
+ bar = t4_read_reg(sc, A_MA_EDRAM0_BAR);
+ maddr += G_EDRAM0_BASE(bar) << 20;
+ break;
+
+ case FW_MEMTYPE_CF_EDC1:
+ if (!(val & F_EDRAM1_ENABLE))
+ goto err;
+ bar = t4_read_reg(sc, A_MA_EDRAM1_BAR);
+ maddr += G_EDRAM1_BASE(bar) << 20;
+ break;
+
+ case FW_MEMTYPE_CF_EXTMEM:
+ if (!(val & F_EXT_MEM_ENABLE))
+ goto err;
+ bar = t4_read_reg(sc, A_MA_EXT_MEMORY_BAR);
+ maddr += G_EXT_MEM_BASE(bar) << 20;
+ break;
+
+ default:
+err:
device_printf(sc->dev,
- "default config file not available, will use the config "
- "file on the card's flash instead.\n");
- snprintf(sc->cfg_file, sizeof(sc->cfg_file), "%s", FLASH_CF);
+ "cannot upload config file (type %u, enabled %u).\n",
+ mtype, val);
+ return (EFAULT);
}
- if (strncmp(sc->cfg_file, FLASH_CF, sizeof(sc->cfg_file)) != 0) {
- u_int cflen, i, n;
- const uint32_t *cfdata;
- uint32_t param, val, addr, off, mw_base, mw_aperture;
+ /*
+ * Position the PCIe window (we use memwin2) to the 16B aligned area
+ * just at/before the upload location.
+ */
+ win = maddr & ~0xf;
+ off = maddr - win; /* offset from the start of the window. */
+ t4_write_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2), win);
+ t4_read_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2));
- KASSERT(cfg != NULL || default_cfg != NULL,
- ("%s: no config to upload", __func__));
+ remaining = fw->datasize;
+ if (remaining > FLASH_CFG_MAX_SIZE ||
+ remaining > MEMWIN2_APERTURE - off) {
+ device_printf(sc->dev, "cannot upload config file all at once "
+ "(size %u, max %u, room %u).\n",
+ remaining, FLASH_CFG_MAX_SIZE, MEMWIN2_APERTURE - off);
+ return (EFBIG);
+ }
- /*
- * Ask the firmware where it wants us to upload the config file.
- */
- param = FW_PARAM_DEV(CF);
- rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, &val);
- if (rc != 0) {
- /* No support for config file? Shouldn't happen. */
- device_printf(sc->dev,
- "failed to query config file location: %d.\n", rc);
- goto done;
- }
- mtype = G_FW_PARAMS_PARAM_Y(val);
- moff = G_FW_PARAMS_PARAM_Z(val) << 16;
+ /*
+ * XXX: sheer laziness. We deliberately added 4 bytes of useless
+ * stuffing/comments at the end of the config file so it's ok to simply
+ * throw away the last remaining bytes when the config file is not an
+ * exact multiple of 4.
+ */
+ b = fw->data;
+ for (i = 0; remaining >= 4; i += 4, remaining -= 4)
+ t4_write_reg(sc, MEMWIN2_BASE + off + i, *b++);
- /*
- * XXX: sheer laziness. We deliberately added 4 bytes of
- * useless stuffing/comments at the end of the config file so
- * it's ok to simply throw away the last remaining bytes when
- * the config file is not an exact multiple of 4. This also
- * helps with the validate_mt_off_len check.
- */
- if (cfg != NULL) {
- cflen = cfg->datasize & ~3;
- cfdata = cfg->data;
- } else {
- cflen = default_cfg->datasize & ~3;
- cfdata = default_cfg->data;
- }
+ return (rc);
+}
- if (cflen > FLASH_CFG_MAX_SIZE) {
- device_printf(sc->dev,
- "config file too long (%d, max allowed is %d). "
- "Will try to use the config on the card, if any.\n",
- cflen, FLASH_CFG_MAX_SIZE);
- goto use_config_on_flash;
- }
+/*
+ * Partition chip resources for use between various PFs, VFs, etc. This is done
+ * by uploading the firmware configuration file to the adapter and instructing
+ * the firmware to process it.
+ */
+static int
+partition_resources(struct adapter *sc, const struct firmware *cfg)
+{
+ int rc;
+ struct fw_caps_config_cmd caps;
+ uint32_t mtype, maddr, finicsum, cfcsum;
- rc = validate_mt_off_len(sc, mtype, moff, cflen, &addr);
- if (rc != 0) {
- device_printf(sc->dev,
- "%s: addr (%d/0x%x) or len %d is not valid: %d. "
- "Will try to use the config on the card, if any.\n",
- __func__, mtype, moff, cflen, rc);
- goto use_config_on_flash;
- }
-
- memwin_info(sc, 2, &mw_base, &mw_aperture);
- while (cflen) {
- off = position_memwin(sc, 2, addr);
- n = min(cflen, mw_aperture - off);
- for (i = 0; i < n; i += 4)
- t4_write_reg(sc, mw_base + off + i, *cfdata++);
- cflen -= n;
- addr += n;
- }
- } else {
-use_config_on_flash:
+ rc = cfg ? upload_config_file(sc, cfg, &mtype, &maddr) : ENOENT;
+ if (rc != 0) {
mtype = FW_MEMTYPE_CF_FLASH;
- moff = t4_flash_cfg_addr(sc);
+ maddr = t4_flash_cfg_addr(sc);
}
bzero(&caps, sizeof(caps));
@@ -2285,13 +1823,12 @@
F_FW_CMD_REQUEST | F_FW_CMD_READ);
caps.cfvalid_to_len16 = htobe32(F_FW_CAPS_CONFIG_CMD_CFVALID |
V_FW_CAPS_CONFIG_CMD_MEMTYPE_CF(mtype) |
- V_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF(moff >> 16) | FW_LEN16(caps));
+ V_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF(maddr >> 16) | FW_LEN16(caps));
rc = -t4_wr_mbox(sc, sc->mbox, &caps, sizeof(caps), &caps);
if (rc != 0) {
device_printf(sc->dev,
- "failed to pre-process config file: %d "
- "(mtype %d, moff 0x%x).\n", rc, mtype, moff);
- goto done;
+ "failed to pre-process config file: %d.\n", rc);
+ return (rc);
}
finicsum = be32toh(caps.finicsum);
@@ -2327,15 +1864,15 @@
if (rc != 0) {
device_printf(sc->dev,
"failed to process config file: %d.\n", rc);
+ return (rc);
}
-done:
- if (cfg != NULL)
- firmware_put(cfg, FIRMWARE_UNLOAD);
- return (rc);
+
+ return (0);
}
/*
- * Retrieve parameters that are needed (or nice to have) very early.
+ * Retrieve parameters that are needed (or nice to have) prior to calling
+ * t4_sge_init and t4_fw_initialize.
*/
static int
get_params__pre_init(struct adapter *sc)
@@ -2500,11 +2037,11 @@
sc->vres.iscsi.size = val[1] - val[0] + 1;
}
- /*
- * We've got the params we wanted to query via the firmware. Now grab
- * some others directly from the chip.
- */
- rc = t4_read_chip_settings(sc);
+ /* These are finalized by FW initialization, load their values now */
+ val[0] = t4_read_reg(sc, A_TP_TIMER_RESOLUTION);
+ sc->params.tp.tre = G_TIMERRESOLUTION(val[0]);
+ sc->params.tp.dack_re = G_DELAYEDACKRESOLUTION(val[0]);
+ t4_read_mtu_tbl(sc, sc->params.mtus, NULL);
return (rc);
}
@@ -2513,13 +2050,27 @@
set_params__post_init(struct adapter *sc)
{
uint32_t param, val;
+ int rc;
- /* ask for encapsulated CPLs */
param = FW_PARAM_PFVF(CPLFW4MSG_ENCAP);
- val = 1;
- (void)t4_set_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, &val);
+ rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, &val);
+ if (rc == 0) {
+ /* ask for encapsulated CPLs */
+ param = FW_PARAM_PFVF(CPLFW4MSG_ENCAP);
+ val = 1;
+ rc = -t4_set_params(sc, sc->mbox, sc->pf, 0, 1, ¶m, &val);
+ if (rc != 0) {
+ device_printf(sc->dev,
+ "failed to set parameter (post_init): %d.\n", rc);
+ return (rc);
+ }
+ } else if (rc != FW_EINVAL) {
+ device_printf(sc->dev,
+ "failed to check for encapsulated CPLs: %d.\n", rc);
+ } else
+ rc = 0; /* the firmware doesn't support the param, no worries */
- return (0);
+ return (rc);
}
#undef FW_PARAM_PFVF
@@ -2532,8 +2083,7 @@
struct adapter_params *p = &sc->params;
snprintf(buf, sizeof(buf), "Chelsio %s %sNIC (rev %d), S/N:%s, E/C:%s",
- p->vpd.id, is_offload(sc) ? "R" : "", chip_rev(sc), p->vpd.sn,
- p->vpd.ec);
+ p->vpd.id, is_offload(sc) ? "R" : "", p->rev, p->vpd.sn, p->vpd.ec);
device_set_desc_copy(sc->dev, buf);
}
@@ -2607,9 +2157,6 @@
case FW_PORT_MOD_TYPE_NA:
case FW_PORT_MOD_TYPE_ER:
default:
- device_printf(pi->dev,
- "unknown port_type (%d), mod_type (%d)\n",
- pi->port_type, pi->mod_type);
ifmedia_add(media, m | IFM_UNKNOWN, data, NULL);
ifmedia_set(media, m | IFM_UNKNOWN);
break;
@@ -2616,45 +2163,10 @@
}
break;
- case FW_PORT_TYPE_QSFP:
- switch (pi->mod_type) {
-
- case FW_PORT_MOD_TYPE_LR:
- ifmedia_add(media, m | IFM_40G_LR4, data, NULL);
- ifmedia_set(media, m | IFM_40G_LR4);
- break;
-
- case FW_PORT_MOD_TYPE_SR:
- ifmedia_add(media, m | IFM_40G_SR4, data, NULL);
- ifmedia_set(media, m | IFM_40G_SR4);
- break;
-
- case FW_PORT_MOD_TYPE_TWINAX_PASSIVE:
- case FW_PORT_MOD_TYPE_TWINAX_ACTIVE:
- ifmedia_add(media, m | IFM_40G_CR4, data, NULL);
- ifmedia_set(media, m | IFM_40G_CR4);
- break;
-
- case FW_PORT_MOD_TYPE_NONE:
- m &= ~IFM_FDX;
- ifmedia_add(media, m | IFM_NONE, data, NULL);
- ifmedia_set(media, m | IFM_NONE);
- break;
-
- default:
- device_printf(pi->dev,
- "unknown port_type (%d), mod_type (%d)\n",
- pi->port_type, pi->mod_type);
- ifmedia_add(media, m | IFM_UNKNOWN, data, NULL);
- ifmedia_set(media, m | IFM_UNKNOWN);
- break;
- }
- break;
-
+ case FW_PORT_TYPE_KX4:
+ case FW_PORT_TYPE_KX:
+ case FW_PORT_TYPE_KR:
default:
- device_printf(pi->dev,
- "unknown port_type (%d), mod_type (%d)\n", pi->port_type,
- pi->mod_type);
ifmedia_add(media, m | IFM_UNKNOWN, data, NULL);
ifmedia_set(media, m | IFM_UNKNOWN);
break;
@@ -2934,8 +2446,7 @@
pi->link_cfg.link_ok = 0;
pi->link_cfg.speed = 0;
- pi->linkdnrc = -1;
- t4_os_link_changed(sc, pi->port_id, 0, -1);
+ t4_os_link_changed(sc, pi->port_id, 0);
return (0);
}
@@ -3293,9 +2804,8 @@
static void
t4_get_regs(struct adapter *sc, struct t4_regdump *regs, uint8_t *buf)
{
- int i, n;
- const unsigned int *reg_ranges;
- static const unsigned int t4_reg_ranges[] = {
+ int i;
+ static const unsigned int reg_ranges[] = {
0x1008, 0x1108,
0x1180, 0x11b4,
0x11fc, 0x123c,
@@ -3514,455 +3024,9 @@
0x27c80, 0x27d7c,
0x27e00, 0x27e04
};
- static const unsigned int t5_reg_ranges[] = {
- 0x1008, 0x1148,
- 0x1180, 0x11b4,
- 0x11fc, 0x123c,
- 0x1280, 0x173c,
- 0x1800, 0x18fc,
- 0x3000, 0x3028,
- 0x3060, 0x30d8,
- 0x30e0, 0x30fc,
- 0x3140, 0x357c,
- 0x35a8, 0x35cc,
- 0x35ec, 0x35ec,
- 0x3600, 0x5624,
- 0x56cc, 0x575c,
- 0x580c, 0x5814,
- 0x5890, 0x58bc,
- 0x5940, 0x59dc,
- 0x59fc, 0x5a18,
- 0x5a60, 0x5a9c,
- 0x5b94, 0x5bfc,
- 0x6000, 0x6040,
- 0x6058, 0x614c,
- 0x7700, 0x7798,
- 0x77c0, 0x78fc,
- 0x7b00, 0x7c54,
- 0x7d00, 0x7efc,
- 0x8dc0, 0x8de0,
- 0x8df8, 0x8e84,
- 0x8ea0, 0x8f84,
- 0x8fc0, 0x90f8,
- 0x9400, 0x9470,
- 0x9600, 0x96f4,
- 0x9800, 0x9808,
- 0x9820, 0x983c,
- 0x9850, 0x9864,
- 0x9c00, 0x9c6c,
- 0x9c80, 0x9cec,
- 0x9d00, 0x9d6c,
- 0x9d80, 0x9dec,
- 0x9e00, 0x9e6c,
- 0x9e80, 0x9eec,
- 0x9f00, 0x9f6c,
- 0x9f80, 0xa020,
- 0xd004, 0xd03c,
- 0xdfc0, 0xdfe0,
- 0xe000, 0x11088,
- 0x1109c, 0x1117c,
- 0x11190, 0x11204,
- 0x19040, 0x1906c,
- 0x19078, 0x19080,
- 0x1908c, 0x19124,
- 0x19150, 0x191b0,
- 0x191d0, 0x191e8,
- 0x19238, 0x19290,
- 0x193f8, 0x19474,
- 0x19490, 0x194cc,
- 0x194f0, 0x194f8,
- 0x19c00, 0x19c60,
- 0x19c94, 0x19e10,
- 0x19e50, 0x19f34,
- 0x19f40, 0x19f50,
- 0x19f90, 0x19fe4,
- 0x1a000, 0x1a06c,
- 0x1a0b0, 0x1a120,
- 0x1a128, 0x1a138,
- 0x1a190, 0x1a1c4,
- 0x1a1fc, 0x1a1fc,
- 0x1e008, 0x1e00c,
- 0x1e040, 0x1e04c,
- 0x1e284, 0x1e290,
- 0x1e2c0, 0x1e2c0,
- 0x1e2e0, 0x1e2e0,
- 0x1e300, 0x1e384,
- 0x1e3c0, 0x1e3c8,
- 0x1e408, 0x1e40c,
- 0x1e440, 0x1e44c,
- 0x1e684, 0x1e690,
- 0x1e6c0, 0x1e6c0,
- 0x1e6e0, 0x1e6e0,
- 0x1e700, 0x1e784,
- 0x1e7c0, 0x1e7c8,
- 0x1e808, 0x1e80c,
- 0x1e840, 0x1e84c,
- 0x1ea84, 0x1ea90,
- 0x1eac0, 0x1eac0,
- 0x1eae0, 0x1eae0,
- 0x1eb00, 0x1eb84,
- 0x1ebc0, 0x1ebc8,
- 0x1ec08, 0x1ec0c,
- 0x1ec40, 0x1ec4c,
- 0x1ee84, 0x1ee90,
- 0x1eec0, 0x1eec0,
- 0x1eee0, 0x1eee0,
- 0x1ef00, 0x1ef84,
- 0x1efc0, 0x1efc8,
- 0x1f008, 0x1f00c,
- 0x1f040, 0x1f04c,
- 0x1f284, 0x1f290,
- 0x1f2c0, 0x1f2c0,
- 0x1f2e0, 0x1f2e0,
- 0x1f300, 0x1f384,
- 0x1f3c0, 0x1f3c8,
- 0x1f408, 0x1f40c,
- 0x1f440, 0x1f44c,
- 0x1f684, 0x1f690,
- 0x1f6c0, 0x1f6c0,
- 0x1f6e0, 0x1f6e0,
- 0x1f700, 0x1f784,
- 0x1f7c0, 0x1f7c8,
- 0x1f808, 0x1f80c,
- 0x1f840, 0x1f84c,
- 0x1fa84, 0x1fa90,
- 0x1fac0, 0x1fac0,
- 0x1fae0, 0x1fae0,
- 0x1fb00, 0x1fb84,
- 0x1fbc0, 0x1fbc8,
- 0x1fc08, 0x1fc0c,
- 0x1fc40, 0x1fc4c,
- 0x1fe84, 0x1fe90,
- 0x1fec0, 0x1fec0,
- 0x1fee0, 0x1fee0,
- 0x1ff00, 0x1ff84,
- 0x1ffc0, 0x1ffc8,
- 0x30000, 0x30030,
- 0x30100, 0x30144,
- 0x30190, 0x301d0,
- 0x30200, 0x30318,
- 0x30400, 0x3052c,
- 0x30540, 0x3061c,
- 0x30800, 0x30834,
- 0x308c0, 0x30908,
- 0x30910, 0x309ac,
- 0x30a00, 0x30a2c,
- 0x30a44, 0x30a50,
- 0x30a74, 0x30c24,
- 0x30d00, 0x30d00,
- 0x30d08, 0x30d14,
- 0x30d1c, 0x30d20,
- 0x30d3c, 0x30d50,
- 0x31200, 0x3120c,
- 0x31220, 0x31220,
- 0x31240, 0x31240,
- 0x31600, 0x3160c,
- 0x31a00, 0x31a1c,
- 0x31e00, 0x31e20,
- 0x31e38, 0x31e3c,
- 0x31e80, 0x31e80,
- 0x31e88, 0x31ea8,
- 0x31eb0, 0x31eb4,
- 0x31ec8, 0x31ed4,
- 0x31fb8, 0x32004,
- 0x32200, 0x32200,
- 0x32208, 0x32240,
- 0x32248, 0x32280,
- 0x32288, 0x322c0,
- 0x322c8, 0x322fc,
- 0x32600, 0x32630,
- 0x32a00, 0x32abc,
- 0x32b00, 0x32b70,
- 0x33000, 0x33048,
- 0x33060, 0x3309c,
- 0x330f0, 0x33148,
- 0x33160, 0x3319c,
- 0x331f0, 0x332e4,
- 0x332f8, 0x333e4,
- 0x333f8, 0x33448,
- 0x33460, 0x3349c,
- 0x334f0, 0x33548,
- 0x33560, 0x3359c,
- 0x335f0, 0x336e4,
- 0x336f8, 0x337e4,
- 0x337f8, 0x337fc,
- 0x33814, 0x33814,
- 0x3382c, 0x3382c,
- 0x33880, 0x3388c,
- 0x338e8, 0x338ec,
- 0x33900, 0x33948,
- 0x33960, 0x3399c,
- 0x339f0, 0x33ae4,
- 0x33af8, 0x33b10,
- 0x33b28, 0x33b28,
- 0x33b3c, 0x33b50,
- 0x33bf0, 0x33c10,
- 0x33c28, 0x33c28,
- 0x33c3c, 0x33c50,
- 0x33cf0, 0x33cfc,
- 0x34000, 0x34030,
- 0x34100, 0x34144,
- 0x34190, 0x341d0,
- 0x34200, 0x34318,
- 0x34400, 0x3452c,
- 0x34540, 0x3461c,
- 0x34800, 0x34834,
- 0x348c0, 0x34908,
- 0x34910, 0x349ac,
- 0x34a00, 0x34a2c,
- 0x34a44, 0x34a50,
- 0x34a74, 0x34c24,
- 0x34d00, 0x34d00,
- 0x34d08, 0x34d14,
- 0x34d1c, 0x34d20,
- 0x34d3c, 0x34d50,
- 0x35200, 0x3520c,
- 0x35220, 0x35220,
- 0x35240, 0x35240,
- 0x35600, 0x3560c,
- 0x35a00, 0x35a1c,
- 0x35e00, 0x35e20,
- 0x35e38, 0x35e3c,
- 0x35e80, 0x35e80,
- 0x35e88, 0x35ea8,
- 0x35eb0, 0x35eb4,
- 0x35ec8, 0x35ed4,
- 0x35fb8, 0x36004,
- 0x36200, 0x36200,
- 0x36208, 0x36240,
- 0x36248, 0x36280,
- 0x36288, 0x362c0,
- 0x362c8, 0x362fc,
- 0x36600, 0x36630,
- 0x36a00, 0x36abc,
- 0x36b00, 0x36b70,
- 0x37000, 0x37048,
- 0x37060, 0x3709c,
- 0x370f0, 0x37148,
- 0x37160, 0x3719c,
- 0x371f0, 0x372e4,
- 0x372f8, 0x373e4,
- 0x373f8, 0x37448,
- 0x37460, 0x3749c,
- 0x374f0, 0x37548,
- 0x37560, 0x3759c,
- 0x375f0, 0x376e4,
- 0x376f8, 0x377e4,
- 0x377f8, 0x377fc,
- 0x37814, 0x37814,
- 0x3782c, 0x3782c,
- 0x37880, 0x3788c,
- 0x378e8, 0x378ec,
- 0x37900, 0x37948,
- 0x37960, 0x3799c,
- 0x379f0, 0x37ae4,
- 0x37af8, 0x37b10,
- 0x37b28, 0x37b28,
- 0x37b3c, 0x37b50,
- 0x37bf0, 0x37c10,
- 0x37c28, 0x37c28,
- 0x37c3c, 0x37c50,
- 0x37cf0, 0x37cfc,
- 0x38000, 0x38030,
- 0x38100, 0x38144,
- 0x38190, 0x381d0,
- 0x38200, 0x38318,
- 0x38400, 0x3852c,
- 0x38540, 0x3861c,
- 0x38800, 0x38834,
- 0x388c0, 0x38908,
- 0x38910, 0x389ac,
- 0x38a00, 0x38a2c,
- 0x38a44, 0x38a50,
- 0x38a74, 0x38c24,
- 0x38d00, 0x38d00,
- 0x38d08, 0x38d14,
- 0x38d1c, 0x38d20,
- 0x38d3c, 0x38d50,
- 0x39200, 0x3920c,
- 0x39220, 0x39220,
- 0x39240, 0x39240,
- 0x39600, 0x3960c,
- 0x39a00, 0x39a1c,
- 0x39e00, 0x39e20,
- 0x39e38, 0x39e3c,
- 0x39e80, 0x39e80,
- 0x39e88, 0x39ea8,
- 0x39eb0, 0x39eb4,
- 0x39ec8, 0x39ed4,
- 0x39fb8, 0x3a004,
- 0x3a200, 0x3a200,
- 0x3a208, 0x3a240,
- 0x3a248, 0x3a280,
- 0x3a288, 0x3a2c0,
- 0x3a2c8, 0x3a2fc,
- 0x3a600, 0x3a630,
- 0x3aa00, 0x3aabc,
- 0x3ab00, 0x3ab70,
- 0x3b000, 0x3b048,
- 0x3b060, 0x3b09c,
- 0x3b0f0, 0x3b148,
- 0x3b160, 0x3b19c,
- 0x3b1f0, 0x3b2e4,
- 0x3b2f8, 0x3b3e4,
- 0x3b3f8, 0x3b448,
- 0x3b460, 0x3b49c,
- 0x3b4f0, 0x3b548,
- 0x3b560, 0x3b59c,
- 0x3b5f0, 0x3b6e4,
- 0x3b6f8, 0x3b7e4,
- 0x3b7f8, 0x3b7fc,
- 0x3b814, 0x3b814,
- 0x3b82c, 0x3b82c,
- 0x3b880, 0x3b88c,
- 0x3b8e8, 0x3b8ec,
- 0x3b900, 0x3b948,
- 0x3b960, 0x3b99c,
- 0x3b9f0, 0x3bae4,
- 0x3baf8, 0x3bb10,
- 0x3bb28, 0x3bb28,
- 0x3bb3c, 0x3bb50,
- 0x3bbf0, 0x3bc10,
- 0x3bc28, 0x3bc28,
- 0x3bc3c, 0x3bc50,
- 0x3bcf0, 0x3bcfc,
- 0x3c000, 0x3c030,
- 0x3c100, 0x3c144,
- 0x3c190, 0x3c1d0,
- 0x3c200, 0x3c318,
- 0x3c400, 0x3c52c,
- 0x3c540, 0x3c61c,
- 0x3c800, 0x3c834,
- 0x3c8c0, 0x3c908,
- 0x3c910, 0x3c9ac,
- 0x3ca00, 0x3ca2c,
- 0x3ca44, 0x3ca50,
- 0x3ca74, 0x3cc24,
- 0x3cd00, 0x3cd00,
- 0x3cd08, 0x3cd14,
- 0x3cd1c, 0x3cd20,
- 0x3cd3c, 0x3cd50,
- 0x3d200, 0x3d20c,
- 0x3d220, 0x3d220,
- 0x3d240, 0x3d240,
- 0x3d600, 0x3d60c,
- 0x3da00, 0x3da1c,
- 0x3de00, 0x3de20,
- 0x3de38, 0x3de3c,
- 0x3de80, 0x3de80,
- 0x3de88, 0x3dea8,
- 0x3deb0, 0x3deb4,
- 0x3dec8, 0x3ded4,
- 0x3dfb8, 0x3e004,
- 0x3e200, 0x3e200,
- 0x3e208, 0x3e240,
- 0x3e248, 0x3e280,
- 0x3e288, 0x3e2c0,
- 0x3e2c8, 0x3e2fc,
- 0x3e600, 0x3e630,
- 0x3ea00, 0x3eabc,
- 0x3eb00, 0x3eb70,
- 0x3f000, 0x3f048,
- 0x3f060, 0x3f09c,
- 0x3f0f0, 0x3f148,
- 0x3f160, 0x3f19c,
- 0x3f1f0, 0x3f2e4,
- 0x3f2f8, 0x3f3e4,
- 0x3f3f8, 0x3f448,
- 0x3f460, 0x3f49c,
- 0x3f4f0, 0x3f548,
- 0x3f560, 0x3f59c,
- 0x3f5f0, 0x3f6e4,
- 0x3f6f8, 0x3f7e4,
- 0x3f7f8, 0x3f7fc,
- 0x3f814, 0x3f814,
- 0x3f82c, 0x3f82c,
- 0x3f880, 0x3f88c,
- 0x3f8e8, 0x3f8ec,
- 0x3f900, 0x3f948,
- 0x3f960, 0x3f99c,
- 0x3f9f0, 0x3fae4,
- 0x3faf8, 0x3fb10,
- 0x3fb28, 0x3fb28,
- 0x3fb3c, 0x3fb50,
- 0x3fbf0, 0x3fc10,
- 0x3fc28, 0x3fc28,
- 0x3fc3c, 0x3fc50,
- 0x3fcf0, 0x3fcfc,
- 0x40000, 0x4000c,
- 0x40040, 0x40068,
- 0x4007c, 0x40144,
- 0x40180, 0x4018c,
- 0x40200, 0x40298,
- 0x402ac, 0x4033c,
- 0x403f8, 0x403fc,
- 0x41304, 0x413c4,
- 0x41400, 0x4141c,
- 0x41480, 0x414d0,
- 0x44000, 0x44078,
- 0x440c0, 0x44278,
- 0x442c0, 0x44478,
- 0x444c0, 0x44678,
- 0x446c0, 0x44878,
- 0x448c0, 0x449fc,
- 0x45000, 0x45068,
- 0x45080, 0x45084,
- 0x450a0, 0x450b0,
- 0x45200, 0x45268,
- 0x45280, 0x45284,
- 0x452a0, 0x452b0,
- 0x460c0, 0x460e4,
- 0x47000, 0x4708c,
- 0x47200, 0x47250,
- 0x47400, 0x47420,
- 0x47600, 0x47618,
- 0x47800, 0x47814,
- 0x48000, 0x4800c,
- 0x48040, 0x48068,
- 0x4807c, 0x48144,
- 0x48180, 0x4818c,
- 0x48200, 0x48298,
- 0x482ac, 0x4833c,
- 0x483f8, 0x483fc,
- 0x49304, 0x493c4,
- 0x49400, 0x4941c,
- 0x49480, 0x494d0,
- 0x4c000, 0x4c078,
- 0x4c0c0, 0x4c278,
- 0x4c2c0, 0x4c478,
- 0x4c4c0, 0x4c678,
- 0x4c6c0, 0x4c878,
- 0x4c8c0, 0x4c9fc,
- 0x4d000, 0x4d068,
- 0x4d080, 0x4d084,
- 0x4d0a0, 0x4d0b0,
- 0x4d200, 0x4d268,
- 0x4d280, 0x4d284,
- 0x4d2a0, 0x4d2b0,
- 0x4e0c0, 0x4e0e4,
- 0x4f000, 0x4f08c,
- 0x4f200, 0x4f250,
- 0x4f400, 0x4f420,
- 0x4f600, 0x4f618,
- 0x4f800, 0x4f814,
- 0x50000, 0x500cc,
- 0x50400, 0x50400,
- 0x50800, 0x508cc,
- 0x50c00, 0x50c00,
- 0x51000, 0x5101c,
- 0x51300, 0x51308,
- };
- if (is_t4(sc)) {
- reg_ranges = &t4_reg_ranges[0];
- n = nitems(t4_reg_ranges);
- } else {
- reg_ranges = &t5_reg_ranges[0];
- n = nitems(t5_reg_ranges);
- }
-
- regs->version = chip_id(sc) | chip_rev(sc) << 10;
- for (i = 0; i < n; i += 2)
+ regs->version = 4 | (sc->params.rev << 10);
+ for (i = 0; i < nitems(reg_ranges); i += 2)
reg_block_dump(sc, buf, reg_ranges[i], reg_ranges[i + 1]);
}
@@ -4126,7 +3190,6 @@
"\5INITIATOR_SSNOFLD\6TARGET_SSNOFLD",
"\20\1INITIATOR\2TARGET\3CTRL_OFLD" /* caps[5] fcoecaps */
};
- static char *doorbells = {"\20\1UDB\2WCWR\3UDBWC\4KDB"};
ctx = device_get_sysctl_ctx(sc->dev);
@@ -4136,11 +3199,11 @@
oid = device_get_sysctl_tree(sc->dev);
c0 = children = SYSCTL_CHILDREN(oid);
- SYSCTL_ADD_INT(ctx, children, OID_AUTO, "nports", CTLFLAG_RD, NULL,
- sc->params.nports, "# of ports");
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO, "nports", CTLFLAG_RD,
+ &sc->params.nports, 0, "# of ports");
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "hw_revision", CTLFLAG_RD,
- NULL, chip_rev(sc), "chip hardware revision");
+ &sc->params.rev, 0, "chip hardware revision");
SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "firmware_version",
CTLFLAG_RD, &sc->fw_version, 0, "firmware version");
@@ -4148,13 +3211,9 @@
SYSCTL_ADD_STRING(ctx, children, OID_AUTO, "cf",
CTLFLAG_RD, &sc->cfg_file, 0, "configuration file");
- SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "cfcsum", CTLFLAG_RD, NULL,
- sc->cfcsum, "config file checksum");
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "cfcsum", CTLFLAG_RD,
+ &sc->cfcsum, 0, "config file checksum");
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "doorbells",
- CTLTYPE_STRING | CTLFLAG_RD, doorbells, sc->doorbells,
- sysctl_bitfield, "A", "available doorbells");
-
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "linkcaps",
CTLTYPE_STRING | CTLFLAG_RD, caps[0], sc->linkcaps,
sysctl_bitfield, "A", "available link capabilities");
@@ -4179,8 +3238,8 @@
CTLTYPE_STRING | CTLFLAG_RD, caps[5], sc->fcoecaps,
sysctl_bitfield, "A", "available FCoE capabilities");
- SYSCTL_ADD_INT(ctx, children, OID_AUTO, "core_clock", CTLFLAG_RD, NULL,
- sc->params.vpd.cclk, "core clock frequency (in KHz)");
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO, "core_clock", CTLFLAG_RD,
+ &sc->params.vpd.cclk, 0, "core clock frequency (in KHz)");
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "holdoff_timers",
CTLTYPE_STRING | CTLFLAG_RD, sc->sge.timer_val,
@@ -4192,9 +3251,6 @@
sizeof(sc->sge.counter_val), sysctl_int_array, "A",
"interrupt holdoff packet counter values");
- SYSCTL_ADD_INT(ctx, children, OID_AUTO, "nfilters", CTLFLAG_RD,
- NULL, sc->tids.nftids, "number of filters");
-
#ifdef SBUF_DRAIN
/*
* dev.t4nex.X.misc. Marked CTLFLAG_SKIP to avoid information overload.
@@ -4236,10 +3292,6 @@
CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
sysctl_cim_la, "A", "CIM logic analyzer");
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_ma_la",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
- sysctl_cim_ma_la, "A", "CIM MA logic analyzer");
-
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_obq_ulp0",
CTLTYPE_STRING | CTLFLAG_RD, sc, 0 + CIM_NUM_IBQ,
sysctl_cim_ibq_obq, "A", "CIM OBQ 0 (ULP0)");
@@ -4264,20 +3316,6 @@
CTLTYPE_STRING | CTLFLAG_RD, sc, 5 + CIM_NUM_IBQ,
sysctl_cim_ibq_obq, "A", "CIM OBQ 5 (NCSI)");
- if (is_t5(sc)) {
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_obq_sge0_rx",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 6 + CIM_NUM_IBQ,
- sysctl_cim_ibq_obq, "A", "CIM OBQ 6 (SGE0-RX)");
-
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_obq_sge1_rx",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 7 + CIM_NUM_IBQ,
- sysctl_cim_ibq_obq, "A", "CIM OBQ 7 (SGE1-RX)");
- }
-
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_pif_la",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
- sysctl_cim_pif_la, "A", "CIM PIF logic analyzer");
-
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "cim_qcfg",
CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
sysctl_cim_qcfg, "A", "CIM queue configuration");
@@ -4314,10 +3352,6 @@
CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
sysctl_meminfo, "A", "memory regions");
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "mps_tcam",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
- sysctl_mps_tcam, "A", "MPS TCAM entries");
-
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "path_mtus",
CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
sysctl_path_mtus, "A", "path MTUs");
@@ -4342,23 +3376,9 @@
CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
sysctl_tp_err_stats, "A", "TP error statistics");
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "tp_la",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
- sysctl_tp_la, "A", "TP logic analyzer");
-
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "tx_rate",
CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
sysctl_tx_rate, "A", "Tx rate");
-
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "ulprx_la",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
- sysctl_ulprx_la, "A", "ULPRX logic analyzer");
-
- if (is_t5(sc)) {
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "wcwr_stats",
- CTLTYPE_STRING | CTLFLAG_RD, sc, 0,
- sysctl_wcwr_stats, "A", "write combined work requests");
- }
#endif
#ifdef TCP_OFFLOAD
@@ -4386,10 +3406,6 @@
G_RXCOALESCESIZE(t4_read_reg(sc, A_TP_PARA_REG2));
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "ddp_thres", CTLFLAG_RW,
&sc->tt.ddp_thres, 0, "DDP threshold");
-
- sc->tt.rx_coalesce = 1;
- SYSCTL_ADD_INT(ctx, children, OID_AUTO, "rx_coalesce",
- CTLFLAG_RW, &sc->tt.rx_coalesce, 0, "receive coalescing");
}
#endif
@@ -4412,16 +3428,6 @@
oid = device_get_sysctl_tree(pi->dev);
children = SYSCTL_CHILDREN(oid);
- SYSCTL_ADD_INT(ctx, children, OID_AUTO, "linkdnrc", CTLFLAG_RD,
- &pi->linkdnrc, 0, "reason why link is down");
- if (pi->port_type == FW_PORT_TYPE_BT_XAUI) {
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "temperature",
- CTLTYPE_INT | CTLFLAG_RD, pi, 0, sysctl_btphy, "I",
- "PHY temperature (in Celsius)");
- SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "fw_version",
- CTLTYPE_INT | CTLFLAG_RD, pi, 1, sysctl_btphy, "I",
- "PHY firmware version");
- }
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "nrxq", CTLFLAG_RD,
&pi->nrxq, 0, "# of rx queues");
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "ntxq", CTLFLAG_RD,
@@ -4659,31 +3665,6 @@
}
static int
-sysctl_btphy(SYSCTL_HANDLER_ARGS)
-{
- struct port_info *pi = arg1;
- int op = arg2;
- struct adapter *sc = pi->adapter;
- u_int v;
- int rc;
-
- rc = begin_synchronized_op(sc, pi, SLEEP_OK | INTR_OK, "t4btt");
- if (rc)
- return (rc);
- /* XXX: magic numbers */
- rc = -t4_mdio_rd(sc, sc->mbox, pi->mdio_addr, 0x1e, op ? 0x20 : 0xc820,
- &v);
- end_synchronized_op(sc, 0);
- if (rc)
- return (rc);
- if (op == 0)
- v /= 256;
-
- rc = sysctl_handle_int(oidp, &v, 0, req);
- return (rc);
-}
-
-static int
sysctl_holdoff_tmr_idx(SYSCTL_HANDLER_ARGS)
{
struct port_info *pi = arg1;
@@ -4690,9 +3671,6 @@
struct adapter *sc = pi->adapter;
int idx, rc, i;
struct sge_rxq *rxq;
-#ifdef TCP_OFFLOAD
- struct sge_ofld_rxq *ofld_rxq;
-#endif
uint8_t v;
idx = pi->tmr_idx;
@@ -4717,15 +3695,6 @@
rxq->iq.intr_params = v;
#endif
}
-#ifdef TCP_OFFLOAD
- for_each_ofld_rxq(pi, i, ofld_rxq) {
-#ifdef atomic_store_rel_8
- atomic_store_rel_8(&ofld_rxq->iq.intr_params, v);
-#else
- ofld_rxq->iq.intr_params = v;
-#endif
- }
-#endif
pi->tmr_idx = idx;
end_synchronized_op(sc, LOCK_HELD);
@@ -4874,10 +3843,9 @@
return (rc);
}
-static const char *qname[CIM_NUM_IBQ + CIM_NUM_OBQ_T5] = {
+static const char *qname[CIM_NUM_IBQ + CIM_NUM_OBQ] = {
"TP0", "TP1", "ULP", "SGE0", "SGE1", "NC-SI", /* ibq's */
- "ULP0", "ULP1", "ULP2", "ULP3", "SGE", "NC-SI", /* obq's */
- "SGE0-RX", "SGE1-RX" /* additional obq's (T5 onwards) */
+ "ULP0", "ULP1", "ULP2", "ULP3", "SGE", "NC-SI" /* obq's */
};
static int
@@ -4888,9 +3856,8 @@
int rc, i, n, qid = arg2;
uint32_t *buf, *p;
char *qtype;
- u_int cim_num_obq = is_t4(sc) ? CIM_NUM_OBQ : CIM_NUM_OBQ_T5;
- KASSERT(qid >= 0 && qid < CIM_NUM_IBQ + cim_num_obq,
+ KASSERT(qid >= 0 && qid < nitems(qname),
("%s: bad qid %d\n", __func__, qid));
if (qid < CIM_NUM_IBQ) {
@@ -4903,7 +3870,7 @@
/* outbound queue */
qtype = "OBQ";
qid -= CIM_NUM_IBQ;
- n = 4 * cim_num_obq * CIM_OBQ_SIZE;
+ n = 4 * 6 * CIM_OBQ_SIZE;
buf = malloc(n * sizeof(uint32_t), M_CXGBE, M_ZERO | M_WAITOK);
rc = t4_read_cim_obq(sc, qid, buf, n);
}
@@ -4918,7 +3885,7 @@
if (rc != 0)
goto done;
- sb = sbuf_new_for_sysctl(NULL, NULL, PAGE_SIZE, req);
+ sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
if (sb == NULL) {
rc = ENOMEM;
goto done;
@@ -4999,118 +3966,21 @@
}
static int
-sysctl_cim_ma_la(SYSCTL_HANDLER_ARGS)
-{
- struct adapter *sc = arg1;
- u_int i;
- struct sbuf *sb;
- uint32_t *buf, *p;
- int rc;
-
- rc = sysctl_wire_old_buffer(req, 0);
- if (rc != 0)
- return (rc);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
- if (sb == NULL)
- return (ENOMEM);
-
- buf = malloc(2 * CIM_MALA_SIZE * 5 * sizeof(uint32_t), M_CXGBE,
- M_ZERO | M_WAITOK);
-
- t4_cim_read_ma_la(sc, buf, buf + 5 * CIM_MALA_SIZE);
- p = buf;
-
- for (i = 0; i < CIM_MALA_SIZE; i++, p += 5) {
- sbuf_printf(sb, "\n%02x%08x%08x%08x%08x", p[4], p[3], p[2],
- p[1], p[0]);
- }
-
- sbuf_printf(sb, "\n\nCnt ID Tag UE Data RDY VLD");
- for (i = 0; i < CIM_MALA_SIZE; i++, p += 5) {
- sbuf_printf(sb, "\n%3u %2u %x %u %08x%08x %u %u",
- (p[2] >> 10) & 0xff, (p[2] >> 7) & 7,
- (p[2] >> 3) & 0xf, (p[2] >> 2) & 1,
- (p[1] >> 2) | ((p[2] & 3) << 30),
- (p[0] >> 2) | ((p[1] & 3) << 30), (p[0] >> 1) & 1,
- p[0] & 1);
- }
-
- rc = sbuf_finish(sb);
- sbuf_delete(sb);
- free(buf, M_CXGBE);
- return (rc);
-}
-
-static int
-sysctl_cim_pif_la(SYSCTL_HANDLER_ARGS)
-{
- struct adapter *sc = arg1;
- u_int i;
- struct sbuf *sb;
- uint32_t *buf, *p;
- int rc;
-
- rc = sysctl_wire_old_buffer(req, 0);
- if (rc != 0)
- return (rc);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
- if (sb == NULL)
- return (ENOMEM);
-
- buf = malloc(2 * CIM_PIFLA_SIZE * 6 * sizeof(uint32_t), M_CXGBE,
- M_ZERO | M_WAITOK);
-
- t4_cim_read_pif_la(sc, buf, buf + 6 * CIM_PIFLA_SIZE, NULL, NULL);
- p = buf;
-
- sbuf_printf(sb, "Cntl ID DataBE Addr Data");
- for (i = 0; i < CIM_MALA_SIZE; i++, p += 6) {
- sbuf_printf(sb, "\n %02x %02x %04x %08x %08x%08x%08x%08x",
- (p[5] >> 22) & 0xff, (p[5] >> 16) & 0x3f, p[5] & 0xffff,
- p[4], p[3], p[2], p[1], p[0]);
- }
-
- sbuf_printf(sb, "\n\nCntl ID Data");
- for (i = 0; i < CIM_MALA_SIZE; i++, p += 6) {
- sbuf_printf(sb, "\n %02x %02x %08x%08x%08x%08x",
- (p[4] >> 6) & 0xff, p[4] & 0x3f, p[3], p[2], p[1], p[0]);
- }
-
- rc = sbuf_finish(sb);
- sbuf_delete(sb);
- free(buf, M_CXGBE);
- return (rc);
-}
-
-static int
sysctl_cim_qcfg(SYSCTL_HANDLER_ARGS)
{
struct adapter *sc = arg1;
struct sbuf *sb;
int rc, i;
- uint16_t base[CIM_NUM_IBQ + CIM_NUM_OBQ_T5];
- uint16_t size[CIM_NUM_IBQ + CIM_NUM_OBQ_T5];
+ uint16_t base[CIM_NUM_IBQ + CIM_NUM_OBQ];
+ uint16_t size[CIM_NUM_IBQ + CIM_NUM_OBQ];
uint16_t thres[CIM_NUM_IBQ];
- uint32_t obq_wr[2 * CIM_NUM_OBQ_T5], *wr = obq_wr;
- uint32_t stat[4 * (CIM_NUM_IBQ + CIM_NUM_OBQ_T5)], *p = stat;
- u_int cim_num_obq, ibq_rdaddr, obq_rdaddr, nq;
+ uint32_t obq_wr[2 * CIM_NUM_OBQ], *wr = obq_wr;
+ uint32_t stat[4 * (CIM_NUM_IBQ + CIM_NUM_OBQ)], *p = stat;
- if (is_t4(sc)) {
- cim_num_obq = CIM_NUM_OBQ;
- ibq_rdaddr = A_UP_IBQ_0_RDADDR;
- obq_rdaddr = A_UP_OBQ_0_REALADDR;
- } else {
- cim_num_obq = CIM_NUM_OBQ_T5;
- ibq_rdaddr = A_UP_IBQ_0_SHADOW_RDADDR;
- obq_rdaddr = A_UP_OBQ_0_SHADOW_REALADDR;
- }
- nq = CIM_NUM_IBQ + cim_num_obq;
-
- rc = -t4_cim_read(sc, ibq_rdaddr, 4 * nq, stat);
+ rc = -t4_cim_read(sc, A_UP_IBQ_0_RDADDR, nitems(stat), stat);
if (rc == 0)
- rc = -t4_cim_read(sc, obq_rdaddr, 2 * cim_num_obq, obq_wr);
+ rc = -t4_cim_read(sc, A_UP_OBQ_0_REALADDR, nitems(obq_wr),
+ obq_wr);
if (rc != 0)
return (rc);
@@ -5120,7 +3990,7 @@
if (rc != 0)
return (rc);
- sb = sbuf_new_for_sysctl(NULL, NULL, PAGE_SIZE, req);
+ sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
if (sb == NULL)
return (ENOMEM);
@@ -5127,12 +3997,12 @@
sbuf_printf(sb, "Queue Base Size Thres RdPtr WrPtr SOP EOP Avail");
for (i = 0; i < CIM_NUM_IBQ; i++, p += 4)
- sbuf_printf(sb, "\n%7s %5x %5u %5u %6x %4x %4u %4u %5u",
+ sbuf_printf(sb, "\n%5s %5x %5u %4u %6x %4x %4u %4u %5u",
qname[i], base[i], size[i], thres[i], G_IBQRDADDR(p[0]),
G_IBQWRADDR(p[1]), G_QUESOPCNT(p[3]), G_QUEEOPCNT(p[3]),
G_QUEREMFLITS(p[2]) * 16);
- for ( ; i < nq; i++, p += 4, wr += 2)
- sbuf_printf(sb, "\n%7s %5x %5u %12x %4x %4u %4u %5u", qname[i],
+ for ( ; i < CIM_NUM_IBQ + CIM_NUM_OBQ; i++, p += 4, wr += 2)
+ sbuf_printf(sb, "\n%5s %5x %5u %11x %4x %4u %4u %5u", qname[i],
base[i], size[i], G_QUERDADDR(p[0]) & 0x3fff,
wr[0] - base[i], G_QUESOPCNT(p[3]), G_QUEEOPCNT(p[3]),
G_QUEREMFLITS(p[2]) * 16);
@@ -5247,11 +4117,8 @@
struct sbuf *sb;
uint64_t ftstamp = UINT64_MAX;
- if (dparams->start == 0) {
- dparams->memtype = 0;
- dparams->start = 0x84000;
- dparams->size = 32768;
- }
+ if (dparams->start == 0)
+ return (ENXIO);
nentries = dparams->size / sizeof(struct fw_devlog_e);
@@ -5492,18 +4359,17 @@
struct adapter *sc = arg1;
struct sbuf *sb;
int rc, i, n;
- uint32_t lo, hi, used, alloc;
- static const char *memory[] = {"EDC0:", "EDC1:", "MC:", "MC0:", "MC1:"};
+ uint32_t lo, hi;
+ static const char *memory[] = { "EDC0:", "EDC1:", "MC:" };
static const char *region[] = {
"DBQ contexts:", "IMSG contexts:", "FLM cache:", "TCBs:",
"Pstructs:", "Timers:", "Rx FL:", "Tx FL:", "Pstruct FL:",
"Tx payload:", "Rx payload:", "LE hash:", "iSCSI region:",
"TDDP region:", "TPT region:", "STAG region:", "RQ region:",
- "RQUDP region:", "PBL region:", "TXPBL region:",
- "DBVFIFO region:", "ULPRX state:", "ULPTX state:",
- "On-chip queues:"
+ "RQUDP region:", "PBL region:", "TXPBL region:", "ULPRX state:",
+ "ULPTX state:", "On-chip queues:"
};
- struct mem_desc avail[4];
+ struct mem_desc avail[3];
struct mem_desc mem[nitems(region) + 3]; /* up to 3 holes */
struct mem_desc *md = mem;
@@ -5540,19 +4406,10 @@
if (lo & F_EXT_MEM_ENABLE) {
hi = t4_read_reg(sc, A_MA_EXT_MEMORY_BAR);
avail[i].base = G_EXT_MEM_BASE(hi) << 20;
- avail[i].limit = avail[i].base +
- (G_EXT_MEM_SIZE(hi) << 20);
- avail[i].idx = is_t4(sc) ? 2 : 3; /* Call it MC for T4 */
+ avail[i].limit = avail[i].base + (G_EXT_MEM_SIZE(hi) << 20);
+ avail[i].idx = 2;
i++;
}
- if (!is_t4(sc) && lo & F_EXT_MEM1_ENABLE) {
- hi = t4_read_reg(sc, A_MA_EXT_MEMORY1_BAR);
- avail[i].base = G_EXT_MEM1_BASE(hi) << 20;
- avail[i].limit = avail[i].base +
- (G_EXT_MEM1_SIZE(hi) << 20);
- avail[i].idx = 4;
- i++;
- }
if (!i) /* no memory available */
return 0;
qsort(avail, i, sizeof(struct mem_desc), mem_desc_cmp);
@@ -5604,15 +4461,6 @@
ulp_region(TX_PBL);
#undef ulp_region
- md->base = 0;
- md->idx = nitems(region);
- if (!is_t4(sc) && t4_read_reg(sc, A_SGE_CONTROL2) & F_VFIFO_ENABLE) {
- md->base = G_BASEADDR(t4_read_reg(sc, A_SGE_DBVFIFO_BADDR));
- md->limit = md->base + (G_DBVFIFO_SIZE((t4_read_reg(sc,
- A_SGE_DBVFIFO_SIZE))) << 2) - 1;
- }
- md++;
-
md->base = t4_read_reg(sc, A_ULP_RX_CTX_BASE);
md->limit = md->base + sc->tids.ntids - 1;
md++;
@@ -5677,28 +4525,14 @@
for (i = 0; i < 4; i++) {
lo = t4_read_reg(sc, A_MPS_RX_PG_RSV0 + i * 4);
- if (is_t4(sc)) {
- used = G_USED(lo);
- alloc = G_ALLOC(lo);
- } else {
- used = G_T5_USED(lo);
- alloc = G_T5_ALLOC(lo);
- }
sbuf_printf(sb, "\nPort %d using %u pages out of %u allocated",
- i, used, alloc);
+ i, G_USED(lo), G_ALLOC(lo));
}
for (i = 0; i < 4; i++) {
lo = t4_read_reg(sc, A_MPS_RX_PG_RSV4 + i * 4);
- if (is_t4(sc)) {
- used = G_USED(lo);
- alloc = G_ALLOC(lo);
- } else {
- used = G_T5_USED(lo);
- alloc = G_T5_ALLOC(lo);
- }
sbuf_printf(sb,
"\nLoopback %d using %u pages out of %u allocated",
- i, used, alloc);
+ i, G_USED(lo), G_ALLOC(lo));
}
rc = sbuf_finish(sb);
@@ -5707,105 +4541,7 @@
return (rc);
}
-static inline void
-tcamxy2valmask(uint64_t x, uint64_t y, uint8_t *addr, uint64_t *mask)
-{
- *mask = x | y;
- y = htobe64(y);
- memcpy(addr, (char *)&y + 2, ETHER_ADDR_LEN);
-}
-
static int
-sysctl_mps_tcam(SYSCTL_HANDLER_ARGS)
-{
- struct adapter *sc = arg1;
- struct sbuf *sb;
- int rc, i, n;
-
- rc = sysctl_wire_old_buffer(req, 0);
- if (rc != 0)
- return (rc);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
- if (sb == NULL)
- return (ENOMEM);
-
- sbuf_printf(sb,
- "Idx Ethernet address Mask Vld Ports PF"
- " VF Replication P0 P1 P2 P3 ML");
- n = is_t4(sc) ? NUM_MPS_CLS_SRAM_L_INSTANCES :
- NUM_MPS_T5_CLS_SRAM_L_INSTANCES;
- for (i = 0; i < n; i++) {
- uint64_t tcamx, tcamy, mask;
- uint32_t cls_lo, cls_hi;
- uint8_t addr[ETHER_ADDR_LEN];
-
- tcamy = t4_read_reg64(sc, MPS_CLS_TCAM_Y_L(i));
- tcamx = t4_read_reg64(sc, MPS_CLS_TCAM_X_L(i));
- cls_lo = t4_read_reg(sc, MPS_CLS_SRAM_L(i));
- cls_hi = t4_read_reg(sc, MPS_CLS_SRAM_H(i));
-
- if (tcamx & tcamy)
- continue;
-
- tcamxy2valmask(tcamx, tcamy, addr, &mask);
- sbuf_printf(sb, "\n%3u %02x:%02x:%02x:%02x:%02x:%02x %012jx"
- " %c %#x%4u%4d", i, addr[0], addr[1], addr[2],
- addr[3], addr[4], addr[5], (uintmax_t)mask,
- (cls_lo & F_SRAM_VLD) ? 'Y' : 'N',
- G_PORTMAP(cls_hi), G_PF(cls_lo),
- (cls_lo & F_VF_VALID) ? G_VF(cls_lo) : -1);
-
- if (cls_lo & F_REPLICATE) {
- struct fw_ldst_cmd ldst_cmd;
-
- memset(&ldst_cmd, 0, sizeof(ldst_cmd));
- ldst_cmd.op_to_addrspace =
- htobe32(V_FW_CMD_OP(FW_LDST_CMD) |
- F_FW_CMD_REQUEST | F_FW_CMD_READ |
- V_FW_LDST_CMD_ADDRSPACE(FW_LDST_ADDRSPC_MPS));
- ldst_cmd.cycles_to_len16 = htobe32(FW_LEN16(ldst_cmd));
- ldst_cmd.u.mps.fid_ctl =
- htobe16(V_FW_LDST_CMD_FID(FW_LDST_MPS_RPLC) |
- V_FW_LDST_CMD_CTL(i));
-
- rc = begin_synchronized_op(sc, NULL, SLEEP_OK | INTR_OK,
- "t4mps");
- if (rc)
- break;
- rc = -t4_wr_mbox(sc, sc->mbox, &ldst_cmd,
- sizeof(ldst_cmd), &ldst_cmd);
- end_synchronized_op(sc, 0);
-
- if (rc != 0) {
- sbuf_printf(sb,
- " ------------ error %3u ------------", rc);
- rc = 0;
- } else {
- sbuf_printf(sb, " %08x %08x %08x %08x",
- be32toh(ldst_cmd.u.mps.rplc127_96),
- be32toh(ldst_cmd.u.mps.rplc95_64),
- be32toh(ldst_cmd.u.mps.rplc63_32),
- be32toh(ldst_cmd.u.mps.rplc31_0));
- }
- } else
- sbuf_printf(sb, "%36s", "");
-
- sbuf_printf(sb, "%4u%3u%3u%3u %#3x", G_SRAM_PRIO0(cls_lo),
- G_SRAM_PRIO1(cls_lo), G_SRAM_PRIO2(cls_lo),
- G_SRAM_PRIO3(cls_lo), (cls_lo >> S_MULTILISTEN0) & 0xf);
- }
-
- if (rc)
- (void) sbuf_finish(sb);
- else
- rc = sbuf_finish(sb);
- sbuf_delete(sb);
-
- return (rc);
-}
-
-static int
sysctl_path_mtus(SYSCTL_HANDLER_ARGS)
{
struct adapter *sc = arg1;
@@ -6042,243 +4778,7 @@
return (rc);
}
-struct field_desc {
- const char *name;
- u_int start;
- u_int width;
-};
-
-static void
-field_desc_show(struct sbuf *sb, uint64_t v, const struct field_desc *f)
-{
- char buf[32];
- int line_size = 0;
-
- while (f->name) {
- uint64_t mask = (1ULL << f->width) - 1;
- int len = snprintf(buf, sizeof(buf), "%s: %ju", f->name,
- ((uintmax_t)v >> f->start) & mask);
-
- if (line_size + len >= 79) {
- line_size = 8;
- sbuf_printf(sb, "\n ");
- }
- sbuf_printf(sb, "%s ", buf);
- line_size += len + 1;
- f++;
- }
- sbuf_printf(sb, "\n");
-}
-
-static struct field_desc tp_la0[] = {
- { "RcfOpCodeOut", 60, 4 },
- { "State", 56, 4 },
- { "WcfState", 52, 4 },
- { "RcfOpcSrcOut", 50, 2 },
- { "CRxError", 49, 1 },
- { "ERxError", 48, 1 },
- { "SanityFailed", 47, 1 },
- { "SpuriousMsg", 46, 1 },
- { "FlushInputMsg", 45, 1 },
- { "FlushInputCpl", 44, 1 },
- { "RssUpBit", 43, 1 },
- { "RssFilterHit", 42, 1 },
- { "Tid", 32, 10 },
- { "InitTcb", 31, 1 },
- { "LineNumber", 24, 7 },
- { "Emsg", 23, 1 },
- { "EdataOut", 22, 1 },
- { "Cmsg", 21, 1 },
- { "CdataOut", 20, 1 },
- { "EreadPdu", 19, 1 },
- { "CreadPdu", 18, 1 },
- { "TunnelPkt", 17, 1 },
- { "RcfPeerFin", 16, 1 },
- { "RcfReasonOut", 12, 4 },
- { "TxCchannel", 10, 2 },
- { "RcfTxChannel", 8, 2 },
- { "RxEchannel", 6, 2 },
- { "RcfRxChannel", 5, 1 },
- { "RcfDataOutSrdy", 4, 1 },
- { "RxDvld", 3, 1 },
- { "RxOoDvld", 2, 1 },
- { "RxCongestion", 1, 1 },
- { "TxCongestion", 0, 1 },
- { NULL }
-};
-
-static struct field_desc tp_la1[] = {
- { "CplCmdIn", 56, 8 },
- { "CplCmdOut", 48, 8 },
- { "ESynOut", 47, 1 },
- { "EAckOut", 46, 1 },
- { "EFinOut", 45, 1 },
- { "ERstOut", 44, 1 },
- { "SynIn", 43, 1 },
- { "AckIn", 42, 1 },
- { "FinIn", 41, 1 },
- { "RstIn", 40, 1 },
- { "DataIn", 39, 1 },
- { "DataInVld", 38, 1 },
- { "PadIn", 37, 1 },
- { "RxBufEmpty", 36, 1 },
- { "RxDdp", 35, 1 },
- { "RxFbCongestion", 34, 1 },
- { "TxFbCongestion", 33, 1 },
- { "TxPktSumSrdy", 32, 1 },
- { "RcfUlpType", 28, 4 },
- { "Eread", 27, 1 },
- { "Ebypass", 26, 1 },
- { "Esave", 25, 1 },
- { "Static0", 24, 1 },
- { "Cread", 23, 1 },
- { "Cbypass", 22, 1 },
- { "Csave", 21, 1 },
- { "CPktOut", 20, 1 },
- { "RxPagePoolFull", 18, 2 },
- { "RxLpbkPkt", 17, 1 },
- { "TxLpbkPkt", 16, 1 },
- { "RxVfValid", 15, 1 },
- { "SynLearned", 14, 1 },
- { "SetDelEntry", 13, 1 },
- { "SetInvEntry", 12, 1 },
- { "CpcmdDvld", 11, 1 },
- { "CpcmdSave", 10, 1 },
- { "RxPstructsFull", 8, 2 },
- { "EpcmdDvld", 7, 1 },
- { "EpcmdFlush", 6, 1 },
- { "EpcmdTrimPrefix", 5, 1 },
- { "EpcmdTrimPostfix", 4, 1 },
- { "ERssIp4Pkt", 3, 1 },
- { "ERssIp6Pkt", 2, 1 },
- { "ERssTcpUdpPkt", 1, 1 },
- { "ERssFceFipPkt", 0, 1 },
- { NULL }
-};
-
-static struct field_desc tp_la2[] = {
- { "CplCmdIn", 56, 8 },
- { "MpsVfVld", 55, 1 },
- { "MpsPf", 52, 3 },
- { "MpsVf", 44, 8 },
- { "SynIn", 43, 1 },
- { "AckIn", 42, 1 },
- { "FinIn", 41, 1 },
- { "RstIn", 40, 1 },
- { "DataIn", 39, 1 },
- { "DataInVld", 38, 1 },
- { "PadIn", 37, 1 },
- { "RxBufEmpty", 36, 1 },
- { "RxDdp", 35, 1 },
- { "RxFbCongestion", 34, 1 },
- { "TxFbCongestion", 33, 1 },
- { "TxPktSumSrdy", 32, 1 },
- { "RcfUlpType", 28, 4 },
- { "Eread", 27, 1 },
- { "Ebypass", 26, 1 },
- { "Esave", 25, 1 },
- { "Static0", 24, 1 },
- { "Cread", 23, 1 },
- { "Cbypass", 22, 1 },
- { "Csave", 21, 1 },
- { "CPktOut", 20, 1 },
- { "RxPagePoolFull", 18, 2 },
- { "RxLpbkPkt", 17, 1 },
- { "TxLpbkPkt", 16, 1 },
- { "RxVfValid", 15, 1 },
- { "SynLearned", 14, 1 },
- { "SetDelEntry", 13, 1 },
- { "SetInvEntry", 12, 1 },
- { "CpcmdDvld", 11, 1 },
- { "CpcmdSave", 10, 1 },
- { "RxPstructsFull", 8, 2 },
- { "EpcmdDvld", 7, 1 },
- { "EpcmdFlush", 6, 1 },
- { "EpcmdTrimPrefix", 5, 1 },
- { "EpcmdTrimPostfix", 4, 1 },
- { "ERssIp4Pkt", 3, 1 },
- { "ERssIp6Pkt", 2, 1 },
- { "ERssTcpUdpPkt", 1, 1 },
- { "ERssFceFipPkt", 0, 1 },
- { NULL }
-};
-
-static void
-tp_la_show(struct sbuf *sb, uint64_t *p, int idx)
-{
-
- field_desc_show(sb, *p, tp_la0);
-}
-
-static void
-tp_la_show2(struct sbuf *sb, uint64_t *p, int idx)
-{
-
- if (idx)
- sbuf_printf(sb, "\n");
- field_desc_show(sb, p[0], tp_la0);
- if (idx < (TPLA_SIZE / 2 - 1) || p[1] != ~0ULL)
- field_desc_show(sb, p[1], tp_la0);
-}
-
-static void
-tp_la_show3(struct sbuf *sb, uint64_t *p, int idx)
-{
-
- if (idx)
- sbuf_printf(sb, "\n");
- field_desc_show(sb, p[0], tp_la0);
- if (idx < (TPLA_SIZE / 2 - 1) || p[1] != ~0ULL)
- field_desc_show(sb, p[1], (p[0] & (1 << 17)) ? tp_la2 : tp_la1);
-}
-
static int
-sysctl_tp_la(SYSCTL_HANDLER_ARGS)
-{
- struct adapter *sc = arg1;
- struct sbuf *sb;
- uint64_t *buf, *p;
- int rc;
- u_int i, inc;
- void (*show_func)(struct sbuf *, uint64_t *, int);
-
- rc = sysctl_wire_old_buffer(req, 0);
- if (rc != 0)
- return (rc);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
- if (sb == NULL)
- return (ENOMEM);
-
- buf = malloc(TPLA_SIZE * sizeof(uint64_t), M_CXGBE, M_ZERO | M_WAITOK);
-
- t4_tp_read_la(sc, buf, NULL);
- p = buf;
-
- switch (G_DBGLAMODE(t4_read_reg(sc, A_TP_DBG_LA_CONFIG))) {
- case 2:
- inc = 2;
- show_func = tp_la_show2;
- break;
- case 3:
- inc = 2;
- show_func = tp_la_show3;
- break;
- default:
- inc = 1;
- show_func = tp_la_show;
- }
-
- for (i = 0; i < TPLA_SIZE / inc; i++, p += inc)
- (*show_func)(sb, p, i);
-
- rc = sbuf_finish(sb);
- sbuf_delete(sb);
- free(buf, M_CXGBE);
- return (rc);
-}
-
-static int
sysctl_tx_rate(SYSCTL_HANDLER_ARGS)
{
struct adapter *sc = arg1;
@@ -6307,74 +4807,6 @@
return (rc);
}
-
-static int
-sysctl_ulprx_la(SYSCTL_HANDLER_ARGS)
-{
- struct adapter *sc = arg1;
- struct sbuf *sb;
- uint32_t *buf, *p;
- int rc, i;
-
- rc = sysctl_wire_old_buffer(req, 0);
- if (rc != 0)
- return (rc);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
- if (sb == NULL)
- return (ENOMEM);
-
- buf = malloc(ULPRX_LA_SIZE * 8 * sizeof(uint32_t), M_CXGBE,
- M_ZERO | M_WAITOK);
-
- t4_ulprx_read_la(sc, buf);
- p = buf;
-
- sbuf_printf(sb, " Pcmd Type Message"
- " Data");
- for (i = 0; i < ULPRX_LA_SIZE; i++, p += 8) {
- sbuf_printf(sb, "\n%08x%08x %4x %08x %08x%08x%08x%08x",
- p[1], p[0], p[2], p[3], p[7], p[6], p[5], p[4]);
- }
-
- rc = sbuf_finish(sb);
- sbuf_delete(sb);
- free(buf, M_CXGBE);
- return (rc);
-}
-
-static int
-sysctl_wcwr_stats(SYSCTL_HANDLER_ARGS)
-{
- struct adapter *sc = arg1;
- struct sbuf *sb;
- int rc, v;
-
- rc = sysctl_wire_old_buffer(req, 0);
- if (rc != 0)
- return (rc);
-
- sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req);
- if (sb == NULL)
- return (ENOMEM);
-
- v = t4_read_reg(sc, A_SGE_STAT_CFG);
- if (G_STATSOURCE_T5(v) == 7) {
- if (G_STATMODE(v) == 0) {
- sbuf_printf(sb, "total %d, incomplete %d",
- t4_read_reg(sc, A_SGE_STAT_TOTAL),
- t4_read_reg(sc, A_SGE_STAT_MATCH));
- } else if (G_STATMODE(v) == 1) {
- sbuf_printf(sb, "total %d, data overflow %d",
- t4_read_reg(sc, A_SGE_STAT_TOTAL),
- t4_read_reg(sc, A_SGE_STAT_MATCH));
- }
- }
- rc = sbuf_finish(sb);
- sbuf_delete(sb);
-
- return (rc);
-}
#endif
static inline void
@@ -6576,14 +5008,13 @@
t4_read_indirect(sc, A_TP_PIO_ADDR, A_TP_PIO_DATA, &fconf, 1,
A_TP_VLAN_PRI_MAP);
- if (sc->params.tp.vlan_pri_map != fconf) {
+ if (sc->filter_mode != fconf) {
log(LOG_WARNING, "%s: cached filter mode out of sync %x %x.\n",
- device_get_nameunit(sc->dev), sc->params.tp.vlan_pri_map,
- fconf);
- sc->params.tp.vlan_pri_map = fconf;
+ device_get_nameunit(sc->dev), sc->filter_mode, fconf);
+ sc->filter_mode = fconf;
}
- *mode = fconf_to_mode(sc->params.tp.vlan_pri_map);
+ *mode = fconf_to_mode(sc->filter_mode);
end_synchronized_op(sc, LOCK_HELD);
return (0);
@@ -6630,21 +5061,15 @@
static inline uint64_t
get_filter_hits(struct adapter *sc, uint32_t fid)
{
- uint32_t mw_base, off, tcb_base = t4_read_reg(sc, A_TP_CMM_TCB_BASE);
+ uint32_t tcb_base = t4_read_reg(sc, A_TP_CMM_TCB_BASE);
uint64_t hits;
- memwin_info(sc, 0, &mw_base, NULL);
- off = position_memwin(sc, 0,
+ t4_write_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 0),
tcb_base + (fid + sc->tids.ftid_base) * TCB_SIZE);
- if (is_t4(sc)) {
- hits = t4_read_reg64(sc, mw_base + off + 16);
- hits = be64toh(hits);
- } else {
- hits = t4_read_reg(sc, mw_base + off + 24);
- hits = be32toh(hits);
- }
+ t4_read_reg(sc, PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 0));
+ hits = t4_read_reg64(sc, MEMWIN0_BASE + 16);
- return (hits);
+ return (be64toh(hits));
}
static int
@@ -6716,8 +5141,7 @@
}
/* Validate against the global filter mode */
- if ((sc->params.tp.vlan_pri_map | fspec_to_fconf(&t->fs)) !=
- sc->params.tp.vlan_pri_map) {
+ if ((sc->filter_mode | fspec_to_fconf(&t->fs)) != sc->filter_mode) {
rc = E2BIG;
goto done;
}
@@ -7109,43 +5533,80 @@
}
static int
-read_card_mem(struct adapter *sc, int win, struct t4_mem_range *mr)
+read_card_mem(struct adapter *sc, struct t4_mem_range *mr)
{
- uint32_t addr, off, remaining, i, n;
+ uint32_t base, size, lo, hi, win, off, remaining, i, n;
uint32_t *buf, *b;
- uint32_t mw_base, mw_aperture;
int rc;
- uint8_t *dst;
- rc = validate_mem_range(sc, mr->addr, mr->len);
- if (rc != 0)
- return (rc);
+ /* reads are in multiples of 32 bits */
+ if (mr->addr & 3 || mr->len & 3 || mr->len == 0)
+ return (EINVAL);
- memwin_info(sc, win, &mw_base, &mw_aperture);
- buf = b = malloc(min(mr->len, mw_aperture), M_CXGBE, M_WAITOK);
- addr = mr->addr;
+ /*
+ * We don't want to deal with potential holes so we mandate that the
+ * requested region must lie entirely within one of the 3 memories.
+ */
+ lo = t4_read_reg(sc, A_MA_TARGET_MEM_ENABLE);
+ if (lo & F_EDRAM0_ENABLE) {
+ hi = t4_read_reg(sc, A_MA_EDRAM0_BAR);
+ base = G_EDRAM0_BASE(hi) << 20;
+ size = G_EDRAM0_SIZE(hi) << 20;
+ if (size > 0 &&
+ mr->addr >= base && mr->addr < base + size &&
+ mr->addr + mr->len <= base + size)
+ goto proceed;
+ }
+ if (lo & F_EDRAM1_ENABLE) {
+ hi = t4_read_reg(sc, A_MA_EDRAM1_BAR);
+ base = G_EDRAM1_BASE(hi) << 20;
+ size = G_EDRAM1_SIZE(hi) << 20;
+ if (size > 0 &&
+ mr->addr >= base && mr->addr < base + size &&
+ mr->addr + mr->len <= base + size)
+ goto proceed;
+ }
+ if (lo & F_EXT_MEM_ENABLE) {
+ hi = t4_read_reg(sc, A_MA_EXT_MEMORY_BAR);
+ base = G_EXT_MEM_BASE(hi) << 20;
+ size = G_EXT_MEM_SIZE(hi) << 20;
+ if (size > 0 &&
+ mr->addr >= base && mr->addr < base + size &&
+ mr->addr + mr->len <= base + size)
+ goto proceed;
+ }
+ return (ENXIO);
+
+proceed:
+ buf = b = malloc(mr->len, M_CXGBE, M_WAITOK);
+
+ /*
+ * Position the PCIe window (we use memwin2) to the 16B aligned area
+ * just at/before the requested region.
+ */
+ win = mr->addr & ~0xf;
+ off = mr->addr - win; /* offset of the requested region in the win */
remaining = mr->len;
- dst = (void *)mr->data;
while (remaining) {
- off = position_memwin(sc, win, addr);
+ t4_write_reg(sc,
+ PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2), win);
+ t4_read_reg(sc,
+ PCIE_MEM_ACCESS_REG(A_PCIE_MEM_ACCESS_OFFSET, 2));
/* number of bytes that we'll copy in the inner loop */
- n = min(remaining, mw_aperture - off);
- for (i = 0; i < n; i += 4)
- *b++ = t4_read_reg(sc, mw_base + off + i);
+ n = min(remaining, MEMWIN2_APERTURE - off);
- rc = copyout(buf, dst, n);
- if (rc != 0)
- break;
+ for (i = 0; i < n; i += 4, remaining -= 4)
+ *b++ = t4_read_reg(sc, MEMWIN2_BASE + off + i);
- b = buf;
- dst += n;
- remaining -= n;
- addr += n;
+ win += MEMWIN2_APERTURE;
+ off = 0;
}
+ rc = copyout(buf, mr->data, mr->len);
free(buf, M_CXGBE);
+
return (rc);
}
@@ -7230,20 +5691,16 @@
}
void
-t4_os_link_changed(struct adapter *sc, int idx, int link_stat, int reason)
+t4_os_link_changed(struct adapter *sc, int idx, int link_stat)
{
struct port_info *pi = sc->port[idx];
struct ifnet *ifp = pi->ifp;
if (link_stat) {
- pi->linkdnrc = -1;
ifp->if_baudrate = IF_Mbps(pi->link_cfg.speed);
if_link_state_change(ifp, LINK_STATE_UP);
- } else {
- if (reason >= 0)
- pi->linkdnrc = reason;
+ } else
if_link_state_change(ifp, LINK_STATE_DOWN);
- }
}
void
@@ -7319,7 +5776,7 @@
}
case CHELSIO_T4_REGDUMP: {
struct t4_regdump *regs = (struct t4_regdump *)data;
- int reglen = is_t4(sc) ? T4_REGDUMP_SIZE : T5_REGDUMP_SIZE;
+ int reglen = T4_REGDUMP_SIZE;
uint8_t *buf;
if (regs->len < reglen) {
@@ -7356,7 +5813,7 @@
rc = load_fw(sc, (struct t4_data *)data);
break;
case CHELSIO_T4_GET_MEM:
- rc = read_card_mem(sc, 2, (struct t4_mem_range *)data);
+ rc = read_card_mem(sc, (struct t4_mem_range *)data);
break;
case CHELSIO_T4_GET_I2C:
rc = read_i2c(sc, (struct t4_i2c_data *)data);
@@ -7635,15 +6092,12 @@
}
static int
-mod_event(module_t mod, int cmd, void *arg)
+t4_mod_event(module_t mod, int cmd, void *arg)
{
int rc = 0;
- static int loaded = 0;
switch (cmd) {
case MOD_LOAD:
- if (atomic_fetchadd_int(&loaded, 1))
- break;
t4_sge_modload();
mtx_init(&t4_list_lock, "T4 adapters", 0, MTX_DEF);
SLIST_INIT(&t4_list);
@@ -7655,8 +6109,6 @@
break;
case MOD_UNLOAD:
- if (atomic_fetchadd_int(&loaded, -1) > 1)
- break;
#ifdef TCP_OFFLOAD
mtx_lock(&t4_uld_list_lock);
if (!SLIST_EMPTY(&t4_uld_list)) {
@@ -7681,19 +6133,11 @@
return (rc);
}
-static devclass_t t4_devclass, t5_devclass;
-static devclass_t cxgbe_devclass, cxl_devclass;
+static devclass_t t4_devclass;
+static devclass_t cxgbe_devclass;
-DRIVER_MODULE(t4nex, pci, t4_driver, t4_devclass, mod_event, 0);
+DRIVER_MODULE(t4nex, pci, t4_driver, t4_devclass, t4_mod_event, 0);
MODULE_VERSION(t4nex, 1);
-MODULE_DEPEND(t4nex, firmware, 1, 1, 1);
-DRIVER_MODULE(t5nex, pci, t5_driver, t5_devclass, mod_event, 0);
-MODULE_VERSION(t5nex, 1);
-MODULE_DEPEND(t5nex, firmware, 1, 1, 1);
-
DRIVER_MODULE(cxgbe, t4nex, cxgbe_driver, cxgbe_devclass, 0, 0);
MODULE_VERSION(cxgbe, 1);
-
-DRIVER_MODULE(cxl, t5nex, cxl_driver, cxl_devclass, 0, 0);
-MODULE_VERSION(cxl, 1);
Modified: trunk/sys/dev/cxgbe/t4_sge.c
===================================================================
--- trunk/sys/dev/cxgbe/t4_sge.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/t4_sge.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/t4_sge.c 252814 2013-07-05 18:27:38Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/t4_sge.c 248078 2013-03-09 00:39:54Z marius $");
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -68,12 +68,6 @@
#define FL_BUF_TYPE(x) (fl_buf_info[x].type)
#define FL_BUF_ZONE(x) (fl_buf_info[x].zone)
-#ifdef T4_PKT_TIMESTAMP
-#define RX_COPY_THRESHOLD (MINCLSIZE - 8)
-#else
-#define RX_COPY_THRESHOLD MINCLSIZE
-#endif
-
/*
* Ethernet frames are DMA'd at this byte offset into the freelist buffer.
* 0-7 are valid values.
@@ -268,42 +262,29 @@
}
}
-void
-t4_init_sge_cpl_handlers(struct adapter *sc)
-{
-
- t4_register_cpl_handler(sc, CPL_FW4_MSG, handle_fw_msg);
- t4_register_cpl_handler(sc, CPL_FW6_MSG, handle_fw_msg);
- t4_register_cpl_handler(sc, CPL_SGE_EGR_UPDATE, handle_sge_egr_update);
- t4_register_cpl_handler(sc, CPL_RX_PKT, t4_eth_rx);
-
- t4_register_fw_msg_handler(sc, FW6_TYPE_CMD_RPL, t4_handle_fw_rpl);
-}
-
-/*
- * adap->params.vpd.cclk must be set up before this is called.
+/**
+ * t4_sge_init - initialize SGE
+ * @sc: the adapter
+ *
+ * Performs SGE initialization needed every time after a chip reset.
+ * We do not initialize any of the queues here, instead the driver
+ * top-level must request them individually.
*/
-void
-t4_tweak_chip_settings(struct adapter *sc)
+int
+t4_sge_init(struct adapter *sc)
{
- int i;
- uint32_t v, m;
- int intr_timer[SGE_NTIMERS] = {1, 5, 10, 50, 100, 200};
- int timer_max = M_TIMERVALUE0 * 1000 / sc->params.vpd.cclk;
- int intr_pktcount[SGE_NCOUNTERS] = {1, 8, 16, 32}; /* 63 max */
- uint16_t indsz = min(RX_COPY_THRESHOLD - 1, M_INDICATESIZE);
+ struct sge *s = &sc->sge;
+ int i, rc = 0;
+ uint32_t ctrl_mask, ctrl_val, hpsize, v;
- KASSERT(sc->flags & MASTER_PF,
- ("%s: trying to change chip settings when not master.", __func__));
-
- m = V_PKTSHIFT(M_PKTSHIFT) | F_RXPKTCPLMODE |
- V_INGPADBOUNDARY(M_INGPADBOUNDARY) | F_EGRSTATUSPAGESIZE;
- v = V_PKTSHIFT(fl_pktshift) | F_RXPKTCPLMODE |
+ ctrl_mask = V_PKTSHIFT(M_PKTSHIFT) | F_RXPKTCPLMODE |
+ V_INGPADBOUNDARY(M_INGPADBOUNDARY) |
+ F_EGRSTATUSPAGESIZE;
+ ctrl_val = V_PKTSHIFT(fl_pktshift) | F_RXPKTCPLMODE |
V_INGPADBOUNDARY(ilog2(fl_pad) - 5) |
V_EGRSTATUSPAGESIZE(spg_len == 128);
- t4_set_reg_field(sc, A_SGE_CONTROL, m, v);
- v = V_HOSTPAGESIZEPF0(PAGE_SHIFT - 10) |
+ hpsize = V_HOSTPAGESIZEPF0(PAGE_SHIFT - 10) |
V_HOSTPAGESIZEPF1(PAGE_SHIFT - 10) |
V_HOSTPAGESIZEPF2(PAGE_SHIFT - 10) |
V_HOSTPAGESIZEPF3(PAGE_SHIFT - 10) |
@@ -311,97 +292,50 @@
V_HOSTPAGESIZEPF5(PAGE_SHIFT - 10) |
V_HOSTPAGESIZEPF6(PAGE_SHIFT - 10) |
V_HOSTPAGESIZEPF7(PAGE_SHIFT - 10);
- t4_write_reg(sc, A_SGE_HOST_PAGE_SIZE, v);
- for (i = 0; i < FL_BUF_SIZES; i++) {
- t4_write_reg(sc, A_SGE_FL_BUFFER_SIZE0 + (4 * i),
- FL_BUF_SIZE(i));
- }
+ if (sc->flags & MASTER_PF) {
+ int intr_timer[SGE_NTIMERS] = {1, 5, 10, 50, 100, 200};
+ int intr_pktcount[SGE_NCOUNTERS] = {1, 8, 16, 32}; /* 63 max */
- v = V_THRESHOLD_0(intr_pktcount[0]) | V_THRESHOLD_1(intr_pktcount[1]) |
- V_THRESHOLD_2(intr_pktcount[2]) | V_THRESHOLD_3(intr_pktcount[3]);
- t4_write_reg(sc, A_SGE_INGRESS_RX_THRESHOLD, v);
+ t4_set_reg_field(sc, A_SGE_CONTROL, ctrl_mask, ctrl_val);
+ t4_write_reg(sc, A_SGE_HOST_PAGE_SIZE, hpsize);
+ for (i = 0; i < FL_BUF_SIZES; i++) {
+ t4_write_reg(sc, A_SGE_FL_BUFFER_SIZE0 + (4 * i),
+ FL_BUF_SIZE(i));
+ }
- KASSERT(intr_timer[0] <= timer_max,
- ("%s: not a single usable timer (%d, %d)", __func__, intr_timer[0],
- timer_max));
- for (i = 1; i < nitems(intr_timer); i++) {
- KASSERT(intr_timer[i] >= intr_timer[i - 1],
- ("%s: timers not listed in increasing order (%d)",
- __func__, i));
+ t4_write_reg(sc, A_SGE_INGRESS_RX_THRESHOLD,
+ V_THRESHOLD_0(intr_pktcount[0]) |
+ V_THRESHOLD_1(intr_pktcount[1]) |
+ V_THRESHOLD_2(intr_pktcount[2]) |
+ V_THRESHOLD_3(intr_pktcount[3]));
- while (intr_timer[i] > timer_max) {
- if (i == nitems(intr_timer) - 1) {
- intr_timer[i] = timer_max;
- break;
- }
- intr_timer[i] += intr_timer[i - 1];
- intr_timer[i] /= 2;
+ t4_write_reg(sc, A_SGE_TIMER_VALUE_0_AND_1,
+ V_TIMERVALUE0(us_to_core_ticks(sc, intr_timer[0])) |
+ V_TIMERVALUE1(us_to_core_ticks(sc, intr_timer[1])));
+ t4_write_reg(sc, A_SGE_TIMER_VALUE_2_AND_3,
+ V_TIMERVALUE2(us_to_core_ticks(sc, intr_timer[2])) |
+ V_TIMERVALUE3(us_to_core_ticks(sc, intr_timer[3])));
+ t4_write_reg(sc, A_SGE_TIMER_VALUE_4_AND_5,
+ V_TIMERVALUE4(us_to_core_ticks(sc, intr_timer[4])) |
+ V_TIMERVALUE5(us_to_core_ticks(sc, intr_timer[5])));
+
+ if (cong_drop == 0) {
+ t4_set_reg_field(sc, A_TP_PARA_REG3, F_TUNNELCNGDROP0 |
+ F_TUNNELCNGDROP1 | F_TUNNELCNGDROP2 |
+ F_TUNNELCNGDROP3, 0);
}
}
- v = V_TIMERVALUE0(us_to_core_ticks(sc, intr_timer[0])) |
- V_TIMERVALUE1(us_to_core_ticks(sc, intr_timer[1]));
- t4_write_reg(sc, A_SGE_TIMER_VALUE_0_AND_1, v);
- v = V_TIMERVALUE2(us_to_core_ticks(sc, intr_timer[2])) |
- V_TIMERVALUE3(us_to_core_ticks(sc, intr_timer[3]));
- t4_write_reg(sc, A_SGE_TIMER_VALUE_2_AND_3, v);
- v = V_TIMERVALUE4(us_to_core_ticks(sc, intr_timer[4])) |
- V_TIMERVALUE5(us_to_core_ticks(sc, intr_timer[5]));
- t4_write_reg(sc, A_SGE_TIMER_VALUE_4_AND_5, v);
-
- if (cong_drop == 0) {
- m = F_TUNNELCNGDROP0 | F_TUNNELCNGDROP1 | F_TUNNELCNGDROP2 |
- F_TUNNELCNGDROP3;
- t4_set_reg_field(sc, A_TP_PARA_REG3, m, 0);
- }
-
- /* 4K, 16K, 64K, 256K DDP "page sizes" */
- v = V_HPZ0(0) | V_HPZ1(2) | V_HPZ2(4) | V_HPZ3(6);
- t4_write_reg(sc, A_ULP_RX_TDDP_PSZ, v);
-
- m = v = F_TDDPTAGTCB;
- t4_set_reg_field(sc, A_ULP_RX_CTL, m, v);
-
- m = V_INDICATESIZE(M_INDICATESIZE) | F_REARMDDPOFFSET |
- F_RESETDDPOFFSET;
- v = V_INDICATESIZE(indsz) | F_REARMDDPOFFSET | F_RESETDDPOFFSET;
- t4_set_reg_field(sc, A_TP_PARA_REG5, m, v);
-}
-
-/*
- * XXX: driver really should be able to deal with unexpected settings.
- */
-int
-t4_read_chip_settings(struct adapter *sc)
-{
- struct sge *s = &sc->sge;
- int i, rc = 0;
- uint32_t m, v, r;
- uint16_t indsz = min(RX_COPY_THRESHOLD - 1, M_INDICATESIZE);
-
- m = V_PKTSHIFT(M_PKTSHIFT) | F_RXPKTCPLMODE |
- V_INGPADBOUNDARY(M_INGPADBOUNDARY) | F_EGRSTATUSPAGESIZE;
- v = V_PKTSHIFT(fl_pktshift) | F_RXPKTCPLMODE |
- V_INGPADBOUNDARY(ilog2(fl_pad) - 5) |
- V_EGRSTATUSPAGESIZE(spg_len == 128);
- r = t4_read_reg(sc, A_SGE_CONTROL);
- if ((r & m) != v) {
- device_printf(sc->dev, "invalid SGE_CONTROL(0x%x)\n", r);
+ v = t4_read_reg(sc, A_SGE_CONTROL);
+ if ((v & ctrl_mask) != ctrl_val) {
+ device_printf(sc->dev, "invalid SGE_CONTROL(0x%x)\n", v);
rc = EINVAL;
}
- v = V_HOSTPAGESIZEPF0(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF1(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF2(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF3(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF4(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF5(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF6(PAGE_SHIFT - 10) |
- V_HOSTPAGESIZEPF7(PAGE_SHIFT - 10);
- r = t4_read_reg(sc, A_SGE_HOST_PAGE_SIZE);
- if (r != v) {
- device_printf(sc->dev, "invalid SGE_HOST_PAGE_SIZE(0x%x)\n", r);
+ v = t4_read_reg(sc, A_SGE_HOST_PAGE_SIZE);
+ if (v != hpsize) {
+ device_printf(sc->dev, "invalid SGE_HOST_PAGE_SIZE(0x%x)\n", v);
rc = EINVAL;
}
@@ -414,71 +348,32 @@
}
}
- r = t4_read_reg(sc, A_SGE_INGRESS_RX_THRESHOLD);
- s->counter_val[0] = G_THRESHOLD_0(r);
- s->counter_val[1] = G_THRESHOLD_1(r);
- s->counter_val[2] = G_THRESHOLD_2(r);
- s->counter_val[3] = G_THRESHOLD_3(r);
+ v = t4_read_reg(sc, A_SGE_CONM_CTRL);
+ s->fl_starve_threshold = G_EGRTHRESHOLD(v) * 2 + 1;
- r = t4_read_reg(sc, A_SGE_TIMER_VALUE_0_AND_1);
- s->timer_val[0] = G_TIMERVALUE0(r) / core_ticks_per_usec(sc);
- s->timer_val[1] = G_TIMERVALUE1(r) / core_ticks_per_usec(sc);
- r = t4_read_reg(sc, A_SGE_TIMER_VALUE_2_AND_3);
- s->timer_val[2] = G_TIMERVALUE2(r) / core_ticks_per_usec(sc);
- s->timer_val[3] = G_TIMERVALUE3(r) / core_ticks_per_usec(sc);
- r = t4_read_reg(sc, A_SGE_TIMER_VALUE_4_AND_5);
- s->timer_val[4] = G_TIMERVALUE4(r) / core_ticks_per_usec(sc);
- s->timer_val[5] = G_TIMERVALUE5(r) / core_ticks_per_usec(sc);
+ v = t4_read_reg(sc, A_SGE_INGRESS_RX_THRESHOLD);
+ sc->sge.counter_val[0] = G_THRESHOLD_0(v);
+ sc->sge.counter_val[1] = G_THRESHOLD_1(v);
+ sc->sge.counter_val[2] = G_THRESHOLD_2(v);
+ sc->sge.counter_val[3] = G_THRESHOLD_3(v);
- if (cong_drop == 0) {
- m = F_TUNNELCNGDROP0 | F_TUNNELCNGDROP1 | F_TUNNELCNGDROP2 |
- F_TUNNELCNGDROP3;
- r = t4_read_reg(sc, A_TP_PARA_REG3);
- if (r & m) {
- device_printf(sc->dev,
- "invalid TP_PARA_REG3(0x%x)\n", r);
- rc = EINVAL;
- }
- }
+ v = t4_read_reg(sc, A_SGE_TIMER_VALUE_0_AND_1);
+ sc->sge.timer_val[0] = G_TIMERVALUE0(v) / core_ticks_per_usec(sc);
+ sc->sge.timer_val[1] = G_TIMERVALUE1(v) / core_ticks_per_usec(sc);
+ v = t4_read_reg(sc, A_SGE_TIMER_VALUE_2_AND_3);
+ sc->sge.timer_val[2] = G_TIMERVALUE2(v) / core_ticks_per_usec(sc);
+ sc->sge.timer_val[3] = G_TIMERVALUE3(v) / core_ticks_per_usec(sc);
+ v = t4_read_reg(sc, A_SGE_TIMER_VALUE_4_AND_5);
+ sc->sge.timer_val[4] = G_TIMERVALUE4(v) / core_ticks_per_usec(sc);
+ sc->sge.timer_val[5] = G_TIMERVALUE5(v) / core_ticks_per_usec(sc);
- v = V_HPZ0(0) | V_HPZ1(2) | V_HPZ2(4) | V_HPZ3(6);
- r = t4_read_reg(sc, A_ULP_RX_TDDP_PSZ);
- if (r != v) {
- device_printf(sc->dev, "invalid ULP_RX_TDDP_PSZ(0x%x)\n", r);
- rc = EINVAL;
- }
+ t4_register_cpl_handler(sc, CPL_FW4_MSG, handle_fw_msg);
+ t4_register_cpl_handler(sc, CPL_FW6_MSG, handle_fw_msg);
+ t4_register_cpl_handler(sc, CPL_SGE_EGR_UPDATE, handle_sge_egr_update);
+ t4_register_cpl_handler(sc, CPL_RX_PKT, t4_eth_rx);
- m = v = F_TDDPTAGTCB;
- r = t4_read_reg(sc, A_ULP_RX_CTL);
- if ((r & m) != v) {
- device_printf(sc->dev, "invalid ULP_RX_CTL(0x%x)\n", r);
- rc = EINVAL;
- }
+ t4_register_fw_msg_handler(sc, FW6_TYPE_CMD_RPL, t4_handle_fw_rpl);
- m = V_INDICATESIZE(M_INDICATESIZE) | F_REARMDDPOFFSET |
- F_RESETDDPOFFSET;
- v = V_INDICATESIZE(indsz) | F_REARMDDPOFFSET | F_RESETDDPOFFSET;
- r = t4_read_reg(sc, A_TP_PARA_REG5);
- if ((r & m) != v) {
- device_printf(sc->dev, "invalid TP_PARA_REG5(0x%x)\n", r);
- rc = EINVAL;
- }
-
- r = t4_read_reg(sc, A_SGE_CONM_CTRL);
- s->fl_starve_threshold = G_EGRTHRESHOLD(r) * 2 + 1;
-
- if (is_t5(sc)) {
- r = t4_read_reg(sc, A_SGE_EGRESS_QUEUES_PER_PAGE_PF);
- r >>= S_QUEUESPERPAGEPF0 +
- (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf;
- s->s_qpp = r & M_QUEUESPERPAGEPF0;
- }
-
- t4_init_tp_params(sc);
-
- t4_read_mtu_tbl(sc, sc->params.mtus, NULL);
- t4_load_mtus(sc, sc->params.mtus, sc->params.a_wnd, sc->params.b_wnd);
-
return (rc);
}
@@ -654,23 +549,11 @@
/* large enough for a frame even when VLAN extraction is disabled */
bufsize = ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN + mtu;
- bufsize = roundup2(bufsize + fl_pktshift, fl_pad);
+ bufsize = roundup(bufsize + fl_pktshift, fl_pad);
return (bufsize);
}
-#ifdef TCP_OFFLOAD
-static inline int
-mtu_to_bufsize_toe(struct adapter *sc, int mtu)
-{
-
- if (sc->tt.rx_coalesce)
- return (G_RXCOALESCESIZE(t4_read_reg(sc, A_TP_PARA_REG2)));
-
- return (mtu);
-}
-#endif
-
int
t4_setup_port_queues(struct port_info *pi)
{
@@ -685,10 +568,9 @@
#endif
char name[16];
struct adapter *sc = pi->adapter;
- struct ifnet *ifp = pi->ifp;
struct sysctl_oid *oid = device_get_sysctl_tree(pi->dev);
struct sysctl_oid_list *children = SYSCTL_CHILDREN(oid);
- int bufsize;
+ int bufsize = mtu_to_bufsize(pi->ifp->if_mtu);
oid = SYSCTL_ADD_NODE(&pi->ctx, children, OID_AUTO, "rxq", CTLFLAG_RD,
NULL, "rx queues");
@@ -709,7 +591,6 @@
* a) initialize iq and fl
* b) allocate queue iff it will take direct interrupts.
*/
- bufsize = mtu_to_bufsize(ifp->if_mtu);
for_each_rxq(pi, i, rxq) {
init_iq(&rxq->iq, sc, pi->tmr_idx, pi->pktc_idx, pi->qsize_rxq,
@@ -733,7 +614,6 @@
}
#ifdef TCP_OFFLOAD
- bufsize = mtu_to_bufsize_toe(sc, ifp->if_mtu);
for_each_ofld_rxq(pi, i, ofld_rxq) {
init_iq(&ofld_rxq->iq, sc, pi->tmr_idx, pi->pktc_idx,
@@ -741,7 +621,7 @@
snprintf(name, sizeof(name), "%s ofld_rxq%d-fl",
device_get_nameunit(pi->dev), i);
- init_fl(&ofld_rxq->fl, pi->qsize_rxq / 8, bufsize, name);
+ init_fl(&ofld_rxq->fl, pi->qsize_rxq / 8, OFLD_BUF_SIZE, name);
if (sc->flags & INTR_DIRECT ||
(sc->intr_count > 1 && pi->nofldrxq > pi->nrxq)) {
@@ -1352,7 +1232,7 @@
eq->pidx -= eq->cap;
eq->pending += ndesc;
- if (eq->pending >= 8)
+ if (eq->pending > 16)
ring_eq_db(sc, eq);
wrq->tx_wrs++;
@@ -1523,8 +1403,8 @@
if (sgl.nsegs == 0)
m_freem(m);
doorbell:
- if (eq->pending >= 8)
- ring_eq_db(sc, eq);
+ if (eq->pending >= 64)
+ ring_eq_db(sc, eq);
can_reclaim = reclaimable(eq);
if (can_reclaim >= 32)
@@ -1572,13 +1452,9 @@
{
struct port_info *pi = ifp->if_softc;
struct sge_rxq *rxq;
-#ifdef TCP_OFFLOAD
- struct sge_ofld_rxq *ofld_rxq;
-#endif
struct sge_fl *fl;
- int i, bufsize;
+ int i, bufsize = mtu_to_bufsize(ifp->if_mtu);
- bufsize = mtu_to_bufsize(ifp->if_mtu);
for_each_rxq(pi, i, rxq) {
fl = &rxq->fl;
@@ -1586,16 +1462,6 @@
set_fl_tag_idx(fl, bufsize);
FL_UNLOCK(fl);
}
-#ifdef TCP_OFFLOAD
- bufsize = mtu_to_bufsize_toe(pi->adapter, ifp->if_mtu);
- for_each_ofld_rxq(pi, i, ofld_rxq) {
- fl = &ofld_rxq->fl;
-
- FL_LOCK(fl);
- set_fl_tag_idx(fl, bufsize);
- FL_UNLOCK(fl);
- }
-#endif
}
int
@@ -1621,7 +1487,7 @@
iq->intr_params |= F_QINTR_CNT_EN;
iq->intr_pktc_idx = pktc_idx;
}
- iq->qsize = roundup2(qsize, 16); /* See FW_IQ_CMD/iqsize */
+ iq->qsize = roundup(qsize, 16); /* See FW_IQ_CMD/iqsize */
iq->esize = max(esize, 16); /* See FW_IQ_CMD/iqesize */
}
@@ -1795,7 +1661,7 @@
return (rc);
}
fl->needed = fl->cap;
- fl->lowat = roundup2(sc->sge.fl_starve_threshold, 8);
+ fl->lowat = roundup(sc->sge.fl_starve_threshold, 8);
c.iqns_to_fl0congen |=
htobe32(V_FW_IQ_CMD_FL0HOSTFCMODE(X_HOSTFCMODE_NONE) |
@@ -2298,7 +2164,6 @@
eq->spg = (void *)&eq->desc[eq->cap];
eq->avail = eq->cap - 1; /* one less to avoid cidx = pidx */
eq->pidx = eq->cidx = 0;
- eq->doorbells = sc->doorbells;
switch (eq->flags & EQ_TYPEMASK) {
case EQ_CTRL:
@@ -2327,25 +2192,6 @@
eq->tx_callout.c_cpu = eq->cntxt_id % mp_ncpus;
- if (isset(&eq->doorbells, DOORBELL_UDB) ||
- isset(&eq->doorbells, DOORBELL_UDBWC) ||
- isset(&eq->doorbells, DOORBELL_WCWR)) {
- uint32_t s_qpp = sc->sge.s_qpp;
- uint32_t mask = (1 << s_qpp) - 1;
- volatile uint8_t *udb;
-
- udb = sc->udbs_base + UDBS_DB_OFFSET;
- udb += (eq->cntxt_id >> s_qpp) << PAGE_SHIFT; /* pg offset */
- eq->udb_qid = eq->cntxt_id & mask; /* id in page */
- if (eq->udb_qid > PAGE_SIZE / UDBS_SEG_SIZE)
- clrbit(&eq->doorbells, DOORBELL_WCWR);
- else {
- udb += eq->udb_qid << UDBS_SEG_SHIFT; /* seg offset */
- eq->udb_qid = 0;
- }
- eq->udb = (volatile void *)udb;
- }
-
return (rc);
}
@@ -2591,7 +2437,6 @@
ring_fl_db(struct adapter *sc, struct sge_fl *fl)
{
int ndesc = fl->pending / 8;
- uint32_t v;
if (FL_HW_IDX(fl->pidx) == FL_HW_IDX(fl->cidx))
ndesc--; /* hold back one credit */
@@ -2599,13 +2444,10 @@
if (ndesc <= 0)
return; /* nothing to do */
- v = F_DBPRIO | V_QID(fl->cntxt_id) | V_PIDX(ndesc);
- if (is_t5(sc))
- v |= F_DBTYPE;
-
wmb();
- t4_write_reg(sc, MYPF_REG(A_SGE_PF_KDOORBELL), v);
+ t4_write_reg(sc, MYPF_REG(A_SGE_PF_KDOORBELL), F_DBPRIO |
+ V_QID(fl->cntxt_id) | V_PIDX(ndesc));
fl->pending -= ndesc * 8;
}
@@ -3470,53 +3312,10 @@
static inline void
ring_eq_db(struct adapter *sc, struct sge_eq *eq)
{
- u_int db, pending;
-
- db = eq->doorbells;
- pending = eq->pending;
- if (pending > 1)
- clrbit(&db, DOORBELL_WCWR);
+ wmb();
+ t4_write_reg(sc, MYPF_REG(A_SGE_PF_KDOORBELL),
+ V_QID(eq->cntxt_id) | V_PIDX(eq->pending));
eq->pending = 0;
- wmb();
-
- switch (ffs(db) - 1) {
- case DOORBELL_UDB:
- *eq->udb = htole32(V_QID(eq->udb_qid) | V_PIDX(pending));
- return;
-
- case DOORBELL_WCWR: {
- volatile uint64_t *dst, *src;
- int i;
-
- /*
- * Queues whose 128B doorbell segment fits in the page do not
- * use relative qid (udb_qid is always 0). Only queues with
- * doorbell segments can do WCWR.
- */
- KASSERT(eq->udb_qid == 0 && pending == 1,
- ("%s: inappropriate doorbell (0x%x, %d, %d) for eq %p",
- __func__, eq->doorbells, pending, eq->pidx, eq));
-
- dst = (volatile void *)((uintptr_t)eq->udb + UDBS_WR_OFFSET -
- UDBS_DB_OFFSET);
- i = eq->pidx ? eq->pidx - 1 : eq->cap - 1;
- src = (void *)&eq->desc[i];
- while (src != (void *)&eq->desc[i + 1])
- *dst++ = *src++;
- wmb();
- return;
- }
-
- case DOORBELL_UDBWC:
- *eq->udb = htole32(V_QID(eq->udb_qid) | V_PIDX(pending));
- wmb();
- return;
-
- case DOORBELL_KDB:
- t4_write_reg(sc, MYPF_REG(A_SGE_PF_KDOORBELL),
- V_QID(eq->cntxt_id) | V_PIDX(pending));
- return;
- }
}
static inline int
Modified: trunk/sys/dev/cxgbe/tom/t4_connect.c
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_connect.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_connect.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_connect.c 252814 2013-07-05 18:27:38Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_connect.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -57,7 +57,6 @@
#include "common/common.h"
#include "common/t4_msg.h"
#include "common/t4_regs.h"
-#include "common/t4_regs_values.h"
#include "tom/t4_tom_l2t.h"
#include "tom/t4_tom.h"
@@ -227,11 +226,8 @@
struct tcpcb *tp = so_sototcpcb(so);
struct port_info *pi = toep->port;
struct adapter *sc = pi->adapter;
- uint32_t opt2;
+ uint32_t opt2 = 0;
- opt2 = V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]) |
- F_RSS_QUEUE_VALID | V_RSS_QUEUE(toep->ofld_rxq->iq.abs_id);
-
if (tp->t_flags & TF_SACK_PERMIT)
opt2 |= F_SACK_EN;
@@ -244,15 +240,9 @@
if (V_tcp_do_ecn)
opt2 |= F_CCTRL_ECN;
- /* RX_COALESCE is always a valid value (M_RX_COALESCE). */
- if (is_t4(sc))
- opt2 |= F_RX_COALESCE_VALID;
- else {
- opt2 |= F_T5_OPT_2_VALID;
- opt2 |= F_CONG_CNTRL_VALID; /* OPT_2_ISS really, for T5 */
- }
- if (sc->tt.rx_coalesce)
- opt2 |= V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]);
+ opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= F_RSS_QUEUE_VALID | V_RSS_QUEUE(toep->ofld_rxq->iq.abs_id);
#ifdef USE_DDP_RX_FLOW_CONTROL
if (toep->ulp_mode == ULP_MODE_TCPDDP)
@@ -276,24 +266,6 @@
goto failed; \
} while (0)
-static inline int
-act_open_cpl_size(struct adapter *sc, int isipv6)
-{
- static const int sz_t4[] = {
- sizeof (struct cpl_act_open_req),
- sizeof (struct cpl_act_open_req6)
- };
- static const int sz_t5[] = {
- sizeof (struct cpl_t5_act_open_req),
- sizeof (struct cpl_t5_act_open_req6)
- };
-
- if (is_t4(sc))
- return (sz_t4[!!isipv6]);
- else
- return (sz_t5[!!isipv6]);
-}
-
/*
* active open (soconnect).
*
@@ -348,7 +320,8 @@
DONT_OFFLOAD_ACTIVE_OPEN(ENOMEM);
isipv6 = nam->sa_family == AF_INET6;
- wr = alloc_wrqe(act_open_cpl_size(sc, isipv6), toep->ctrlq);
+ wr = alloc_wrqe(isipv6 ? sizeof(struct cpl_act_open_req6) :
+ sizeof(struct cpl_act_open_req), toep->ctrlq);
if (wr == NULL)
DONT_OFFLOAD_ACTIVE_OPEN(ENOMEM);
@@ -388,18 +361,10 @@
if (toep->ce == NULL)
DONT_OFFLOAD_ACTIVE_OPEN(ENOENT);
- if (is_t4(sc)) {
- INIT_TP_WR(cpl, 0);
- cpl->params = select_ntuple(pi, toep->l2te);
- } else {
- struct cpl_t5_act_open_req6 *c5 = (void *)cpl;
-
- INIT_TP_WR(c5, 0);
- c5->iss = htobe32(tp->iss);
- c5->params = select_ntuple(pi, toep->l2te);
- }
+ INIT_TP_WR(cpl, 0);
OPCODE_TID(cpl) = htobe32(MK_OPCODE_TID(CPL_ACT_OPEN_REQ6,
qid_atid));
+
cpl->local_port = inp->inp_lport;
cpl->local_ip_hi = *(uint64_t *)&inp->in6p_laddr.s6_addr[0];
cpl->local_ip_lo = *(uint64_t *)&inp->in6p_laddr.s6_addr[8];
@@ -408,20 +373,12 @@
cpl->peer_ip_lo = *(uint64_t *)&inp->in6p_faddr.s6_addr[8];
cpl->opt0 = calc_opt0(so, pi, toep->l2te, mtu_idx, rscale,
toep->rx_credits, toep->ulp_mode);
+ cpl->params = select_ntuple(pi, toep->l2te, sc->filter_mode);
cpl->opt2 = calc_opt2a(so, toep);
} else {
struct cpl_act_open_req *cpl = wrtod(wr);
- if (is_t4(sc)) {
- INIT_TP_WR(cpl, 0);
- cpl->params = select_ntuple(pi, toep->l2te);
- } else {
- struct cpl_t5_act_open_req *c5 = (void *)cpl;
-
- INIT_TP_WR(c5, 0);
- c5->iss = htobe32(tp->iss);
- c5->params = select_ntuple(pi, toep->l2te);
- }
+ INIT_TP_WR(cpl, 0);
OPCODE_TID(cpl) = htobe32(MK_OPCODE_TID(CPL_ACT_OPEN_REQ,
qid_atid));
inp_4tuple_get(inp, &cpl->local_ip, &cpl->local_port,
@@ -428,6 +385,7 @@
&cpl->peer_ip, &cpl->peer_port);
cpl->opt0 = calc_opt0(so, pi, toep->l2te, mtu_idx, rscale,
toep->rx_credits, toep->ulp_mode);
+ cpl->params = select_ntuple(pi, toep->l2te, sc->filter_mode);
cpl->opt2 = calc_opt2a(so, toep);
}
Modified: trunk/sys/dev/cxgbe/tom/t4_cpl_io.c
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_cpl_io.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_cpl_io.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_cpl_io.c 252495 2013-07-02 04:27:16Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_cpl_io.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
@@ -88,7 +88,7 @@
flowclen = sizeof(*flowc) + nparams * sizeof(struct fw_flowc_mnemval);
- wr = alloc_wrqe(roundup2(flowclen, 16), toep->ofld_txq);
+ wr = alloc_wrqe(roundup(flowclen, 16), toep->ofld_txq);
if (wr == NULL) {
/* XXX */
panic("%s: allocation failure.", __func__);
@@ -632,7 +632,7 @@
/* Immediate data tx */
- wr = alloc_wrqe(roundup2(sizeof(*txwr) + plen, 16),
+ wr = alloc_wrqe(roundup(sizeof(*txwr) + plen, 16),
toep->ofld_txq);
if (wr == NULL) {
/* XXX: how will we recover from this? */
@@ -651,7 +651,7 @@
wr_len = sizeof(*txwr) + sizeof(struct ulptx_sgl) +
((3 * (nsegs - 1)) / 2 + ((nsegs - 1) & 1)) * 8;
- wr = alloc_wrqe(roundup2(wr_len, 16), toep->ofld_txq);
+ wr = alloc_wrqe(roundup(wr_len, 16), toep->ofld_txq);
if (wr == NULL) {
/* XXX: how will we recover from this? */
toep->flags |= TPF_TX_SUSPENDED;
@@ -827,8 +827,15 @@
sb = &so->so_rcv;
SOCKBUF_LOCK(sb);
if (__predict_false(toep->ddp_flags & (DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE))) {
- m = get_ddp_mbuf(be32toh(cpl->rcv_nxt) - tp->rcv_nxt);
+ m = m_get(M_NOWAIT, MT_DATA);
+ if (m == NULL)
+ CXGBE_UNIMPLEMENTED("mbuf alloc failure");
+
+ m->m_len = be32toh(cpl->rcv_nxt) - tp->rcv_nxt;
+ m->m_flags |= M_DDP; /* Data is already where it should be */
+ m->m_data = "nothing to see here";
tp->rcv_nxt = be32toh(cpl->rcv_nxt);
+
toep->ddp_flags &= ~(DDP_BUF0_ACTIVE | DDP_BUF1_ACTIVE);
KASSERT(toep->sb_cc >= sb->sb_cc,
@@ -1410,13 +1417,13 @@
}
void
-t4_set_tcb_field(struct adapter *sc, struct toepcb *toep, int ctrl,
- uint16_t word, uint64_t mask, uint64_t val)
+t4_set_tcb_field(struct adapter *sc, struct toepcb *toep, uint16_t word,
+ uint64_t mask, uint64_t val)
{
struct wrqe *wr;
struct cpl_set_tcb_field *req;
- wr = alloc_wrqe(sizeof(*req), ctrl ? toep->ctrlq : toep->ofld_txq);
+ wr = alloc_wrqe(sizeof(*req), toep->ctrlq);
if (wr == NULL) {
/* XXX */
panic("%s: allocation failure.", __func__);
Modified: trunk/sys/dev/cxgbe/tom/t4_ddp.c
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_ddp.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_ddp.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_ddp.c 252495 2013-07-02 04:27:16Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_ddp.c 248078 2013-03-09 00:39:54Z marius $");
#include "opt_inet.h"
@@ -217,7 +217,13 @@
INP_WLOCK_ASSERT(inp);
SOCKBUF_LOCK_ASSERT(sb);
- m = get_ddp_mbuf(n);
+ m = m_get(M_NOWAIT, MT_DATA);
+ if (m == NULL)
+ CXGBE_UNIMPLEMENTED("mbuf alloc failure");
+ m->m_len = n;
+ m->m_flags |= M_DDP; /* Data is already where it should be */
+ m->m_data = "nothing to see here";
+
tp->rcv_nxt += n;
#ifndef USE_DDP_RX_FLOW_CONTROL
KASSERT(tp->rcv_wnd >= n, ("%s: negative window size", __func__));
@@ -352,8 +358,8 @@
* The ULPTX master commands that follow must all end at 16B boundaries
* too so we round up the size to 16.
*/
- len = sizeof(*wrh) + 3 * roundup2(LEN__SET_TCB_FIELD_ULP, 16) +
- roundup2(LEN__RX_DATA_ACK_ULP, 16);
+ len = sizeof(*wrh) + 3 * roundup(LEN__SET_TCB_FIELD_ULP, 16) +
+ roundup(LEN__RX_DATA_ACK_ULP, 16);
wr = alloc_wrqe(len, toep->ctrlq);
if (wr == NULL)
@@ -451,8 +457,14 @@
KASSERT(tp->rcv_wnd >= len, ("%s: negative window size", __func__));
tp->rcv_wnd -= len;
#endif
- m = get_ddp_mbuf(len);
+ m = m_get(M_NOWAIT, MT_DATA);
+ if (m == NULL)
+ CXGBE_UNIMPLEMENTED("mbuf alloc failure");
+ m->m_len = len;
+ m->m_flags |= M_DDP; /* Data is already where it should be */
+ m->m_data = "nothing to see here";
+
SOCKBUF_LOCK(sb);
if (report & F_DDP_BUF_COMPLETE)
toep->ddp_score = DDP_HIGH_SCORE;
@@ -541,12 +553,12 @@
__func__, toep->tid, time_uptime);
toep->ddp_flags |= DDP_SC_REQ;
- t4_set_tcb_field(sc, toep, 1, W_TCB_RX_DDP_FLAGS,
+ t4_set_tcb_field(sc, toep, W_TCB_RX_DDP_FLAGS,
V_TF_DDP_OFF(1) | V_TF_DDP_INDICATE_OUT(1) |
V_TF_DDP_BUF0_INDICATE(1) | V_TF_DDP_BUF1_INDICATE(1) |
V_TF_DDP_BUF0_VALID(1) | V_TF_DDP_BUF1_VALID(1),
V_TF_DDP_BUF0_INDICATE(1) | V_TF_DDP_BUF1_INDICATE(1));
- t4_set_tcb_field(sc, toep, 1, W_TCB_T_FLAGS,
+ t4_set_tcb_field(sc, toep, W_TCB_T_FLAGS,
V_TF_RCV_COALESCE_ENABLE(1), 0);
}
@@ -562,9 +574,9 @@
__func__, toep->tid, time_uptime);
toep->ddp_flags |= DDP_SC_REQ;
- t4_set_tcb_field(sc, toep, 1, W_TCB_T_FLAGS,
+ t4_set_tcb_field(sc, toep, W_TCB_T_FLAGS,
V_TF_RCV_COALESCE_ENABLE(1), V_TF_RCV_COALESCE_ENABLE(1));
- t4_set_tcb_field(sc, toep, 1, W_TCB_RX_DDP_FLAGS, V_TF_DDP_OFF(1),
+ t4_set_tcb_field(sc, toep, W_TCB_RX_DDP_FLAGS, V_TF_DDP_OFF(1),
V_TF_DDP_OFF(1));
}
@@ -735,13 +747,7 @@
struct ulptx_idata *ulpsc;
struct pagepod *ppod;
int i, j, k, n, chunk, len, ddp_pgsz, idx, ppod_addr;
- uint32_t cmd;
- cmd = htobe32(V_ULPTX_CMD(ULP_TX_MEM_WRITE));
- if (is_t4(sc))
- cmd |= htobe32(F_ULP_MEMIO_ORDER);
- else
- cmd |= htobe32(F_T5_ULP_MEMIO_IMM);
ddp_pgsz = t4_ddp_pgsz[G_PPOD_PGSZ(db->tag)];
ppod_addr = sc->vres.ddp.start + G_PPOD_TAG(db->tag) * PPOD_SIZE;
for (i = 0; i < db->nppods; ppod_addr += chunk) {
@@ -749,7 +755,7 @@
/* How many page pods are we writing in this cycle */
n = min(db->nppods - i, NUM_ULP_TX_SC_IMM_PPODS);
chunk = PPOD_SZ(n);
- len = roundup2(sizeof(*ulpmc) + sizeof(*ulpsc) + chunk, 16);
+ len = roundup(sizeof(*ulpmc) + sizeof(*ulpsc) + chunk, 16);
wr = alloc_wrqe(len, toep->ctrlq);
if (wr == NULL)
@@ -757,7 +763,8 @@
ulpmc = wrtod(wr);
INIT_ULPTX_WR(ulpmc, len, 0, 0);
- ulpmc->cmd = cmd;
+ ulpmc->cmd = htobe32(V_ULPTX_CMD(ULP_TX_MEM_WRITE) |
+ F_ULP_MEMIO_ORDER);
ulpmc->dlen = htobe32(V_ULP_MEMIO_DATA_LEN(chunk / 32));
ulpmc->len16 = htobe32(howmany(len - sizeof(ulpmc->wr), 16));
ulpmc->lock_addr = htobe32(V_ULP_MEMIO_ADDR(ppod_addr >> 5));
@@ -1010,29 +1017,6 @@
CXGBE_UNIMPLEMENTED(__func__);
}
-static char ddp_magic_str[] = "nothing to see here";
-
-struct mbuf *
-get_ddp_mbuf(int len)
-{
- struct mbuf *m;
-
- m = m_get(M_NOWAIT, MT_DATA);
- if (m == NULL)
- CXGBE_UNIMPLEMENTED("mbuf alloc failure");
- m->m_len = len;
- m->m_data = &ddp_magic_str[0];
-
- return (m);
-}
-
-static inline int
-is_ddp_mbuf(struct mbuf *m)
-{
-
- return (m->m_data == &ddp_magic_str[0]);
-}
-
/*
* Copy an mbuf chain into a uio limited by len if set.
*/
@@ -1051,7 +1035,7 @@
for (; m != NULL; m = m->m_next) {
length = min(m->m_len, total - progress);
- if (is_ddp_mbuf(m)) {
+ if (m->m_flags & M_DDP) {
enum uio_seg segflag = uio->uio_segflg;
uio->uio_segflg = UIO_NOCOPY;
Modified: trunk/sys/dev/cxgbe/tom/t4_listen.c
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_listen.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_listen.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_listen.c 252814 2013-07-05 18:27:38Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_listen.c 248078 2013-03-09 00:39:54Z marius $");
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -125,7 +125,7 @@
TAILQ_FOREACH(s, &t->stids, link) {
stid += s->used + s->free;
f = stid & mask;
- if (s->free >= n + f) {
+ if (n <= s->free - f) {
stid -= n + f;
s->free -= n + f;
TAILQ_INSERT_AFTER(&t->stids, s, sr, link);
@@ -360,13 +360,13 @@
/* The wrqe will have two WRs - a flowc followed by an abort_req */
flowclen = sizeof(*flowc) + nparams * sizeof(struct fw_flowc_mnemval);
- wr = alloc_wrqe(roundup2(flowclen, EQ_ESIZE) + sizeof(*req), ofld_txq);
+ wr = alloc_wrqe(roundup(flowclen, EQ_ESIZE) + sizeof(*req), ofld_txq);
if (wr == NULL) {
/* XXX */
panic("%s: allocation failure.", __func__);
}
flowc = wrtod(wr);
- req = (void *)((caddr_t)flowc + roundup2(flowclen, EQ_ESIZE));
+ req = (void *)((caddr_t)flowc + roundup(flowclen, EQ_ESIZE));
/* First the flowc ... */
memset(flowc, 0, wr->wr_len);
@@ -674,12 +674,6 @@
synqe->iss = be32toh(th->th_seq);
synqe->ts = to.to_tsval;
- if (is_t5(sc)) {
- struct cpl_t5_pass_accept_rpl *rpl5 = wrtod(wr);
-
- rpl5->iss = th->th_seq;
- }
-
e = &sc->l2t->l2tab[synqe->l2e_idx];
t4_l2t_send(sc, wr, e);
@@ -950,7 +944,7 @@
static struct synq_entry *
mbuf_to_synqe(struct mbuf *m)
{
- int len = roundup2(sizeof (struct synq_entry), 8);
+ int len = roundup(sizeof (struct synq_entry), 8);
int tspace = M_TRAILINGSPACE(m);
struct synq_entry *synqe = NULL;
@@ -996,12 +990,9 @@
calc_opt2p(struct adapter *sc, struct port_info *pi, int rxqid,
const struct tcp_options *tcpopt, struct tcphdr *th, int ulp_mode)
{
+ uint32_t opt2 = 0;
struct sge_ofld_rxq *ofld_rxq = &sc->sge.ofld_rxq[rxqid];
- uint32_t opt2;
- opt2 = V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]) |
- F_RSS_QUEUE_VALID | V_RSS_QUEUE(ofld_rxq->iq.abs_id);
-
if (V_tcp_do_rfc1323) {
if (tcpopt->tstamp)
opt2 |= F_TSTAMPS_EN;
@@ -1014,15 +1005,9 @@
if (V_tcp_do_ecn && th->th_flags & (TH_ECE | TH_CWR))
opt2 |= F_CCTRL_ECN;
- /* RX_COALESCE is always a valid value (0 or M_RX_COALESCE). */
- if (is_t4(sc))
- opt2 |= F_RX_COALESCE_VALID;
- else {
- opt2 |= F_T5_OPT_2_VALID;
- opt2 |= F_CONG_CNTRL_VALID; /* OPT_2_ISS really, for T5 */
- }
- if (sc->tt.rx_coalesce)
- opt2 |= V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= V_TX_QUEUE(sc->params.tp.tx_modq[pi->tx_chan]);
+ opt2 |= F_RX_COALESCE_VALID | V_RX_COALESCE(M_RX_COALESCE);
+ opt2 |= F_RSS_QUEUE_VALID | V_RSS_QUEUE(ofld_rxq->iq.abs_id);
#ifdef USE_DDP_RX_FLOW_CONTROL
if (ulp_mode == ULP_MODE_TCPDDP)
@@ -1296,8 +1281,7 @@
if (synqe == NULL)
REJECT_PASS_ACCEPT();
- wr = alloc_wrqe(is_t4(sc) ? sizeof(struct cpl_pass_accept_rpl) :
- sizeof(struct cpl_t5_pass_accept_rpl), &sc->sge.ctrlq[pi->port_id]);
+ wr = alloc_wrqe(sizeof(*rpl), &sc->sge.ctrlq[pi->port_id]);
if (wr == NULL)
REJECT_PASS_ACCEPT();
rpl = wrtod(wr);
@@ -1338,13 +1322,7 @@
save_qids_in_mbuf(m, pi);
get_qids_from_mbuf(m, NULL, &rxqid);
- if (is_t4(sc))
- INIT_TP_WR_MIT_CPL(rpl, CPL_PASS_ACCEPT_RPL, tid);
- else {
- struct cpl_t5_pass_accept_rpl *rpl5 = (void *)rpl;
-
- INIT_TP_WR_MIT_CPL(rpl5, CPL_PASS_ACCEPT_RPL, tid);
- }
+ INIT_TP_WR_MIT_CPL(rpl, CPL_PASS_ACCEPT_RPL, tid);
if (sc->tt.ddp && (so->so_options & SO_NO_DDP) == 0) {
ulp_mode = ULP_MODE_TCPDDP;
synqe->flags |= TPF_SYNQE_TCPDDP;
Modified: trunk/sys/dev/cxgbe/tom/t4_tom.c
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_tom.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_tom.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_tom.c 252814 2013-07-05 18:27:38Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_tom.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
#include "opt_inet6.h"
@@ -41,7 +41,6 @@
#include <sys/domain.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
-#include <sys/taskqueue.h>
#include <net/if.h>
#include <netinet/in.h>
#include <netinet/in_pcb.h>
@@ -58,8 +57,6 @@
#include "common/common.h"
#include "common/t4_msg.h"
#include "common/t4_regs.h"
-#include "common/t4_regs_values.h"
-#include "common/t4_tcb.h"
#include "tom/t4_tom_l2t.h"
#include "tom/t4_tom.h"
@@ -92,16 +89,9 @@
static int delete_lip(struct adapter *, struct in6_addr *);
static struct clip_entry *search_lip(struct tom_data *, struct in6_addr *);
static void init_clip_table(struct adapter *, struct tom_data *);
-static void update_clip(struct adapter *, void *);
-static void t4_clip_task(void *, int);
-static void update_clip_table(struct adapter *, struct tom_data *);
static void destroy_clip_table(struct adapter *, struct tom_data *);
static void free_tom_data(struct adapter *, struct tom_data *);
-static int in6_ifaddr_gen;
-static eventhandler_tag ifaddr_evhandler;
-static struct timeout_task clip_task;
-
struct toepcb *
alloc_toepcb(struct port_info *pi, int txqid, int rxqid, int flags)
{
@@ -332,30 +322,6 @@
}
/*
- * setsockopt handler.
- */
-static void
-t4_ctloutput(struct toedev *tod, struct tcpcb *tp, int dir, int name)
-{
- struct adapter *sc = tod->tod_softc;
- struct toepcb *toep = tp->t_toe;
-
- if (dir == SOPT_GET)
- return;
-
- CTR4(KTR_CXGBE, "%s: tp %p, dir %u, name %u", __func__, tp, dir, name);
-
- switch (name) {
- case TCP_NODELAY:
- t4_set_tcb_field(sc, toep, 1, W_TCB_T_FLAGS, V_TF_NAGLE(1),
- V_TF_NAGLE(tp->t_flags & TF_NODELAY ? 0 : 1));
- break;
- default:
- break;
- }
-}
-
-/*
* The TOE driver will not receive any more CPLs for the tid associated with the
* toepcb; release the hold on the inpcb.
*/
@@ -539,40 +505,37 @@
return htobe64(opt0);
}
-uint64_t
-select_ntuple(struct port_info *pi, struct l2t_entry *e)
+#define FILTER_SEL_WIDTH_P_FC (3 + 1)
+#define FILTER_SEL_WIDTH_VIN_P_FC (6 + 7 + FILTER_SEL_WIDTH_P_FC)
+#define FILTER_SEL_WIDTH_TAG_P_FC (3 + FILTER_SEL_WIDTH_VIN_P_FC)
+#define FILTER_SEL_WIDTH_VLD_TAG_P_FC (1 + FILTER_SEL_WIDTH_TAG_P_FC)
+#define VLAN_NONE 0xfff
+#define FILTER_SEL_VLAN_NONE 0xffff
+
+uint32_t
+select_ntuple(struct port_info *pi, struct l2t_entry *e, uint32_t filter_mode)
{
- struct adapter *sc = pi->adapter;
- struct tp_params *tp = &sc->params.tp;
uint16_t viid = pi->viid;
- uint64_t ntuple = 0;
+ uint32_t ntuple = 0;
- /*
- * Initialize each of the fields which we care about which are present
- * in the Compressed Filter Tuple.
- */
- if (tp->vlan_shift >= 0 && e->vlan != CPL_L2T_VLAN_NONE)
- ntuple |= (uint64_t)(F_FT_VLAN_VLD | e->vlan) << tp->vlan_shift;
+ if (filter_mode == HW_TPL_FR_MT_PR_IV_P_FC) {
+ if (e->vlan == VLAN_NONE)
+ ntuple |= FILTER_SEL_VLAN_NONE << FILTER_SEL_WIDTH_P_FC;
+ else {
+ ntuple |= e->vlan << FILTER_SEL_WIDTH_P_FC;
+ ntuple |= 1 << FILTER_SEL_WIDTH_VLD_TAG_P_FC;
+ }
+ ntuple |= e->lport << S_PORT;
+ ntuple |= IPPROTO_TCP << FILTER_SEL_WIDTH_VLD_TAG_P_FC;
+ } else if (filter_mode == HW_TPL_FR_MT_PR_OV_P_FC) {
+ ntuple |= G_FW_VIID_VIN(viid) << FILTER_SEL_WIDTH_P_FC;
+ ntuple |= G_FW_VIID_PFN(viid) << FILTER_SEL_WIDTH_VIN_P_FC;
+ ntuple |= G_FW_VIID_VIVLD(viid) << FILTER_SEL_WIDTH_TAG_P_FC;
+ ntuple |= e->lport << S_PORT;
+ ntuple |= IPPROTO_TCP << FILTER_SEL_WIDTH_VLD_TAG_P_FC;
+ }
- if (tp->port_shift >= 0)
- ntuple |= (uint64_t)e->lport << tp->port_shift;
-
- if (tp->protocol_shift >= 0)
- ntuple |= (uint64_t)IPPROTO_TCP << tp->protocol_shift;
-
- if (tp->vnic_shift >= 0) {
- uint32_t vf = G_FW_VIID_VIN(viid);
- uint32_t pf = G_FW_VIID_PFN(viid);
- uint32_t vld = G_FW_VIID_VIVLD(viid);
-
- ntuple |= (uint64_t)(V_FT_VNID_ID_VF(vf) | V_FT_VNID_ID_PF(pf) |
- V_FT_VNID_ID_VLD(vld)) << tp->vnic_shift;
- }
-
- if (is_t4(sc))
- return (htobe32((uint32_t)ntuple));
- else
- return (htobe64(V_FILTER_TUPLE(ntuple)));
+ return (htobe32(ntuple));
}
void
@@ -660,7 +623,7 @@
c.ip_hi = *(uint64_t *)&lip->s6_addr[0];
c.ip_lo = *(uint64_t *)&lip->s6_addr[8];
- return (-t4_wr_mbox_ns(sc, sc->mbox, &c, sizeof(c), &c));
+ return (t4_wr_mbox_ns(sc, sc->mbox, &c, sizeof(c), &c));
}
static int
@@ -678,7 +641,7 @@
c.ip_hi = *(uint64_t *)&lip->s6_addr[0];
c.ip_lo = *(uint64_t *)&lip->s6_addr[8];
- return (-t4_wr_mbox_ns(sc, sc->mbox, &c, sizeof(c), &c));
+ return (t4_wr_mbox_ns(sc, sc->mbox, &c, sizeof(c), &c));
}
static struct clip_entry *
@@ -726,56 +689,16 @@
static void
init_clip_table(struct adapter *sc, struct tom_data *td)
{
+ struct in6_ifaddr *ia;
+ struct in6_addr *lip, tlip;
+ struct clip_entry *ce;
ASSERT_SYNCHRONIZED_OP(sc);
mtx_init(&td->clip_table_lock, "CLIP table lock", NULL, MTX_DEF);
TAILQ_INIT(&td->clip_table);
- td->clip_gen = -1;
- update_clip_table(sc, td);
-}
-
-static void
-update_clip(struct adapter *sc, void *arg __unused)
-{
-
- if (begin_synchronized_op(sc, NULL, HOLD_LOCK, "t4tomuc"))
- return;
-
- if (sc->flags & TOM_INIT_DONE)
- update_clip_table(sc, sc->tom_softc);
-
- end_synchronized_op(sc, LOCK_HELD);
-}
-
-static void
-t4_clip_task(void *arg, int count)
-{
-
- t4_iterate(update_clip, NULL);
-}
-
-static void
-update_clip_table(struct adapter *sc, struct tom_data *td)
-{
- struct in6_ifaddr *ia;
- struct in6_addr *lip, tlip;
- struct clip_head stale;
- struct clip_entry *ce, *ce_temp;
- int rc, gen = atomic_load_acq_int(&in6_ifaddr_gen);
-
- ASSERT_SYNCHRONIZED_OP(sc);
-
IN6_IFADDR_RLOCK();
- mtx_lock(&td->clip_table_lock);
-
- if (gen == td->clip_gen)
- goto done;
-
- TAILQ_INIT(&stale);
- TAILQ_CONCAT(&stale, &td->clip_table, link);
-
TAILQ_FOREACH(ia, &V_in6_ifaddrhead, ia_link) {
lip = &ia->ia_addr.sin6_addr;
@@ -795,70 +718,18 @@
* interface? It's fe80::1 usually (always?).
*/
- /*
- * If it's in the main list then we already know it's not stale.
- */
- TAILQ_FOREACH(ce, &td->clip_table, link) {
- if (IN6_ARE_ADDR_EQUAL(&ce->lip, lip))
- goto next;
- }
-
- /*
- * If it's in the stale list we should move it to the main list.
- */
- TAILQ_FOREACH(ce, &stale, link) {
- if (IN6_ARE_ADDR_EQUAL(&ce->lip, lip)) {
- TAILQ_REMOVE(&stale, ce, link);
+ mtx_lock(&td->clip_table_lock);
+ if (search_lip(td, lip) == NULL) {
+ ce = malloc(sizeof(*ce), M_CXGBE, M_NOWAIT);
+ memcpy(&ce->lip, lip, sizeof(ce->lip));
+ ce->refcount = 0;
+ if (add_lip(sc, lip) == 0)
TAILQ_INSERT_TAIL(&td->clip_table, ce, link);
- goto next;
- }
- }
-
- /* A new IP6 address; add it to the CLIP table */
- ce = malloc(sizeof(*ce), M_CXGBE, M_NOWAIT);
- memcpy(&ce->lip, lip, sizeof(ce->lip));
- ce->refcount = 0;
- rc = add_lip(sc, lip);
- if (rc == 0)
- TAILQ_INSERT_TAIL(&td->clip_table, ce, link);
- else {
- char ip[INET6_ADDRSTRLEN];
-
- inet_ntop(AF_INET6, &ce->lip, &ip[0], sizeof(ip));
- log(LOG_ERR, "%s: could not add %s (%d)\n",
- __func__, ip, rc);
- free(ce, M_CXGBE);
- }
-next:
- continue;
- }
-
- /*
- * Remove stale addresses (those no longer in V_in6_ifaddrhead) that are
- * no longer referenced by the driver.
- */
- TAILQ_FOREACH_SAFE(ce, &stale, link, ce_temp) {
- if (ce->refcount == 0) {
- rc = delete_lip(sc, &ce->lip);
- if (rc == 0) {
- TAILQ_REMOVE(&stale, ce, link);
+ else
free(ce, M_CXGBE);
- } else {
- char ip[INET6_ADDRSTRLEN];
-
- inet_ntop(AF_INET6, &ce->lip, &ip[0],
- sizeof(ip));
- log(LOG_ERR, "%s: could not delete %s (%d)\n",
- __func__, ip, rc);
- }
}
+ mtx_unlock(&td->clip_table_lock);
}
- /* The ones that are still referenced need to stay in the CLIP table */
- TAILQ_CONCAT(&td->clip_table, &stale, link);
-
- td->clip_gen = gen;
-done:
- mtx_unlock(&td->clip_table_lock);
IN6_IFADDR_RUNLOCK();
}
@@ -971,7 +842,6 @@
tod->tod_syncache_removed = t4_syncache_removed;
tod->tod_syncache_respond = t4_syncache_respond;
tod->tod_offload_socket = t4_offload_socket;
- tod->tod_ctloutput = t4_ctloutput;
for_each_port(sc, i)
TOEDEV(sc->port[i]->ifp) = &td->tod;
@@ -1020,14 +890,6 @@
return (rc);
}
-static void
-t4_tom_ifaddr_event(void *arg __unused, struct ifnet *ifp)
-{
-
- atomic_add_rel_int(&in6_ifaddr_gen, 1);
- taskqueue_enqueue_timeout(taskqueue_thread, &clip_task, -hz / 4);
-}
-
static int
t4_tom_mod_load(void)
{
@@ -1050,10 +912,6 @@
ddp6_usrreqs.pru_soreceive = t4_soreceive_ddp;
ddp6_protosw.pr_usrreqs = &ddp6_usrreqs;
- TIMEOUT_TASK_INIT(taskqueue_thread, &clip_task, 0, t4_clip_task, NULL);
- ifaddr_evhandler = EVENTHANDLER_REGISTER(ifaddr_event,
- t4_tom_ifaddr_event, NULL, EVENTHANDLER_PRI_ANY);
-
rc = t4_register_uld(&tom_uld_info);
if (rc != 0)
t4_tom_mod_unload();
@@ -1082,11 +940,6 @@
if (t4_unregister_uld(&tom_uld_info) == EBUSY)
return (EBUSY);
- if (ifaddr_evhandler) {
- EVENTHANDLER_DEREGISTER(ifaddr_event, ifaddr_evhandler);
- taskqueue_cancel_timeout(taskqueue_thread, &clip_task, NULL);
- }
-
return (0);
}
#endif /* TCP_OFFLOAD */
Modified: trunk/sys/dev/cxgbe/tom/t4_tom.h
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_tom.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_tom.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_tom.h 252814 2013-07-05 18:27:38Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_tom.h 247434 2013-02-28 00:44:54Z np $
*
*/
@@ -49,6 +49,8 @@
#define DDP_RSVD_WIN (16 * 1024U)
#define SB_DDP_INDICATE SB_IN_TOE /* soreceive must respond to indicate */
+#define M_DDP M_PROTO1
+
#define USE_DDP_RX_FLOW_CONTROL
/* TOE PCB flags */
@@ -180,7 +182,6 @@
u_int refcount;
};
-TAILQ_HEAD(clip_head, clip_entry);
struct tom_data {
struct toedev tod;
@@ -200,8 +201,7 @@
struct ppod_head ppods;
struct mtx clip_table_lock;
- struct clip_head clip_table;
- int clip_gen;
+ TAILQ_HEAD(, clip_entry) clip_table;
};
static inline struct tom_data *
@@ -234,7 +234,7 @@
int select_rcv_wscale(void);
uint64_t calc_opt0(struct socket *, struct port_info *, struct l2t_entry *,
int, int, int, int);
-uint64_t select_ntuple(struct port_info *, struct l2t_entry *);
+uint32_t select_ntuple(struct port_info *, struct l2t_entry *, uint32_t);
void set_tcpddp_ulp_mode(struct toepcb *);
int negative_advice(int);
struct clip_entry *hold_lip(struct tom_data *, struct in6_addr *);
@@ -269,8 +269,8 @@
int t4_tod_output(struct toedev *, struct tcpcb *);
int t4_send_fin(struct toedev *, struct tcpcb *);
int t4_send_rst(struct toedev *, struct tcpcb *);
-void t4_set_tcb_field(struct adapter *, struct toepcb *, int, uint16_t,
- uint64_t, uint64_t);
+void t4_set_tcb_field(struct adapter *, struct toepcb *, uint16_t, uint64_t,
+ uint64_t);
/* t4_ddp.c */
void t4_init_ddp(struct adapter *, struct tom_data *);
@@ -277,7 +277,6 @@
void t4_uninit_ddp(struct adapter *, struct tom_data *);
int t4_soreceive_ddp(struct socket *, struct sockaddr **, struct uio *,
struct mbuf **, struct mbuf **, int *);
-struct mbuf *get_ddp_mbuf(int);
void enable_ddp(struct adapter *, struct toepcb *toep);
void release_ddp_resources(struct toepcb *toep);
void insert_ddp_data(struct toepcb *, uint32_t);
Modified: trunk/sys/dev/cxgbe/tom/t4_tom_l2t.c
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_tom_l2t.c 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_tom_l2t.c 2016-10-02 00:13:34 UTC (rev 9115)
@@ -24,7 +24,7 @@
* SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_tom_l2t.c 247434 2013-02-28 00:44:54Z np $");
+__FBSDID("$FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_tom_l2t.c 247434 2013-02-28 00:44:54Z np $");
#include "opt_inet.h"
#include "opt_inet6.h"
Modified: trunk/sys/dev/cxgbe/tom/t4_tom_l2t.h
===================================================================
--- trunk/sys/dev/cxgbe/tom/t4_tom_l2t.h 2016-10-02 00:06:52 UTC (rev 9114)
+++ trunk/sys/dev/cxgbe/tom/t4_tom_l2t.h 2016-10-02 00:13:34 UTC (rev 9115)
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: release/9.2.0/sys/dev/cxgbe/tom/t4_tom_l2t.h 237263 2012-06-19 07:34:13Z np $
+ * $FreeBSD: stable/9/sys/dev/cxgbe/tom/t4_tom_l2t.h 237263 2012-06-19 07:34:13Z np $
*
*/
More information about the Midnightbsd-cvs
mailing list