/** * 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.
Wir sind in einen Rahmen eingebettet ...
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.