14d09dd11SShannon Nelson /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 24d09dd11SShannon Nelson /* Copyright(c) Advanced Micro Devices, Inc */ 34d09dd11SShannon Nelson 44d09dd11SShannon Nelson /* 54d09dd11SShannon Nelson * fwctl interface info for pds_fwctl 64d09dd11SShannon Nelson */ 74d09dd11SShannon Nelson 84d09dd11SShannon Nelson #ifndef _UAPI_FWCTL_PDS_H_ 94d09dd11SShannon Nelson #define _UAPI_FWCTL_PDS_H_ 104d09dd11SShannon Nelson 114d09dd11SShannon Nelson #include <linux/types.h> 124d09dd11SShannon Nelson 134d09dd11SShannon Nelson /** 144d09dd11SShannon Nelson * struct fwctl_info_pds 154d09dd11SShannon Nelson * @uctx_caps: bitmap of firmware capabilities 164d09dd11SShannon Nelson * 174d09dd11SShannon Nelson * Return basic information about the FW interface available. 184d09dd11SShannon Nelson */ 194d09dd11SShannon Nelson struct fwctl_info_pds { 204d09dd11SShannon Nelson __u32 uctx_caps; 214d09dd11SShannon Nelson }; 224d09dd11SShannon Nelson 234d09dd11SShannon Nelson /** 244d09dd11SShannon Nelson * enum pds_fwctl_capabilities 254d09dd11SShannon Nelson * @PDS_FWCTL_QUERY_CAP: firmware can be queried for information 264d09dd11SShannon Nelson * @PDS_FWCTL_SEND_CAP: firmware can be sent commands 274d09dd11SShannon Nelson */ 284d09dd11SShannon Nelson enum pds_fwctl_capabilities { 294d09dd11SShannon Nelson PDS_FWCTL_QUERY_CAP = 0, 304d09dd11SShannon Nelson PDS_FWCTL_SEND_CAP, 314d09dd11SShannon Nelson }; 32*92c66ee8SBrett Creeley 33*92c66ee8SBrett Creeley /** 34*92c66ee8SBrett Creeley * struct fwctl_rpc_pds 35*92c66ee8SBrett Creeley * @in.op: requested operation code 36*92c66ee8SBrett Creeley * @in.ep: firmware endpoint to operate on 37*92c66ee8SBrett Creeley * @in.rsvd: reserved 38*92c66ee8SBrett Creeley * @in.len: length of payload data 39*92c66ee8SBrett Creeley * @in.payload: address of payload buffer 40*92c66ee8SBrett Creeley * @in: rpc in parameters 41*92c66ee8SBrett Creeley * @out.retval: operation result value 42*92c66ee8SBrett Creeley * @out.rsvd: reserved 43*92c66ee8SBrett Creeley * @out.len: length of result data buffer 44*92c66ee8SBrett Creeley * @out.payload: address of payload data buffer 45*92c66ee8SBrett Creeley * @out: rpc out parameters 46*92c66ee8SBrett Creeley */ 47*92c66ee8SBrett Creeley struct fwctl_rpc_pds { 48*92c66ee8SBrett Creeley struct { 49*92c66ee8SBrett Creeley __u32 op; 50*92c66ee8SBrett Creeley __u32 ep; 51*92c66ee8SBrett Creeley __u32 rsvd; 52*92c66ee8SBrett Creeley __u32 len; 53*92c66ee8SBrett Creeley __aligned_u64 payload; 54*92c66ee8SBrett Creeley } in; 55*92c66ee8SBrett Creeley struct { 56*92c66ee8SBrett Creeley __u32 retval; 57*92c66ee8SBrett Creeley __u32 rsvd[2]; 58*92c66ee8SBrett Creeley __u32 len; 59*92c66ee8SBrett Creeley __aligned_u64 payload; 60*92c66ee8SBrett Creeley } out; 61*92c66ee8SBrett Creeley }; 624d09dd11SShannon Nelson #endif /* _UAPI_FWCTL_PDS_H_ */ 63