1d8dd3165SPavan Nikhilesh /* SPDX-License-Identifier: BSD-3-Clause 2d8dd3165SPavan Nikhilesh * Copyright(c) 2017 Cavium, Inc 3d8dd3165SPavan Nikhilesh */ 4d8dd3165SPavan Nikhilesh 5d8dd3165SPavan Nikhilesh #ifndef __OCTEONTX_MBOX_H__ 6d8dd3165SPavan Nikhilesh #define __OCTEONTX_MBOX_H__ 7d8dd3165SPavan Nikhilesh 8d8dd3165SPavan Nikhilesh #include <rte_common.h> 9d8dd3165SPavan Nikhilesh #include <rte_spinlock.h> 10d8dd3165SPavan Nikhilesh 11d8dd3165SPavan Nikhilesh #define SSOW_BAR4_LEN (64 * 1024) 12d8dd3165SPavan Nikhilesh #define SSO_VHGRP_PF_MBOX(x) (0x200ULL | ((x) << 3)) 13d8dd3165SPavan Nikhilesh 14*b4134b2dSPavan Nikhilesh #define NO_COPROC 0x0 15*b4134b2dSPavan Nikhilesh #define RM_START_APP 0x1 16*b4134b2dSPavan Nikhilesh #define RM_INTERFACE_VERSION 0x2 17*b4134b2dSPavan Nikhilesh 18*b4134b2dSPavan Nikhilesh 19d8dd3165SPavan Nikhilesh #define MBOX_LOG(level, fmt, args...) \ 20d8dd3165SPavan Nikhilesh rte_log(RTE_LOG_ ## level, octeontx_logtype_mbox,\ 21d8dd3165SPavan Nikhilesh "%s() line %u: " fmt "\n", __func__, __LINE__, ## args) 22d8dd3165SPavan Nikhilesh 23d8dd3165SPavan Nikhilesh #define mbox_log_info(fmt, ...) MBOX_LOG(INFO, fmt, ##__VA_ARGS__) 24d8dd3165SPavan Nikhilesh #define mbox_log_dbg(fmt, ...) MBOX_LOG(DEBUG, fmt, ##__VA_ARGS__) 25d8dd3165SPavan Nikhilesh #define mbox_log_err(fmt, ...) MBOX_LOG(ERR, fmt, ##__VA_ARGS__) 26d8dd3165SPavan Nikhilesh #define mbox_func_trace mbox_log_dbg 27d8dd3165SPavan Nikhilesh 28d8dd3165SPavan Nikhilesh extern int octeontx_logtype_mbox; 29d8dd3165SPavan Nikhilesh 30d8dd3165SPavan Nikhilesh struct octeontx_mbox_hdr { 31d8dd3165SPavan Nikhilesh uint16_t vfid; /* VF index or pf resource index local to the domain */ 32d8dd3165SPavan Nikhilesh uint8_t coproc; /* Coprocessor id */ 33d8dd3165SPavan Nikhilesh uint8_t msg; /* Message id */ 34*b4134b2dSPavan Nikhilesh uint8_t oob; /* out of band data */ 35d8dd3165SPavan Nikhilesh uint8_t res_code; /* Functional layer response code */ 36d8dd3165SPavan Nikhilesh }; 37d8dd3165SPavan Nikhilesh 38*b4134b2dSPavan Nikhilesh int octeontx_mbox_init(void); 39d8dd3165SPavan Nikhilesh int octeontx_mbox_set_ram_mbox_base(uint8_t *ram_mbox_base); 40d8dd3165SPavan Nikhilesh int octeontx_mbox_set_reg(uint8_t *reg); 41d8dd3165SPavan Nikhilesh int octeontx_mbox_send(struct octeontx_mbox_hdr *hdr, 42d8dd3165SPavan Nikhilesh void *txdata, uint16_t txlen, void *rxdata, uint16_t rxlen); 43d8dd3165SPavan Nikhilesh 44d8dd3165SPavan Nikhilesh #endif /* __OCTEONTX_MBOX_H__ */ 45