brintos

brintos / linux-shallow public Read only

0
0
Text · 26.5 KiB · f4c6de8 Raw
1130 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* Marvell MCS driver3 *4 * Copyright (C) 2022 Marvell.5 */6 7#ifndef MCS_REG_H8#define MCS_REG_H9 10#include <linux/bits.h>11 12/* Registers */13#define MCSX_IP_MODE					0x900c8ull14#define MCSX_MCS_TOP_SLAVE_PORT_RESET(a) ({	\15	u64 offset;					\16							\17	offset = 0x408ull;				\18	if (mcs->hw->mcs_blks > 1)			\19		offset = 0xa28ull;			\20	offset += (a) * 0x8ull;				\21	offset; })22 23 24#define MCSX_MCS_TOP_SLAVE_CHANNEL_CFG(a) ({		\25	u64 offset;					\26							\27	offset = 0x808ull;				\28	if (mcs->hw->mcs_blks > 1)			\29		offset = 0xa68ull;			\30	offset += (a) * 0x8ull;				\31	offset; })32 33#define MCSX_MIL_GLOBAL	({				\34	u64 offset;					\35							\36	offset = 0x80000ull;				\37	if (mcs->hw->mcs_blks > 1)			\38		offset = 0x60000ull;			\39	offset; })40 41#define MCSX_MIL_RX_LMACX_CFG(a) ({			\42	u64 offset;					\43							\44	offset = 0x900a8ull;				\45	if (mcs->hw->mcs_blks > 1)			\46		offset = 0x700a8ull;			\47	offset += (a) * 0x800ull;			\48	offset; })49 50#define MCSX_HIL_GLOBAL ({				\51	u64 offset;					\52							\53	offset = 0xc0000ull;				\54	if (mcs->hw->mcs_blks > 1)			\55		offset = 0xa0000ull;			\56	offset; })57 58#define MCSX_LINK_LMACX_CFG(a) ({			\59	u64 offset;					\60							\61	offset = 0x90000ull;				\62	if (mcs->hw->mcs_blks > 1)			\63		offset = 0x70000ull;			\64	offset += (a) * 0x800ull;			\65	offset; })66 67#define MCSX_MIL_RX_GBL_STATUS ({			\68	u64 offset;					\69							\70	offset = 0x800c8ull;				\71	if (mcs->hw->mcs_blks > 1)			\72		offset = 0x600c8ull;			\73	offset; })74 75#define MCSX_MIL_IP_GBL_STATUS ({			\76	u64 offset;					\77							\78	offset = 0x800d0ull;				\79	if (mcs->hw->mcs_blks > 1)			\80		offset = 0x600d0ull;			\81	offset; })82 83/* PAB */84#define MCSX_PAB_RX_SLAVE_PORT_CFGX(a) ({	\85	u64 offset;				\86						\87	offset = 0x1718ull;			\88	if (mcs->hw->mcs_blks > 1)		\89		offset = 0x280ull;		\90	offset += (a) * 0x40ull;		\91	offset; })92 93#define MCSX_PAB_TX_SLAVE_PORT_CFGX(a)			(0x2930ull + (a) * 0x40ull)94 95/* PEX registers */96#define MCSX_PEX_RX_SLAVE_VLAN_CFGX(a)          (0x3b58ull + (a) * 0x8ull)97#define MCSX_PEX_TX_SLAVE_VLAN_CFGX(a)          (0x46f8ull + (a) * 0x8ull)98#define MCSX_PEX_TX_SLAVE_CUSTOM_TAG_REL_MODE_SEL(a)	(0x788ull + (a) * 0x8ull)99#define MCSX_PEX_TX_SLAVE_PORT_CONFIG(a)		(0x4738ull + (a) * 0x8ull)100#define MCSX_PEX_RX_SLAVE_PORT_CFGX(a)		(0x3b98ull + (a) * 0x8ull)101#define MCSX_PEX_RX_SLAVE_RULE_ETYPE_CFGX(a) ({	\102	u64 offset;					\103							\104	offset = 0x3fc0ull;				\105	if (mcs->hw->mcs_blks > 1)			\106		offset = 0x558ull;			\107	offset += (a) * 0x8ull;				\108	offset; })109 110#define MCSX_PEX_RX_SLAVE_RULE_DAX(a) ({	\111	u64 offset;					\112							\113	offset = 0x4000ull;				\114	if (mcs->hw->mcs_blks > 1)			\115		offset = 0x598ull;			\116	offset += (a) * 0x8ull;				\117	offset; })118 119#define MCSX_PEX_RX_SLAVE_RULE_DA_RANGE_MINX(a) ({	\120	u64 offset;					\121							\122	offset = 0x4040ull;				\123	if (mcs->hw->mcs_blks > 1)			\124		offset = 0x5d8ull;			\125	offset += (a) * 0x8ull;				\126	offset; })127 128#define MCSX_PEX_RX_SLAVE_RULE_DA_RANGE_MAXX(a) ({	\129	u64 offset;					\130							\131	offset = 0x4048ull;				\132	if (mcs->hw->mcs_blks > 1)			\133		offset = 0x5e0ull;			\134	offset += (a) * 0x8ull;				\135	offset; })136 137#define MCSX_PEX_RX_SLAVE_RULE_COMBO_MINX(a) ({	\138	u64 offset;					\139							\140	offset = 0x4080ull;				\141	if (mcs->hw->mcs_blks > 1)			\142		offset = 0x648ull;			\143	offset += (a) * 0x8ull;				\144	offset; })145 146#define MCSX_PEX_RX_SLAVE_RULE_COMBO_MAXX(a) ({	\147	u64 offset;					\148							\149	offset = 0x4088ull;				\150	if (mcs->hw->mcs_blks > 1)			\151		offset = 0x650ull;			\152	offset += (a) * 0x8ull;				\153	offset; })154 155#define MCSX_PEX_RX_SLAVE_RULE_COMBO_ETX(a) ({	\156	u64 offset;					\157							\158	offset = 0x4090ull;				\159	if (mcs->hw->mcs_blks > 1)			\160		offset = 0x658ull;			\161	offset += (a) * 0x8ull;				\162	offset; })163 164#define MCSX_PEX_RX_SLAVE_RULE_MAC ({	\165	u64 offset;					\166							\167	offset = 0x40e0ull;				\168	if (mcs->hw->mcs_blks > 1)			\169		offset = 0x6d8ull;			\170	offset; })171 172#define MCSX_PEX_RX_SLAVE_RULE_ENABLE ({	\173	u64 offset;					\174							\175	offset = 0x40e8ull;				\176	if (mcs->hw->mcs_blks > 1)			\177		offset = 0x6e0ull;			\178	offset; })179 180#define MCSX_PEX_TX_SLAVE_RULE_ETYPE_CFGX(a) ({	\181	u64 offset;					\182							\183	offset = 0x4b60ull;				\184	if (mcs->hw->mcs_blks > 1)			\185		offset = 0x7d8ull;			\186	offset += (a) * 0x8ull;				\187	offset; })188 189#define MCSX_PEX_TX_SLAVE_RULE_DAX(a) ({	\190	u64 offset;					\191							\192	offset = 0x4ba0ull;				\193	if (mcs->hw->mcs_blks > 1)			\194		offset = 0x818ull;			\195	offset += (a) * 0x8ull;				\196	offset; })197 198#define MCSX_PEX_TX_SLAVE_RULE_DA_RANGE_MINX(a) ({	\199	u64 offset;					\200							\201	offset = 0x4be0ull;				\202	if (mcs->hw->mcs_blks > 1)			\203		offset = 0x858ull;			\204	offset += (a) * 0x8ull;				\205	offset; })206 207#define MCSX_PEX_TX_SLAVE_RULE_DA_RANGE_MAXX(a) ({	\208	u64 offset;					\209							\210	offset = 0x4be8ull;				\211	if (mcs->hw->mcs_blks > 1)			\212		offset = 0x860ull;			\213	offset += (a) * 0x8ull;				\214	offset; })215 216#define MCSX_PEX_TX_SLAVE_RULE_COMBO_MINX(a) ({	\217	u64 offset;					\218							\219	offset = 0x4c20ull;				\220	if (mcs->hw->mcs_blks > 1)			\221		offset = 0x8c8ull;			\222	offset += (a) * 0x8ull;				\223	offset; })224 225#define MCSX_PEX_TX_SLAVE_RULE_COMBO_MAXX(a) ({	\226	u64 offset;					\227							\228	offset = 0x4c28ull;				\229	if (mcs->hw->mcs_blks > 1)			\230		offset = 0x8d0ull;			\231	offset += (a) * 0x8ull;				\232	offset; })233 234#define MCSX_PEX_TX_SLAVE_RULE_COMBO_ETX(a) ({	\235	u64 offset;					\236							\237	offset = 0x4c30ull;				\238	if (mcs->hw->mcs_blks > 1)			\239		offset = 0x8d8ull;			\240	offset += (a) * 0x8ull;				\241	offset; })242 243#define MCSX_PEX_TX_SLAVE_RULE_MAC ({	\244	u64 offset;					\245							\246	offset = 0x4c80ull;				\247	if (mcs->hw->mcs_blks > 1)			\248		offset = 0x958ull;			\249	offset; })250 251#define MCSX_PEX_TX_SLAVE_RULE_ENABLE ({	\252	u64 offset;					\253							\254	offset = 0x4c88ull;				\255	if (mcs->hw->mcs_blks > 1)			\256		offset = 0x960ull;			\257	offset; })258 259#define MCSX_PEX_RX_SLAVE_PEX_CONFIGURATION ({		\260	u64 offset;					\261							\262	offset = 0x3b50ull;				\263	if (mcs->hw->mcs_blks > 1)			\264		offset = 0x4c0ull;			\265	offset; })266 267/* CNF10K-B */268#define MCSX_PEX_RX_SLAVE_CUSTOM_TAGX(a)        (0x4c8ull + (a) * 0x8ull)269#define MCSX_PEX_TX_SLAVE_CUSTOM_TAGX(a)        (0x748ull + (a) * 0x8ull)270#define MCSX_PEX_RX_SLAVE_ETYPE_ENABLE          0x6e8ull271#define MCSX_PEX_TX_SLAVE_ETYPE_ENABLE          0x968ull272 273/* BEE */274#define MCSX_BBE_RX_SLAVE_PADDING_CTL			0xe08ull275#define MCSX_BBE_TX_SLAVE_PADDING_CTL			0x12f8ull276#define MCSX_BBE_RX_SLAVE_CAL_ENTRY			0x180ull277#define MCSX_BBE_RX_SLAVE_CAL_LEN			0x188ull278#define MCSX_PAB_RX_SLAVE_FIFO_SKID_CFGX(a)		(0x290ull + (a) * 0x40ull)279#define MCSX_BBE_RX_SLAVE_DFIFO_OVERFLOW_0		0xe20280#define MCSX_BBE_TX_SLAVE_DFIFO_OVERFLOW_0		0x1298281#define MCSX_BBE_RX_SLAVE_PLFIFO_OVERFLOW_0		0xe40282#define MCSX_BBE_TX_SLAVE_PLFIFO_OVERFLOW_0		0x12b8283#define MCSX_BBE_RX_SLAVE_BBE_INT ({	\284	u64 offset;			\285					\286	offset = 0xe00ull;		\287	if (mcs->hw->mcs_blks > 1)	\288		offset = 0x160ull;	\289	offset; })290 291#define MCSX_BBE_RX_SLAVE_BBE_INT_ENB ({	\292	u64 offset;			\293					\294	offset = 0xe08ull;		\295	if (mcs->hw->mcs_blks > 1)	\296		offset = 0x168ull;	\297	offset; })298 299#define MCSX_BBE_RX_SLAVE_BBE_INT_INTR_RW ({	\300	u64 offset;			\301					\302	offset = 0xe08ull;		\303	if (mcs->hw->mcs_blks > 1)	\304		offset = 0x178ull;	\305	offset; })306 307#define MCSX_BBE_TX_SLAVE_BBE_INT ({	\308	u64 offset;			\309					\310	offset = 0x1278ull;		\311	if (mcs->hw->mcs_blks > 1)	\312		offset = 0x1e0ull;	\313	offset; })314 315#define MCSX_BBE_TX_SLAVE_BBE_INT_INTR_RW ({	\316	u64 offset;			\317					\318	offset = 0x1278ull;		\319	if (mcs->hw->mcs_blks > 1)	\320		offset = 0x1f8ull;	\321	offset; })322 323#define MCSX_BBE_TX_SLAVE_BBE_INT_ENB ({	\324	u64 offset;			\325					\326	offset = 0x1280ull;		\327	if (mcs->hw->mcs_blks > 1)	\328		offset = 0x1e8ull;	\329	offset; })330 331#define MCSX_PAB_RX_SLAVE_PAB_INT ({	\332	u64 offset;			\333					\334	offset = 0x16f0ull;		\335	if (mcs->hw->mcs_blks > 1)	\336		offset = 0x260ull;	\337	offset; })338 339#define MCSX_PAB_RX_SLAVE_PAB_INT_ENB ({	\340	u64 offset;			\341					\342	offset = 0x16f8ull;		\343	if (mcs->hw->mcs_blks > 1)	\344		offset = 0x268ull;	\345	offset; })346 347#define MCSX_PAB_RX_SLAVE_PAB_INT_INTR_RW ({	\348	u64 offset;			\349					\350	offset = 0x16f8ull;		\351	if (mcs->hw->mcs_blks > 1)	\352		offset = 0x278ull;	\353	offset; })354 355#define MCSX_PAB_TX_SLAVE_PAB_INT ({	\356	u64 offset;			\357					\358	offset = 0x2908ull;		\359	if (mcs->hw->mcs_blks > 1)	\360		offset = 0x380ull;	\361	offset; })362 363#define MCSX_PAB_TX_SLAVE_PAB_INT_ENB ({	\364	u64 offset;			\365					\366	offset = 0x2910ull;		\367	if (mcs->hw->mcs_blks > 1)	\368		offset = 0x388ull;	\369	offset; })370 371#define MCSX_PAB_TX_SLAVE_PAB_INT_INTR_RW ({	\372	u64 offset;			\373					\374	offset = 0x16f8ull;		\375	if (mcs->hw->mcs_blks > 1)	\376		offset = 0x398ull;	\377	offset; })378 379/* CPM registers */380#define MCSX_CPM_RX_SLAVE_FLOWID_TCAM_DATAX(a, b) ({	\381	u64 offset;					\382							\383	offset = 0x30740ull;				\384	if (mcs->hw->mcs_blks > 1)			\385		offset = 0x3bf8ull;			\386	offset += (a) * 0x8ull + (b) * 0x20ull;		\387	offset; })388 389#define MCSX_CPM_RX_SLAVE_FLOWID_TCAM_MASKX(a, b) ({	\390	u64 offset;					\391							\392	offset = 0x34740ull;				\393	if (mcs->hw->mcs_blks > 1)			\394		offset = 0x43f8ull;			\395	offset += (a) * 0x8ull + (b) * 0x20ull;		\396	offset; })397 398#define MCSX_CPM_RX_SLAVE_FLOWID_TCAM_ENA_0 ({		\399	u64 offset;					\400							\401	offset = 0x30700ull;				\402	if (mcs->hw->mcs_blks > 1)			\403		offset = 0x3bd8ull;			\404	offset; })405 406#define MCSX_CPM_RX_SLAVE_SC_CAMX(a, b)	({		\407	u64 offset;					\408							\409	offset = 0x38780ull;				\410	if (mcs->hw->mcs_blks > 1)			\411		offset = 0x4c08ull;			\412	offset +=  (a) * 0x8ull + (b) * 0x10ull;	\413	offset; })414 415#define MCSX_CPM_RX_SLAVE_SC_CAM_ENA(a)	({		\416	u64 offset;					\417							\418	offset = 0x38740ull + (a) * 0x8ull;		\419	if (mcs->hw->mcs_blks > 1)			\420		offset = 0x4bf8ull;			\421	offset; })422 423#define MCSX_CPM_RX_SLAVE_SECY_MAP_MEMX(a) ({		\424	u64 offset;					\425							\426	offset = 0x23ee0ull;				\427	if (mcs->hw->mcs_blks > 1)			\428		offset = 0xbd0ull;			\429	offset += (a) * 0x8ull;				\430	offset; })431 432#define MCSX_CPM_RX_SLAVE_SECY_PLCY_MEM_0X(a) ({	\433	u64 offset;					\434							\435	offset = (0x246e0ull + (a) * 0x10ull);		\436	if (mcs->hw->mcs_blks > 1)			\437		offset = (0xdd0ull + (a) * 0x8ull);	\438	offset; })439 440#define MCSX_CPM_RX_SLAVE_SA_KEY_LOCKOUTX(a) ({		\441	u64 offset;					\442							\443	offset = 0x23E90ull;				\444	if (mcs->hw->mcs_blks > 1)			\445		offset = 0xbb0ull;			\446	offset += (a) * 0x8ull;				\447	offset; })448 449#define MCSX_CPM_RX_SLAVE_SA_MAP_MEMX(a) ({		\450	u64 offset;					\451							\452	offset = 0x256e0ull;				\453	if (mcs->hw->mcs_blks > 1)			\454		offset = 0xfd0ull;			\455	offset += (a) * 0x8ull;				\456	offset; })457 458#define MCSX_CPM_RX_SLAVE_SA_PLCY_MEMX(a, b) ({		\459	u64 offset;					\460							\461	offset = 0x27700ull;				\462	if (mcs->hw->mcs_blks > 1)			\463		offset = 0x17d8ull;			\464	offset +=  (a) * 0x8ull + (b) * 0x40ull;	\465	offset; })466 467#define MCSX_CPM_RX_SLAVE_SA_PN_TABLE_MEMX(a) ({	\468	u64 offset;					\469							\470	offset = 0x2f700ull;				\471	if (mcs->hw->mcs_blks > 1)			\472		offset = 0x37d8;			\473	offset += (a) * 0x8ull;				\474	offset; })475 476#define MCSX_CPM_RX_SLAVE_XPN_THRESHOLD	({		\477	u64 offset;					\478							\479	offset = 0x23e40ull;				\480	if (mcs->hw->mcs_blks > 1)			\481		offset = 0xb90ull;			\482	offset; })483 484#define MCSX_CPM_RX_SLAVE_PN_THRESHOLD	({		\485	u64 offset;					\486							\487	offset = 0x23e48ull;				\488	if (mcs->hw->mcs_blks > 1)			\489		offset = 0xb98ull;			\490	offset; })491 492#define MCSX_CPM_RX_SLAVE_PN_THRESH_REACHEDX(a)	({	\493	u64 offset;					\494							\495	offset = 0x23e50ull;				\496	if (mcs->hw->mcs_blks > 1)			\497		offset = 0xba0ull;			\498	offset += (a) * 0x8ull;				\499	offset; })500 501#define MCSX_CPM_RX_SLAVE_FLOWID_TCAM_ENA_1		0x30708ull502#define MCSX_CPM_RX_SLAVE_SECY_PLCY_MEM_1X(a)		(0x246e8ull + (a) * 0x10ull)503 504/* TX registers */505#define MCSX_CPM_TX_SLAVE_FLOWID_TCAM_DATAX(a, b) ({	\506	u64 offset;					\507							\508	offset = 0x51d50ull;				\509	if (mcs->hw->mcs_blks > 1)			\510		offset = 0xa7c0ull;			\511	offset += (a) * 0x8ull + (b) * 0x20ull;		\512	offset; })513 514#define MCSX_CPM_TX_SLAVE_FLOWID_TCAM_MASKX(a, b) ({	\515	u64 offset;					\516							\517	offset = 0x55d50ull;				\518	if (mcs->hw->mcs_blks > 1)			\519		offset = 0xafc0ull;			\520	offset += (a) * 0x8ull + (b) * 0x20ull;		\521	offset; })522 523#define MCSX_CPM_TX_SLAVE_FLOWID_TCAM_ENA_0 ({		\524	u64 offset;					\525							\526	offset = 0x51d10ull;				\527	if (mcs->hw->mcs_blks > 1)			\528		offset = 0xa7a0ull;			\529	offset; })530 531#define MCSX_CPM_TX_SLAVE_SECY_MAP_MEM_0X(a) ({		\532	u64 offset;					\533							\534	offset = 0x3e508ull + (a) * 0x8ull;		\535	if (mcs->hw->mcs_blks > 1)			\536		offset = 0x5550ull + (a) * 0x10ull;	\537	offset; })538 539#define MCSX_CPM_TX_SLAVE_SECY_PLCY_MEMX(a) ({	\540	u64 offset;					\541							\542	offset = 0x3ed08ull;				\543	if (mcs->hw->mcs_blks > 1)			\544		offset = 0x5950ull;			\545	offset += (a) * 0x8ull;				\546	offset; })547 548#define MCSX_CPM_TX_SLAVE_SA_KEY_LOCKOUTX(a) ({		\549	u64 offset;					\550							\551	offset = 0x3e4c0ull;				\552	if (mcs->hw->mcs_blks > 1)			\553		offset = 0x5538ull;			\554	offset += (a) * 0x8ull;				\555	offset; })556 557#define MCSX_CPM_TX_SLAVE_SA_MAP_MEM_0X(a) ({		\558	u64 offset;					\559							\560	offset = 0x3fd10ull + (a) * 0x10ull;		\561	if (mcs->hw->mcs_blks > 1)			\562		offset = 0x6150ull + (a) * 0x8ull;	\563	offset; })564 565#define MCSX_CPM_TX_SLAVE_SA_PLCY_MEMX(a, b) ({		\566	u64 offset;					\567							\568	offset = 0x40d10ull;				\569	if (mcs->hw->mcs_blks > 1)			\570		offset = 0x63a0ull;			\571	offset += (a) * 0x8ull + (b) * 0x80ull;		\572	offset; })573 574#define MCSX_CPM_TX_SLAVE_SA_PN_TABLE_MEMX(a) ({	\575	u64 offset;					\576							\577	offset = 0x50d10ull;				\578	if (mcs->hw->mcs_blks > 1)			\579		offset = 0xa3a0ull;			\580	offset += (a) * 0x8ull;				\581	offset; })582 583#define MCSX_CPM_TX_SLAVE_XPN_THRESHOLD ({		\584	u64 offset;					\585							\586	offset = 0x3e4b0ull;				\587	if (mcs->hw->mcs_blks > 1)			\588		offset = 0x5528ull;			\589	offset; })590 591#define MCSX_CPM_TX_SLAVE_PN_THRESHOLD ({		\592	u64 offset;					\593							\594	offset = 0x3e4b8ull;				\595	if (mcs->hw->mcs_blks > 1)			\596		offset = 0x5530ull;			\597	offset; })598 599#define MCSX_CPM_TX_SLAVE_SA_MAP_MEM_1X(a)		(0x3fd18ull + (a) * 0x10ull)600#define MCSX_CPM_TX_SLAVE_SECY_MAP_MEM_1X(a)		(0x5558ull + (a) * 0x10ull)601#define MCSX_CPM_TX_SLAVE_FLOWID_TCAM_ENA_1		0x51d18ull602#define MCSX_CPM_TX_SLAVE_TX_SA_ACTIVEX(a)		(0x5b50 + (a) * 0x8ull)603#define MCSX_CPM_TX_SLAVE_SA_INDEX0_VLDX(a)		(0x5d50 + (a) * 0x8ull)604#define MCSX_CPM_TX_SLAVE_SA_INDEX1_VLDX(a)		(0x5f50 + (a) * 0x8ull)605#define MCSX_CPM_TX_SLAVE_AUTO_REKEY_ENABLE_0		0x5500ull606 607/* CSE */608#define MCSX_CSE_RX_MEM_SLAVE_IFINCTLBCPKTSX(a) ({	\609	u64 offset;					\610							\611	offset = 0x9e80ull;				\612	if (mcs->hw->mcs_blks > 1)			\613		offset = 0xc218ull;			\614	offset += (a) * 0x8ull;				\615	offset; })616 617#define MCSX_CSE_RX_MEM_SLAVE_IFINCTLMCPKTSX(a) ({	\618	u64 offset;					\619							\620	offset = 0x9680ull;				\621	if (mcs->hw->mcs_blks > 1)			\622		offset = 0xc018ull;			\623	offset += (a) * 0x8ull;				\624	offset; })625 626#define MCSX_CSE_RX_MEM_SLAVE_IFINCTLOCTETSX(a) ({	\627	u64 offset;					\628							\629	offset = 0x6e80ull;				\630	if (mcs->hw->mcs_blks > 1)			\631		offset = 0xbc18ull;			\632	offset +=  (a) * 0x8ull;			\633	offset; })634 635#define MCSX_CSE_RX_MEM_SLAVE_IFINCTLUCPKTSX(a) ({	\636	u64 offset;					\637							\638	offset = 0x8e80ull;				\639	if (mcs->hw->mcs_blks > 1)			\640		offset = 0xbe18ull;			\641	offset +=  (a) * 0x8ull;			\642	offset; })643 644#define	MCSX_CSE_RX_MEM_SLAVE_IFINUNCTLBCPKTSX(a) ({	\645	u64 offset;					\646							\647	offset = 0x8680ull;				\648	if (mcs->hw->mcs_blks > 1)			\649		offset = 0xca18ull;			\650	offset +=  (a) * 0x8ull;			\651	offset; })652 653#define	MCSX_CSE_RX_MEM_SLAVE_IFINUNCTLMCPKTSX(a) ({	\654	u64 offset;					\655							\656	offset = 0x7e80ull;				\657	if (mcs->hw->mcs_blks > 1)			\658		offset = 0xc818ull;			\659	offset +=  (a) * 0x8ull;			\660	offset; })661 662#define	MCSX_CSE_RX_MEM_SLAVE_IFINUNCTLOCTETSX(a) ({	\663	u64 offset;					\664							\665	offset = 0x6680ull;				\666	if (mcs->hw->mcs_blks > 1)			\667		offset = 0xc418ull;			\668	offset +=  (a) * 0x8ull;			\669	offset; })670 671#define	MCSX_CSE_RX_MEM_SLAVE_IFINUNCTLUCPKTSX(a) ({	\672	u64 offset;					\673							\674	offset = 0x7680ull;				\675	if (mcs->hw->mcs_blks > 1)			\676		offset = 0xc618ull;			\677	offset +=  (a) * 0x8ull;			\678	offset; })679 680#define MCSX_CSE_RX_MEM_SLAVE_INOCTETSSECYDECRYPTEDX(a) ({ \681	u64 offset;					\682							\683	offset = 0x5e80ull;				\684	if (mcs->hw->mcs_blks > 1)			\685		offset = 0xdc18ull;			\686	offset += (a) * 0x8ull;				\687	offset; })688 689#define MCSX_CSE_RX_MEM_SLAVE_INOCTETSSECYVALIDATEX(a)({ \690	u64 offset;					\691							\692	offset = 0x5680ull;				\693	if (mcs->hw->mcs_blks > 1)			\694		offset = 0xda18ull;			\695	offset += (a) * 0x8ull;				\696	offset; })697 698#define MCSX_CSE_RX_MEM_SLAVE_INPKTSCTRLPORTDISABLEDX(a) ({ \699	u64 offset;					\700							\701	offset = 0xd680ull;				\702	if (mcs->hw->mcs_blks > 1)			\703		offset = 0xce18ull;			\704	offset += (a) * 0x8ull;				\705	offset; })706 707#define MCSX_CSE_RX_MEM_SLAVE_INPKTSFLOWIDTCAMHITX(a) ({ \708	u64 offset;					\709							\710	offset = 0x16a80ull;				\711	if (mcs->hw->mcs_blks > 1)			\712		offset = 0xec78ull;			\713	offset += (a) * 0x8ull;				\714	offset; })715 716#define MCSX_CSE_RX_MEM_SLAVE_INPKTSFLOWIDTCAMMISSX(a) ({ \717	u64 offset;					\718							\719	offset = 0x16680ull;				\720	if (mcs->hw->mcs_blks > 1)			\721		offset = 0xec38ull;			\722	offset += (a) * 0x8ull;				\723	offset; })724 725#define MCSX_CSE_RX_MEM_SLAVE_INPKTSPARSEERRX(a) ({	\726	u64 offset;					\727							\728	offset = 0x16880ull;				\729	if (mcs->hw->mcs_blks > 1)			\730		offset = 0xec18ull;			\731	offset += (a) * 0x8ull;				\732	offset; })733 734#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCCAMHITX(a) ({	\735	u64 offset;					\736							\737	offset = 0xfe80ull;				\738	if (mcs->hw->mcs_blks > 1)			\739		offset = 0xde18ull;			\740	offset += (a) * 0x8ull;				\741	offset; })742 743#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCINVALIDX(a) ({	\744	u64 offset;					\745							\746	offset = 0x10680ull;				\747	if (mcs->hw->mcs_blks > 1)			\748		offset = 0xe418ull;			\749	offset += (a) * 0x8ull;				\750	offset; })751 752#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCNOTVALIDX(a) ({	\753	u64 offset;					\754							\755	offset = 0x10e80ull;				\756	if (mcs->hw->mcs_blks > 1)			\757		offset = 0xe218ull;			\758	offset += (a) * 0x8ull;				\759	offset; })760 761#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYBADTAGX(a) ({	\762	u64 offset;					\763							\764	offset = 0xae80ull;				\765	if (mcs->hw->mcs_blks > 1)			\766		offset = 0xd418ull;			\767	offset += (a) * 0x8ull;				\768	offset; })769 770#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYNOSAX(a) ({	\771	u64 offset;					\772							\773	offset = 0xc680ull;				\774	if (mcs->hw->mcs_blks > 1)			\775		offset = 0xd618ull;			\776	offset += (a) * 0x8ull;				\777	offset; })778 779#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYNOSAERRORX(a) ({ \780	u64 offset;					\781							\782	offset = 0xce80ull;				\783	if (mcs->hw->mcs_blks > 1)			\784		offset = 0xd818ull;			\785	offset += (a) * 0x8ull;				\786	offset; })787 788#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYTAGGEDCTLX(a) ({ \789	u64 offset;					\790							\791	offset = 0xbe80ull;				\792	if (mcs->hw->mcs_blks > 1)			\793		offset = 0xcc18ull;			\794	offset += (a) * 0x8ull;				\795	offset; })796 797#define MCSX_CSE_RX_SLAVE_CTRL	({			\798	u64 offset;					\799							\800	offset = 0x52a0ull;				\801	if (mcs->hw->mcs_blks > 1)			\802		offset = 0x9c0ull;			\803	offset; })804 805#define MCSX_CSE_RX_SLAVE_STATS_CLEAR	({		\806	u64 offset;					\807							\808	offset = 0x52b8ull;				\809	if (mcs->hw->mcs_blks > 1)			\810		offset = 0x9d8ull;			\811	offset; })812 813#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCUNCHECKEDX(a) ({	\814	u64 offset;					\815							\816	offset = 0xee80ull;				\817	if (mcs->hw->mcs_blks > 1)			\818		offset = 0xe818ull;			\819	offset += (a) * 0x8ull;				\820	offset; })821 822#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYUNTAGGEDX(a) ({	\823	u64 offset;					\824							\825	offset = 0xa680ull;				\826	if (mcs->hw->mcs_blks > 1)			\827		offset = 0xd018ull;			\828	offset += (a) * 0x8ull;				\829	offset; })830 831#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCLATEORDELAYEDX(a)	({	\832	u64 offset;						\833								\834	offset = 0xf680ull;					\835	if (mcs->hw->mcs_blks > 1)				\836		offset = 0xe018ull;				\837	offset += (a) * 0x8ull;					\838	offset; })839 840#define MCSX_CSE_RX_MEM_SLAVE_INOCTETSSCDECRYPTEDX(a)	(0xe680ull + (a) * 0x8ull)841#define MCSX_CSE_RX_MEM_SLAVE_INOCTETSSCVALIDATEX(a)	(0xde80ull + (a) * 0x8ull)842#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYNOTAGX(a)	(0xd218 + (a) * 0x8ull)843#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSECYCTLX(a)		(0xb680ull + (a) * 0x8ull)844#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSAINVALIDX(a)	(0x12680ull + (a) * 0x8ull)845#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSANOTUSINGSAERRORX(a) (0x15680ull + (a) * 0x8ull)846#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSANOTVALIDX(a)	(0x13680ull + (a) * 0x8ull)847#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSAOKX(a)		(0x11680ull + (a) * 0x8ull)848#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSAUNUSEDSAX(a)	(0x14680ull + (a) * 0x8ull)849#define MCSX_CSE_RX_MEM_SLAVE_INPKTSEARLYPREEMPTERRX(a) (0xec58ull + (a) * 0x8ull)850#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCOKX(a)		(0xea18ull + (a) * 0x8ull)851#define MCSX_CSE_RX_MEM_SLAVE_INPKTSSCDELAYEDX(a)	(0xe618ull + (a) * 0x8ull)852 853/* CSE TX */854#define MCSX_CSE_TX_MEM_SLAVE_IFOUTCOMMONOCTETSX(a)	(0x18440ull + (a) * 0x8ull)855#define MCSX_CSE_TX_MEM_SLAVE_IFOUTCTLBCPKTSX(a) ({	\856	u64 offset;					\857							\858	offset = 0x1c440ull;				\859	if (mcs->hw->mcs_blks > 1)			\860		offset = 0xf478ull;			\861	offset += (a) * 0x8ull;				\862	offset; })863 864#define MCSX_CSE_TX_MEM_SLAVE_IFOUTCTLMCPKTSX(a) ({	\865	u64 offset;					\866							\867	offset = 0x1bc40ull;				\868	if (mcs->hw->mcs_blks > 1)			\869		offset = 0xf278ull;			\870	offset += (a) * 0x8ull;				\871	offset; })872 873#define MCSX_CSE_TX_MEM_SLAVE_IFOUTCTLOCTETSX(a) ({	\874	u64 offset;					\875							\876	offset = 0x19440ull;				\877	if (mcs->hw->mcs_blks > 1)			\878		offset = 0xee78ull;			\879	offset += (a) * 0x8ull;				\880	offset; })881 882#define MCSX_CSE_TX_MEM_SLAVE_IFOUTCTLUCPKTSX(a) ({	\883	u64 offset;					\884							\885	offset = 0x1b440ull;				\886	if (mcs->hw->mcs_blks > 1)			\887		offset = 0xf078ull;			\888	offset += (a) * 0x8ull;				\889	offset; })890 891#define MCSX_CSE_TX_MEM_SLAVE_IFOUTUNCTLBCPKTSX(a) ({	\892	u64 offset;					\893							\894	offset = 0x1ac40ull;				\895	if (mcs->hw->mcs_blks > 1)			\896		offset = 0xfc78ull;			\897	offset += (a) * 0x8ull;				\898	offset; })899 900#define MCSX_CSE_TX_MEM_SLAVE_IFOUTUNCTLMCPKTSX(a) ({	\901	u64 offset;					\902							\903	offset = 0x1a440ull;				\904	if (mcs->hw->mcs_blks > 1)			\905		offset = 0xfa78ull;			\906	offset += (a) * 0x8ull;				\907	offset; })908 909#define MCSX_CSE_TX_MEM_SLAVE_IFOUTUNCTLOCTETSX(a) ({	\910	u64 offset;					\911							\912	offset = 0x18c40ull;				\913	if (mcs->hw->mcs_blks > 1)			\914		offset = 0xf678ull;			\915	offset += (a) * 0x8ull;				\916	offset; })917 918#define MCSX_CSE_TX_MEM_SLAVE_IFOUTUNCTLUCPKTSX(a) ({	\919	u64 offset;					\920							\921	offset = 0x19c40ull;				\922	if (mcs->hw->mcs_blks > 1)			\923		offset = 0xf878ull;			\924	offset += (a) * 0x8ull;				\925	offset; })926 927#define MCSX_CSE_TX_MEM_SLAVE_OUTOCTETSSECYENCRYPTEDX(a) ({	\928	u64 offset;					\929							\930	offset = 0x17c40ull;				\931	if (mcs->hw->mcs_blks > 1)			\932		offset = 0x10878ull;			\933	offset += (a) * 0x8ull;				\934	offset; })935 936#define MCSX_CSE_TX_MEM_SLAVE_OUTOCTETSSECYPROTECTEDX(a) ({	\937	u64 offset;					\938							\939	offset = 0x17440ull;				\940	if (mcs->hw->mcs_blks > 1)			\941		offset = 0x10678ull;			\942	offset += (a) * 0x8ull;				\943	offset; })944 945#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSCTRLPORTDISABLEDX(a) ({	\946	u64 offset;					\947							\948	offset = 0x1e440ull;				\949	if (mcs->hw->mcs_blks > 1)			\950		offset = 0xfe78ull;			\951	offset += (a) * 0x8ull;				\952	offset; })953 954#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSFLOWIDTCAMHITX(a) ({	\955	u64 offset;					\956							\957	offset = 0x23240ull;				\958	if (mcs->hw->mcs_blks > 1)			\959		offset = 0x10ed8ull;			\960	offset += (a) * 0x8ull;				\961	offset; })962 963#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSFLOWIDTCAMMISSX(a) ({	\964	u64 offset;					\965							\966	offset = 0x22c40ull;				\967	if (mcs->hw->mcs_blks > 1)			\968		offset = 0x10e98ull;			\969	offset += (a) * 0x8ull;				\970	offset; })971 972#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSPARSEERRX(a) ({	\973	u64 offset;					\974							\975	offset = 0x22e40ull;				\976	if (mcs->hw->mcs_blks > 1)			\977		offset = 0x10e78ull;			\978	offset += (a) * 0x8ull;				\979	offset; })980 981#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSCENCRYPTEDX(a) ({	\982	u64 offset;					\983							\984	offset = 0x20440ull;				\985	if (mcs->hw->mcs_blks > 1)			\986		offset = 0x10c78ull;			\987	offset += (a) * 0x8ull;				\988	offset; })989 990#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSCPROTECTEDX(a) ({	\991	u64 offset;					\992							\993	offset = 0x1fc40ull;				\994	if (mcs->hw->mcs_blks > 1)			\995		offset = 0x10a78ull;			\996	offset += (a) * 0x8ull;				\997	offset; })998 999#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSECTAGINSERTIONERRX(a) ({	\1000	u64 offset;					\1001							\1002	offset = 0x23040ull;				\1003	if (mcs->hw->mcs_blks > 1)			\1004		offset = 0x110d8ull;			\1005	offset += (a) * 0x8ull;				\1006	offset; })1007 1008#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSECYNOACTIVESAX(a) ({	\1009	u64 offset;					\1010							\1011	offset = 0x1dc40ull;				\1012	if (mcs->hw->mcs_blks > 1)			\1013		offset = 0x10278ull;			\1014	offset += (a) * 0x8ull;				\1015	offset; })1016 1017#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSECYTOOLONGX(a) ({	\1018	u64 offset;					\1019							\1020	offset = 0x1d440ull;				\1021	if (mcs->hw->mcs_blks > 1)			\1022		offset = 0x10478ull;			\1023	offset += (a) * 0x8ull;				\1024	offset; })1025 1026#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSECYUNTAGGEDX(a) ({	\1027	u64 offset;					\1028							\1029	offset = 0x1cc40ull;				\1030	if (mcs->hw->mcs_blks > 1)			\1031		offset = 0x10078ull;			\1032	offset += (a) * 0x8ull;				\1033	offset; })1034 1035#define MCSX_CSE_TX_SLAVE_CTRL	({	\1036	u64 offset;					\1037							\1038	offset = 0x54a0ull;				\1039	if (mcs->hw->mcs_blks > 1)			\1040		offset = 0xa00ull;			\1041	offset; })1042 1043#define MCSX_CSE_TX_SLAVE_STATS_CLEAR ({		\1044	u64 offset;					\1045							\1046	offset = 0x54b8ull;				\1047	if (mcs->hw->mcs_blks > 1)			\1048		offset = 0xa18ull;			\1049	offset; })1050 1051#define MCSX_CSE_TX_MEM_SLAVE_OUTOCTETSSCENCRYPTEDX(a)	(0x1f440ull + (a) * 0x8ull)1052#define MCSX_CSE_TX_MEM_SLAVE_OUTOCTETSSCPROTECTEDX(a)	(0x1ec40ull + (a) * 0x8ull)1053#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSEARLYPREEMPTERRX(a) (0x10eb8ull + (a) * 0x8ull)1054#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSAENCRYPTEDX(a)	(0x21c40ull + (a) * 0x8ull)1055#define MCSX_CSE_TX_MEM_SLAVE_OUTPKTSSAPROTECTEDX(a)	(0x20c40ull + (a) * 0x8ull)1056 1057#define MCSX_IP_INT ({			\1058	u64 offset;			\1059					\1060	offset = 0x80028ull;		\1061	if (mcs->hw->mcs_blks > 1)	\1062		offset = 0x60028ull;	\1063	offset; })1064 1065#define MCSX_IP_INT_ENA_W1S ({		\1066	u64 offset;			\1067					\1068	offset = 0x80040ull;		\1069	if (mcs->hw->mcs_blks > 1)	\1070		offset = 0x60040ull;	\1071	offset; })1072 1073#define MCSX_IP_INT_ENA_W1C ({		\1074	u64 offset;			\1075					\1076	offset = 0x80038ull;		\1077	if (mcs->hw->mcs_blks > 1)	\1078		offset = 0x60038ull;	\1079	offset; })1080 1081#define MCSX_TOP_SLAVE_INT_SUM ({	\1082	u64 offset;			\1083					\1084	offset = 0xc20ull;		\1085	if (mcs->hw->mcs_blks > 1)	\1086		offset = 0xab8ull;	\1087	offset; })1088 1089#define MCSX_TOP_SLAVE_INT_SUM_ENB ({	\1090	u64 offset;			\1091					\1092	offset = 0xc28ull;		\1093	if (mcs->hw->mcs_blks > 1)	\1094		offset = 0xac0ull;	\1095	offset; })1096 1097#define MCSX_CPM_RX_SLAVE_RX_INT ({	\1098	u64 offset;			\1099					\1100	offset = 0x23c00ull;		\1101	if (mcs->hw->mcs_blks > 1)	\1102		offset = 0x0ad8ull;	\1103	offset; })1104 1105#define MCSX_CPM_RX_SLAVE_RX_INT_ENB ({	\1106	u64 offset;			\1107					\1108	offset = 0x23c08ull;		\1109	if (mcs->hw->mcs_blks > 1)	\1110		offset = 0xae0ull;	\1111	offset; })1112 1113#define MCSX_CPM_TX_SLAVE_TX_INT ({	\1114	u64 offset;			\1115					\1116	offset = 0x3d490ull;		\1117	if (mcs->hw->mcs_blks > 1)	\1118		offset = 0x54a0ull;	\1119	offset; })1120 1121#define MCSX_CPM_TX_SLAVE_TX_INT_ENB ({	\1122	u64 offset;			\1123					\1124	offset = 0x3d498ull;		\1125	if (mcs->hw->mcs_blks > 1)	\1126		offset = 0x54a8ull;	\1127	offset; })1128 1129#endif1130