/** * struct libie_aqc_generic - Generic structure used in adminq communication * @param0: generic parameter high 32bit * @param1: generic parameter lower 32bit * @addr_high: generic address high 32bit * @addr_low: generic address lower 32bit
*/ struct libie_aqc_generic {
__le32 param0;
__le32 param1;
__le32 addr_high;
__le32 addr_low;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_generic);
/** * struct libie_aqc_get_ver - Used in command get version (direct 0x0001) * @rom_ver: rom version * @fw_build: number coressponding to firmware build * @fw_branch: branch identifier of firmware version * @fw_major: major number of firmware version * @fw_minor: minor number of firmware version * @fw_patch: patch of firmware version * @api_branch: brancch identifier of API version * @api_major: major number of API version * @api_minor: minor number of API version * @api_patch: patch of API version
*/ struct libie_aqc_get_ver {
__le32 rom_ver;
__le32 fw_build;
u8 fw_branch;
u8 fw_major;
u8 fw_minor;
u8 fw_patch;
u8 api_branch;
u8 api_major;
u8 api_minor;
u8 api_patch;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_get_ver);
/** * struct libie_aqc_driver_ver - Used in command send driver version * (indirect 0x0002) * @major_ver: driver major version * @minor_ver: driver minor version * @build_ver: driver build version * @subbuild_ver: driver subbuild version * @reserved: for feature use * @addr_high: high part of response address buff * @addr_low: low part of response address buff
*/ struct libie_aqc_driver_ver {
u8 major_ver;
u8 minor_ver;
u8 build_ver;
u8 subbuild_ver;
u8 reserved[4];
__le32 addr_high;
__le32 addr_low;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_driver_ver);
/** * struct libie_aqc_req_res - Request resource ownership * @res_id: resource ID (look at enum definition above) * @access_type: read or write (enum definition above) * @timeout: Upon successful completion, FW writes this value and driver is * expected to release resource before timeout. This value is provided in * milliseconds. * @res_number: for SDP, this is the pin ID of the SDP * @status: status only used for LIBIE_AQC_RES_ID_GLBL_LOCK, for others reserved * @reserved: reserved for future use * * Used in commands: * request resource ownership (direct 0x0008) * request resource ownership (direct 0x0009)
*/ struct libie_aqc_req_res {
__le16 res_id;
__le16 access_type;
/** * struct libie_aqc_list_caps - Getting capabilities * @cmd_flags: command flags * @pf_index: index of PF to get caps from * @reserved: reserved for future use * @count: number of capabilities records * @addr_high: high part of response address buff * @addr_low: low part of response address buff * * Used in commands: * get function capabilities (indirect 0x000A) * get device capabilities (indirect 0x000B)
*/ struct libie_aqc_list_caps {
u8 cmd_flags;
u8 pf_index;
u8 reserved[2];
__le32 count;
__le32 addr_high;
__le32 addr_low;
};
LIBIE_CHECK_STRUCT_LEN(16, libie_aqc_list_caps);
/** * struct libie_aqc_list_caps_elem - Getting list of caps elements * @cap: one from the defines list above * @major_ver: major version * @minor_ver: minor version * @number: number of resources described by this capability * @logical_id: logical ID, only meaningful for some types of resources * @phys_id: physical ID, only meaningful for some types of resources * @rsvd1: reserved for future use * @rsvd2: reserved for future use
*/ struct libie_aqc_list_caps_elem {
__le16 cap;
/** * struct libie_aq_desc - Admin Queue (AQ) descriptor * @flags: LIBIE_AQ_FLAG_* flags * @opcode: AQ command opcode * @datalen: length in bytes of indirect/external data buffer * @retval: return value from firmware * @cookie_high: opaque data high-half * @cookie_low: opaque data low-half * @params: command-specific parameters * * Descriptor format for commands the driver posts on the Admin Transmit Queue * (ATQ). The firmware writes back onto the command descriptor and returns * the result of the command. Asynchronous events that are not an immediate * result of the command are written to the Admin Receive Queue (ARQ) using * the same descriptor format. Descriptors are in little-endian notation with * 32-bit words.
*/ struct libie_aq_desc {
__le16 flags;
__le16 opcode;
__le16 datalen;
__le16 retval;
__le32 cookie_high;
__le32 cookie_low; union {
u8 raw[16]; struct libie_aqc_generic generic; struct libie_aqc_get_ver get_ver; struct libie_aqc_driver_ver driver_ver; struct libie_aqc_req_res res_owner; struct libie_aqc_list_caps get_cap;
} params;
};
LIBIE_CHECK_STRUCT_LEN(32, libie_aq_desc);
/* FW defined boundary for a large buffer, 4k >= Large buffer > 512 bytes */ #define LIBIE_AQ_LG_BUF 512
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.