xref: /dpdk/drivers/common/nitrox/nitrox_csr.h (revision 751ea2c0f7580a7c51c7d12fc5220405ddcc9ca6)
1024a8abbSNagadheeraj Rottela /* SPDX-License-Identifier: BSD-3-Clause
2024a8abbSNagadheeraj Rottela  * Copyright(C) 2019 Marvell International Ltd.
3024a8abbSNagadheeraj Rottela  */
4024a8abbSNagadheeraj Rottela 
5024a8abbSNagadheeraj Rottela #ifndef _NITROX_CSR_H_
6024a8abbSNagadheeraj Rottela #define _NITROX_CSR_H_
7024a8abbSNagadheeraj Rottela 
8024a8abbSNagadheeraj Rottela #include <rte_common.h>
9024a8abbSNagadheeraj Rottela #include <rte_io.h>
10024a8abbSNagadheeraj Rottela 
11024a8abbSNagadheeraj Rottela #define CSR_DELAY	30
12024a8abbSNagadheeraj Rottela #define NITROX_CSR_ADDR(bar_addr, offset) (bar_addr + (offset))
13024a8abbSNagadheeraj Rottela 
14024a8abbSNagadheeraj Rottela /* NPS packet registers */
15024a8abbSNagadheeraj Rottela #define NPS_PKT_IN_INSTR_CTLX(_i)	(0x10060UL + ((_i) * 0x40000UL))
16024a8abbSNagadheeraj Rottela #define NPS_PKT_IN_INSTR_BADDRX(_i)	(0x10068UL + ((_i) * 0x40000UL))
17024a8abbSNagadheeraj Rottela #define NPS_PKT_IN_INSTR_RSIZEX(_i)	(0x10070UL + ((_i) * 0x40000UL))
18024a8abbSNagadheeraj Rottela #define NPS_PKT_IN_DONE_CNTSX(_i)	(0x10080UL + ((_i) * 0x40000UL))
19024a8abbSNagadheeraj Rottela #define NPS_PKT_IN_INSTR_BAOFF_DBELLX(_i)	(0x10078UL + ((_i) * 0x40000UL))
20024a8abbSNagadheeraj Rottela #define NPS_PKT_IN_INT_LEVELSX(_i)		(0x10088UL + ((_i) * 0x40000UL))
21024a8abbSNagadheeraj Rottela #define NPS_PKT_SLC_CTLX(_i)		(0x10000UL + ((_i) * 0x40000UL))
22024a8abbSNagadheeraj Rottela #define NPS_PKT_SLC_CNTSX(_i)		(0x10008UL + ((_i) * 0x40000UL))
23024a8abbSNagadheeraj Rottela #define NPS_PKT_SLC_INT_LEVELSX(_i)	(0x10010UL + ((_i) * 0x40000UL))
24024a8abbSNagadheeraj Rottela 
25024a8abbSNagadheeraj Rottela /* AQM Virtual Function Registers */
26024a8abbSNagadheeraj Rottela #define AQMQ_QSZX(_i)			(0x20008UL + ((_i) * 0x40000UL))
27024a8abbSNagadheeraj Rottela 
28*751ea2c0SNagadheeraj Rottela /* ZQM virtual function registers */
29*751ea2c0SNagadheeraj Rottela #define ZQMQ_DRBLX(_i)			(0x30000UL + ((_i) * 0x40000UL))
30*751ea2c0SNagadheeraj Rottela #define ZQMQ_QSZX(_i)			(0x30008UL + ((_i) * 0x40000UL))
31*751ea2c0SNagadheeraj Rottela #define ZQMQ_BADRX(_i)			(0x30010UL + ((_i) * 0x40000UL))
32*751ea2c0SNagadheeraj Rottela #define ZQMQ_NXT_CMDX(_i)		(0x30018UL + ((_i) * 0x40000UL))
33*751ea2c0SNagadheeraj Rottela #define ZQMQ_CMD_CNTX(_i)		(0x30020UL + ((_i) * 0x40000UL))
34*751ea2c0SNagadheeraj Rottela #define ZQMQ_CMP_THRX(_i)		(0x30028UL + ((_i) * 0x40000UL))
35*751ea2c0SNagadheeraj Rottela #define ZQMQ_CMP_CNTX(_i)		(0x30030UL + ((_i) * 0x40000UL))
36*751ea2c0SNagadheeraj Rottela #define ZQMQ_TIMER_LDX(_i)		(0x30038UL + ((_i) * 0x40000UL))
37*751ea2c0SNagadheeraj Rottela #define ZQMQ_ENX(_i)			(0x30048UL + ((_i) * 0x40000UL))
38*751ea2c0SNagadheeraj Rottela #define ZQMQ_ACTIVITY_STATX(_i)		(0x30050UL + ((_i) * 0x40000UL))
39*751ea2c0SNagadheeraj Rottela 
40024a8abbSNagadheeraj Rottela static inline uint64_t
nitrox_read_csr(uint8_t * bar_addr,uint64_t offset)41024a8abbSNagadheeraj Rottela nitrox_read_csr(uint8_t *bar_addr, uint64_t offset)
42024a8abbSNagadheeraj Rottela {
43024a8abbSNagadheeraj Rottela 	return rte_read64(bar_addr + offset);
44024a8abbSNagadheeraj Rottela }
45024a8abbSNagadheeraj Rottela 
46024a8abbSNagadheeraj Rottela static inline void
nitrox_write_csr(uint8_t * bar_addr,uint64_t offset,uint64_t value)47024a8abbSNagadheeraj Rottela nitrox_write_csr(uint8_t *bar_addr, uint64_t offset, uint64_t value)
48024a8abbSNagadheeraj Rottela {
49024a8abbSNagadheeraj Rottela 	rte_write64(value, (bar_addr + offset));
50024a8abbSNagadheeraj Rottela }
51024a8abbSNagadheeraj Rottela 
52024a8abbSNagadheeraj Rottela #endif /* _NITROX_CSR_H_ */
53