1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* Copyright (C) 2018-2025, Advanced Micro Devices, Inc */ 3 4 #ifndef IONIC_ABI_H 5 #define IONIC_ABI_H 6 7 #include <linux/types.h> 8 9 #define IONIC_ABI_VERSION 1 10 11 #define IONIC_EXPDB_64 1 12 #define IONIC_EXPDB_128 2 13 #define IONIC_EXPDB_256 4 14 #define IONIC_EXPDB_512 8 15 16 #define IONIC_EXPDB_SQ 1 17 #define IONIC_EXPDB_RQ 2 18 19 #define IONIC_CMB_ENABLE 1 20 #define IONIC_CMB_REQUIRE 2 21 #define IONIC_CMB_EXPDB 4 22 #define IONIC_CMB_WC 8 23 #define IONIC_CMB_UC 16 24 25 struct ionic_ctx_req { 26 __u32 rsvd[2]; 27 }; 28 29 struct ionic_ctx_resp { 30 __u32 rsvd; 31 __u32 page_shift; 32 33 __aligned_u64 dbell_offset; 34 35 __u16 version; 36 __u8 qp_opcodes; 37 __u8 admin_opcodes; 38 39 __u8 sq_qtype; 40 __u8 rq_qtype; 41 __u8 cq_qtype; 42 __u8 admin_qtype; 43 44 __u8 max_stride; 45 __u8 max_spec; 46 __u8 udma_count; 47 __u8 expdb_mask; 48 __u8 expdb_qtypes; 49 50 __u8 rsvd2[3]; 51 __aligned_u64 phc_offset; 52 }; 53 54 struct ionic_qdesc { 55 __aligned_u64 addr; 56 __u32 size; 57 __u16 mask; 58 __u8 depth_log2; 59 __u8 stride_log2; 60 }; 61 62 struct ionic_ah_resp { 63 __u32 ahid; 64 __u32 pad; 65 }; 66 67 struct ionic_cq_req { 68 struct ionic_qdesc cq[2]; 69 __u8 udma_mask; 70 __u8 rsvd[7]; 71 }; 72 73 struct ionic_cq_resp { 74 __u32 cqid[2]; 75 __u8 udma_mask; 76 __u8 rsvd[7]; 77 }; 78 79 struct ionic_qp_req { 80 struct ionic_qdesc sq; 81 struct ionic_qdesc rq; 82 __u8 sq_spec; 83 __u8 rq_spec; 84 __u8 sq_cmb; 85 __u8 rq_cmb; 86 __u8 udma_mask; 87 __u8 rsvd[3]; 88 }; 89 90 struct ionic_qp_resp { 91 __u32 qpid; 92 __u8 sq_cmb; 93 __u8 rq_cmb; 94 __u8 udma_idx; 95 __u8 rsvd[1]; 96 __aligned_u64 sq_cmb_offset; 97 __aligned_u64 rq_cmb_offset; 98 }; 99 100 struct ionic_srq_req { 101 struct ionic_qdesc rq; 102 __u8 rq_spec; 103 __u8 rq_cmb; 104 __u8 udma_mask; 105 __u8 rsvd[5]; 106 }; 107 108 struct ionic_srq_resp { 109 __u32 qpid; 110 __u8 rq_cmb; 111 __u8 udma_idx; 112 __u8 rsvd[2]; 113 __aligned_u64 rq_cmb_offset; 114 }; 115 116 #endif /* IONIC_ABI_H */ 117