xref: /dpdk/drivers/crypto/bcmfs/hw/bcmfs_rm_common.h (revision d5a7873c09ac4712ee9ad98d725eafbaee8f4a76)
1*d5a7873cSVikas Gupta /* SPDX-License-Identifier: BSD-3-Clause
2*d5a7873cSVikas Gupta  * Copyright(c) 2020 Broadcom
3*d5a7873cSVikas Gupta  * All rights reserved.
4*d5a7873cSVikas Gupta  */
5*d5a7873cSVikas Gupta 
6*d5a7873cSVikas Gupta #ifndef _BCMFS_RM_COMMON_H_
7*d5a7873cSVikas Gupta #define _BCMFS_RM_COMMON_H_
8*d5a7873cSVikas Gupta 
9*d5a7873cSVikas Gupta #include <rte_byteorder.h>
10*d5a7873cSVikas Gupta #include <rte_common.h>
11*d5a7873cSVikas Gupta #include <rte_io.h>
12*d5a7873cSVikas Gupta 
13*d5a7873cSVikas Gupta /* 32-bit MMIO register write */
14*d5a7873cSVikas Gupta #define FS_MMIO_WRITE32(value, addr) rte_write32_relaxed((value), (addr))
15*d5a7873cSVikas Gupta /* 32-bit MMIO register read */
16*d5a7873cSVikas Gupta #define FS_MMIO_READ32(addr) rte_read32_relaxed((addr))
17*d5a7873cSVikas Gupta 
18*d5a7873cSVikas Gupta /* Descriptor helper macros */
19*d5a7873cSVikas Gupta #define FS_DESC_DEC(d, s, m)			(((d) >> (s)) & (m))
20*d5a7873cSVikas Gupta 
21*d5a7873cSVikas Gupta #define FS_RING_BD_ALIGN_CHECK(addr)			\
22*d5a7873cSVikas Gupta 			(!((addr) & ((0x1 << FS_RING_BD_ALIGN_ORDER) - 1)))
23*d5a7873cSVikas Gupta 
24*d5a7873cSVikas Gupta #define cpu_to_le64     rte_cpu_to_le_64
25*d5a7873cSVikas Gupta #define cpu_to_le32     rte_cpu_to_le_32
26*d5a7873cSVikas Gupta #define cpu_to_le16     rte_cpu_to_le_16
27*d5a7873cSVikas Gupta 
28*d5a7873cSVikas Gupta #define le64_to_cpu     rte_le_to_cpu_64
29*d5a7873cSVikas Gupta #define le32_to_cpu     rte_le_to_cpu_32
30*d5a7873cSVikas Gupta #define le16_to_cpu     rte_le_to_cpu_16
31*d5a7873cSVikas Gupta 
32*d5a7873cSVikas Gupta #define lower_32_bits(x) ((uint32_t)(x))
33*d5a7873cSVikas Gupta #define upper_32_bits(x) ((uint32_t)(((x) >> 16) >> 16))
34*d5a7873cSVikas Gupta 
35*d5a7873cSVikas Gupta uint64_t
36*d5a7873cSVikas Gupta rm_build_desc(uint64_t val, uint32_t shift,
37*d5a7873cSVikas Gupta 	   uint64_t mask);
38*d5a7873cSVikas Gupta uint64_t
39*d5a7873cSVikas Gupta rm_read_desc(void *desc_ptr);
40*d5a7873cSVikas Gupta 
41*d5a7873cSVikas Gupta void
42*d5a7873cSVikas Gupta rm_write_desc(void *desc_ptr, uint64_t desc);
43*d5a7873cSVikas Gupta 
44*d5a7873cSVikas Gupta uint32_t
45*d5a7873cSVikas Gupta rm_cmpl_desc_to_reqid(uint64_t cmpl_desc);
46*d5a7873cSVikas Gupta 
47*d5a7873cSVikas Gupta int
48*d5a7873cSVikas Gupta rm_cmpl_desc_to_error(uint64_t cmpl_desc);
49*d5a7873cSVikas Gupta 
50*d5a7873cSVikas Gupta #endif /* _BCMFS_RM_COMMON_H_ */
51