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