1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef _CXLFLASH_IOCTL_H 8*8d67ca89SAndroid Build Coastguard Worker #define _CXLFLASH_IOCTL_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define CXLFLASH_WWID_LEN 16 11*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_VERSION_0 0 12*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr { 13*8d67ca89SAndroid Build Coastguard Worker __u16 version; 14*8d67ca89SAndroid Build Coastguard Worker __u16 rsvd[3]; 15*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 16*8d67ca89SAndroid Build Coastguard Worker __u64 return_flags; 17*8d67ca89SAndroid Build Coastguard Worker }; 18*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_ALL_PORTS_ACTIVE 0x0000000000000001ULL 19*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_APP_CLOSE_ADAP_FD 0x0000000000000002ULL 20*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_CONTEXT_SQ_CMD_MODE 0x0000000000000004ULL 21*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_ATTACH_REUSE_CONTEXT 0x8000000000000000ULL 22*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_attach { 23*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 24*8d67ca89SAndroid Build Coastguard Worker __u64 num_interrupts; 25*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 26*8d67ca89SAndroid Build Coastguard Worker __u64 mmio_size; 27*8d67ca89SAndroid Build Coastguard Worker __u64 block_size; 28*8d67ca89SAndroid Build Coastguard Worker __u64 adap_fd; 29*8d67ca89SAndroid Build Coastguard Worker __u64 last_lba; 30*8d67ca89SAndroid Build Coastguard Worker __u64 max_xfer; 31*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 32*8d67ca89SAndroid Build Coastguard Worker }; 33*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_detach { 34*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 35*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 36*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 37*8d67ca89SAndroid Build Coastguard Worker }; 38*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_udirect { 39*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 40*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 41*8d67ca89SAndroid Build Coastguard Worker __u64 rsrc_handle; 42*8d67ca89SAndroid Build Coastguard Worker __u64 last_lba; 43*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 44*8d67ca89SAndroid Build Coastguard Worker }; 45*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_UVIRTUAL_NEED_WRITE_SAME 0x8000000000000000ULL 46*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_uvirtual { 47*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 48*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 49*8d67ca89SAndroid Build Coastguard Worker __u64 lun_size; 50*8d67ca89SAndroid Build Coastguard Worker __u64 rsrc_handle; 51*8d67ca89SAndroid Build Coastguard Worker __u64 last_lba; 52*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 53*8d67ca89SAndroid Build Coastguard Worker }; 54*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_release { 55*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 56*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 57*8d67ca89SAndroid Build Coastguard Worker __u64 rsrc_handle; 58*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 59*8d67ca89SAndroid Build Coastguard Worker }; 60*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_resize { 61*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 62*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 63*8d67ca89SAndroid Build Coastguard Worker __u64 rsrc_handle; 64*8d67ca89SAndroid Build Coastguard Worker __u64 req_size; 65*8d67ca89SAndroid Build Coastguard Worker __u64 last_lba; 66*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 67*8d67ca89SAndroid Build Coastguard Worker }; 68*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_clone { 69*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 70*8d67ca89SAndroid Build Coastguard Worker __u64 context_id_src; 71*8d67ca89SAndroid Build Coastguard Worker __u64 context_id_dst; 72*8d67ca89SAndroid Build Coastguard Worker __u64 adap_fd_src; 73*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 74*8d67ca89SAndroid Build Coastguard Worker }; 75*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_VERIFY_SENSE_LEN 18 76*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_VERIFY_HINT_SENSE 0x8000000000000000ULL 77*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_verify { 78*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 79*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 80*8d67ca89SAndroid Build Coastguard Worker __u64 rsrc_handle; 81*8d67ca89SAndroid Build Coastguard Worker __u64 hint; 82*8d67ca89SAndroid Build Coastguard Worker __u64 last_lba; 83*8d67ca89SAndroid Build Coastguard Worker __u8 sense_data[DK_CXLFLASH_VERIFY_SENSE_LEN]; 84*8d67ca89SAndroid Build Coastguard Worker __u8 pad[6]; 85*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 86*8d67ca89SAndroid Build Coastguard Worker }; 87*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_RECOVER_AFU_CONTEXT_RESET 0x8000000000000000ULL 88*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_recover_afu { 89*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 90*8d67ca89SAndroid Build Coastguard Worker __u64 reason; 91*8d67ca89SAndroid Build Coastguard Worker __u64 context_id; 92*8d67ca89SAndroid Build Coastguard Worker __u64 mmio_size; 93*8d67ca89SAndroid Build Coastguard Worker __u64 adap_fd; 94*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 95*8d67ca89SAndroid Build Coastguard Worker }; 96*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_MANAGE_LUN_WWID_LEN CXLFLASH_WWID_LEN 97*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_MANAGE_LUN_ENABLE_SUPERPIPE 0x8000000000000000ULL 98*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_MANAGE_LUN_DISABLE_SUPERPIPE 0x4000000000000000ULL 99*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_MANAGE_LUN_ALL_PORTS_ACCESSIBLE 0x2000000000000000ULL 100*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_manage_lun { 101*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_hdr hdr; 102*8d67ca89SAndroid Build Coastguard Worker __u8 wwid[DK_CXLFLASH_MANAGE_LUN_WWID_LEN]; 103*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 104*8d67ca89SAndroid Build Coastguard Worker }; 105*8d67ca89SAndroid Build Coastguard Worker union cxlflash_ioctls { 106*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_attach attach; 107*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_detach detach; 108*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_udirect udirect; 109*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_uvirtual uvirtual; 110*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_release release; 111*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_resize resize; 112*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_clone clone; 113*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_verify verify; 114*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_recover_afu recover_afu; 115*8d67ca89SAndroid Build Coastguard Worker struct dk_cxlflash_manage_lun manage_lun; 116*8d67ca89SAndroid Build Coastguard Worker }; 117*8d67ca89SAndroid Build Coastguard Worker #define MAX_CXLFLASH_IOCTL_SZ (sizeof(union cxlflash_ioctls)) 118*8d67ca89SAndroid Build Coastguard Worker #define CXL_MAGIC 0xCA 119*8d67ca89SAndroid Build Coastguard Worker #define CXL_IOWR(_n,_s) _IOWR(CXL_MAGIC, _n, struct _s) 120*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_ATTACH CXL_IOWR(0x80, dk_cxlflash_attach) 121*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_USER_DIRECT CXL_IOWR(0x81, dk_cxlflash_udirect) 122*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_RELEASE CXL_IOWR(0x82, dk_cxlflash_release) 123*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_DETACH CXL_IOWR(0x83, dk_cxlflash_detach) 124*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_VERIFY CXL_IOWR(0x84, dk_cxlflash_verify) 125*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_RECOVER_AFU CXL_IOWR(0x85, dk_cxlflash_recover_afu) 126*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_MANAGE_LUN CXL_IOWR(0x86, dk_cxlflash_manage_lun) 127*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_USER_VIRTUAL CXL_IOWR(0x87, dk_cxlflash_uvirtual) 128*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_VLUN_RESIZE CXL_IOWR(0x88, dk_cxlflash_resize) 129*8d67ca89SAndroid Build Coastguard Worker #define DK_CXLFLASH_VLUN_CLONE CXL_IOWR(0x89, dk_cxlflash_clone) 130*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_VERSION_0 0 131*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_hdr { 132*8d67ca89SAndroid Build Coastguard Worker __u16 version; 133*8d67ca89SAndroid Build Coastguard Worker __u16 subcmd; 134*8d67ca89SAndroid Build Coastguard Worker __u16 rsvd[2]; 135*8d67ca89SAndroid Build Coastguard Worker __u64 flags; 136*8d67ca89SAndroid Build Coastguard Worker __u64 return_flags; 137*8d67ca89SAndroid Build Coastguard Worker }; 138*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_HOST_READ 0x0000000000000000ULL 139*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_HOST_WRITE 0x0000000000000001ULL 140*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_LUN_PROVISION_SUBCMD_CREATE_LUN 0x0001 141*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_LUN_PROVISION_SUBCMD_DELETE_LUN 0x0002 142*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_LUN_PROVISION_SUBCMD_QUERY_PORT 0x0003 143*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_lun_provision { 144*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_hdr hdr; 145*8d67ca89SAndroid Build Coastguard Worker __u16 port; 146*8d67ca89SAndroid Build Coastguard Worker __u16 reserved16[3]; 147*8d67ca89SAndroid Build Coastguard Worker __u64 size; 148*8d67ca89SAndroid Build Coastguard Worker __u64 lun_id; 149*8d67ca89SAndroid Build Coastguard Worker __u8 wwid[CXLFLASH_WWID_LEN]; 150*8d67ca89SAndroid Build Coastguard Worker __u64 max_num_luns; 151*8d67ca89SAndroid Build Coastguard Worker __u64 cur_num_luns; 152*8d67ca89SAndroid Build Coastguard Worker __u64 max_cap_port; 153*8d67ca89SAndroid Build Coastguard Worker __u64 cur_cap_port; 154*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 155*8d67ca89SAndroid Build Coastguard Worker }; 156*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_AFU_DEBUG_MAX_DATA_LEN 262144 157*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_AFU_DEBUG_SUBCMD_LEN 12 158*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_afu_debug { 159*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_hdr hdr; 160*8d67ca89SAndroid Build Coastguard Worker __u8 reserved8[4]; 161*8d67ca89SAndroid Build Coastguard Worker __u8 afu_subcmd[HT_CXLFLASH_AFU_DEBUG_SUBCMD_LEN]; 162*8d67ca89SAndroid Build Coastguard Worker __u64 data_ea; 163*8d67ca89SAndroid Build Coastguard Worker __u32 data_len; 164*8d67ca89SAndroid Build Coastguard Worker __u32 reserved32; 165*8d67ca89SAndroid Build Coastguard Worker __u64 reserved[8]; 166*8d67ca89SAndroid Build Coastguard Worker }; 167*8d67ca89SAndroid Build Coastguard Worker union cxlflash_ht_ioctls { 168*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_lun_provision lun_provision; 169*8d67ca89SAndroid Build Coastguard Worker struct ht_cxlflash_afu_debug afu_debug; 170*8d67ca89SAndroid Build Coastguard Worker }; 171*8d67ca89SAndroid Build Coastguard Worker #define MAX_HT_CXLFLASH_IOCTL_SZ (sizeof(union cxlflash_ht_ioctls)) 172*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_LUN_PROVISION CXL_IOWR(0xBF, ht_cxlflash_lun_provision) 173*8d67ca89SAndroid Build Coastguard Worker #define HT_CXLFLASH_AFU_DEBUG CXL_IOWR(0xBE, ht_cxlflash_afu_debug) 174*8d67ca89SAndroid Build Coastguard Worker #endif 175