718 lines
19 KiB
C
718 lines
19 KiB
C
/*
|
|
* Copyright (C) 2005 - 2008 ServerEngines
|
|
* All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License version 2
|
|
* as published by the Free Software Foundation. The full GNU General
|
|
* Public License is included in this distribution in the file called COPYING.
|
|
*
|
|
* Contact Information:
|
|
* linux-drivers@serverengines.com
|
|
*
|
|
* ServerEngines
|
|
* 209 N. Fair Oaks Ave
|
|
* Sunnyvale, CA 94085
|
|
*/
|
|
/*
|
|
* Autogenerated by srcgen version: 0127
|
|
*/
|
|
#ifndef __fwcmd_common_bmap_h__
|
|
#define __fwcmd_common_bmap_h__
|
|
#include "fwcmd_types_bmap.h"
|
|
#include "fwcmd_hdr_bmap.h"
|
|
|
|
#if defined(__BIG_ENDIAN)
|
|
/* Physical Address. */
|
|
struct PHYS_ADDR {
|
|
union {
|
|
struct {
|
|
u32 lo; /* DWORD 0 */
|
|
u32 hi; /* DWORD 1 */
|
|
} __packed; /* unnamed struct */
|
|
u32 dw[2]; /* dword union */
|
|
}; /* unnamed union */
|
|
} __packed ;
|
|
|
|
|
|
#else
|
|
/* Physical Address. */
|
|
struct PHYS_ADDR {
|
|
union {
|
|
struct {
|
|
u32 lo; /* DWORD 0 */
|
|
u32 hi; /* DWORD 1 */
|
|
} __packed; /* unnamed struct */
|
|
u32 dw[2]; /* dword union */
|
|
}; /* unnamed union */
|
|
} __packed ;
|
|
|
|
struct BE_LINK_STATUS {
|
|
u8 mac0_duplex;
|
|
u8 mac0_speed;
|
|
u8 mac1_duplex;
|
|
u8 mac1_speed;
|
|
u8 mgmt_mac_duplex;
|
|
u8 mgmt_mac_speed;
|
|
u8 active_port;
|
|
u8 rsvd0;
|
|
u8 mac0_fault;
|
|
u8 mac1_fault;
|
|
u16 rsvd1;
|
|
} __packed;
|
|
#endif
|
|
|
|
struct FWCMD_COMMON_ANON_170_REQUEST {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union LINK_STATUS_QUERY_PARAMS {
|
|
struct BE_LINK_STATUS response;
|
|
struct FWCMD_COMMON_ANON_170_REQUEST request;
|
|
} __packed;
|
|
|
|
/*
|
|
* Queries the the link status for all ports. The valid values below
|
|
* DO NOT indicate that a particular duplex or speed is supported by
|
|
* BladeEngine. These enumerations simply list all possible duplexes
|
|
* and speeds for any port. Consult BladeEngine product documentation
|
|
* for the supported parameters.
|
|
*/
|
|
struct FWCMD_COMMON_NTWK_LINK_STATUS_QUERY {
|
|
union FWCMD_HEADER header;
|
|
union LINK_STATUS_QUERY_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_171_REQUEST {
|
|
u8 type;
|
|
u8 port;
|
|
u8 mac1;
|
|
u8 permanent;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_172_RESPONSE {
|
|
struct MAC_ADDRESS_FORMAT mac;
|
|
} __packed;
|
|
|
|
union NTWK_MAC_QUERY_PARAMS {
|
|
struct FWCMD_COMMON_ANON_171_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_172_RESPONSE response;
|
|
} __packed;
|
|
|
|
/* Queries one MAC address. */
|
|
struct FWCMD_COMMON_NTWK_MAC_QUERY {
|
|
union FWCMD_HEADER header;
|
|
union NTWK_MAC_QUERY_PARAMS params;
|
|
} __packed;
|
|
|
|
struct MAC_SET_PARAMS_IN {
|
|
u8 type;
|
|
u8 port;
|
|
u8 mac1;
|
|
u8 invalidate;
|
|
struct MAC_ADDRESS_FORMAT mac;
|
|
} __packed;
|
|
|
|
struct MAC_SET_PARAMS_OUT {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union MAC_SET_PARAMS {
|
|
struct MAC_SET_PARAMS_IN request;
|
|
struct MAC_SET_PARAMS_OUT response;
|
|
} __packed;
|
|
|
|
/* Sets a MAC address. */
|
|
struct FWCMD_COMMON_NTWK_MAC_SET {
|
|
union FWCMD_HEADER header;
|
|
union MAC_SET_PARAMS params;
|
|
} __packed;
|
|
|
|
/* MAC address list. */
|
|
struct NTWK_MULTICAST_MAC_LIST {
|
|
u8 byte[6];
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_NTWK_MULTICAST_SET_REQUEST_PAYLOAD {
|
|
u16 num_mac;
|
|
u8 promiscuous;
|
|
u8 rsvd0;
|
|
struct NTWK_MULTICAST_MAC_LIST mac[32];
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_174_RESPONSE {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_173_PARAMS {
|
|
struct FWCMD_COMMON_NTWK_MULTICAST_SET_REQUEST_PAYLOAD request;
|
|
struct FWCMD_COMMON_ANON_174_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* Sets multicast address hash. The MPU will merge the MAC address lists
|
|
* from all clients, including the networking and storage functions.
|
|
* This command may fail if the final merged list of MAC addresses exceeds
|
|
* 32 entries.
|
|
*/
|
|
struct FWCMD_COMMON_NTWK_MULTICAST_SET {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_173_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_NTWK_VLAN_CONFIG_REQUEST_PAYLOAD {
|
|
u16 num_vlan;
|
|
u8 promiscuous;
|
|
u8 rsvd0;
|
|
u16 vlan_tag[32];
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_176_RESPONSE {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_175_PARAMS {
|
|
struct FWCMD_COMMON_NTWK_VLAN_CONFIG_REQUEST_PAYLOAD request;
|
|
struct FWCMD_COMMON_ANON_176_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* Sets VLAN tag filter. The MPU will merge the VLAN tag list from all
|
|
* clients, including the networking and storage functions. This command
|
|
* may fail if the final vlan_tag array (from all functions) is longer
|
|
* than 32 entries.
|
|
*/
|
|
struct FWCMD_COMMON_NTWK_VLAN_CONFIG {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_175_PARAMS params;
|
|
} __packed;
|
|
|
|
struct RING_DESTROY_REQUEST {
|
|
u16 ring_type;
|
|
u16 id;
|
|
u8 bypass_flush;
|
|
u8 rsvd0;
|
|
u16 rsvd1;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_190_RESPONSE {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_189_PARAMS {
|
|
struct RING_DESTROY_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_190_RESPONSE response;
|
|
} __packed;
|
|
/*
|
|
* Command for destroying any ring. The connection(s) using the ring should
|
|
* be quiesced before destroying the ring.
|
|
*/
|
|
struct FWCMD_COMMON_RING_DESTROY {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_189_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_192_REQUEST {
|
|
u16 num_pages;
|
|
u16 rsvd0;
|
|
struct CQ_CONTEXT_AMAP context;
|
|
struct PHYS_ADDR pages[4];
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_193_RESPONSE {
|
|
u16 cq_id;
|
|
} __packed ;
|
|
|
|
union FWCMD_COMMON_ANON_191_PARAMS {
|
|
struct FWCMD_COMMON_ANON_192_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_193_RESPONSE response;
|
|
} __packed ;
|
|
|
|
/*
|
|
* Command for creating a completion queue. A Completion Queue must span
|
|
* at least 1 page and at most 4 pages. Each completion queue entry
|
|
* is 16 bytes regardless of CQ entry format. Thus the ring must be
|
|
* at least 256 entries deep (corresponding to 1 page) and can be at
|
|
* most 1024 entries deep (corresponding to 4 pages). The number of
|
|
* pages posted must contain the CQ ring size as encoded in the context.
|
|
*
|
|
*/
|
|
struct FWCMD_COMMON_CQ_CREATE {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_191_PARAMS params;
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_198_REQUEST {
|
|
u16 num_pages;
|
|
u16 rsvd0;
|
|
struct EQ_CONTEXT_AMAP context;
|
|
struct PHYS_ADDR pages[8];
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_199_RESPONSE {
|
|
u16 eq_id;
|
|
} __packed ;
|
|
|
|
union FWCMD_COMMON_ANON_197_PARAMS {
|
|
struct FWCMD_COMMON_ANON_198_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_199_RESPONSE response;
|
|
} __packed ;
|
|
|
|
/*
|
|
* Command for creating a event queue. An Event Queue must span at least
|
|
* 1 page and at most 8 pages. The number of pages posted must contain
|
|
* the EQ ring. The ring is defined by the size of the EQ entries (encoded
|
|
* in the context) and the number of EQ entries (also encoded in the
|
|
* context).
|
|
*/
|
|
struct FWCMD_COMMON_EQ_CREATE {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_197_PARAMS params;
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_201_REQUEST {
|
|
u16 cq_id;
|
|
u16 bcmc_cq_id;
|
|
u16 num_pages;
|
|
u16 rsvd0;
|
|
struct PHYS_ADDR pages[2];
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_202_RESPONSE {
|
|
u16 id;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_200_PARAMS {
|
|
struct FWCMD_COMMON_ANON_201_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_202_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* Command for creating Ethernet receive ring. An ERX ring contains ETH_RX_D
|
|
* entries (8 bytes each). An ERX ring must be 1024 entries deep
|
|
* (corresponding to 2 pages).
|
|
*/
|
|
struct FWCMD_COMMON_ETH_RX_CREATE {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_200_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_204_REQUEST {
|
|
u16 num_pages;
|
|
u8 ulp_num;
|
|
u8 type;
|
|
struct ETX_CONTEXT_AMAP context;
|
|
struct PHYS_ADDR pages[8];
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_205_RESPONSE {
|
|
u16 cid;
|
|
u8 ulp_num;
|
|
u8 rsvd0;
|
|
} __packed ;
|
|
|
|
union FWCMD_COMMON_ANON_203_PARAMS {
|
|
struct FWCMD_COMMON_ANON_204_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_205_RESPONSE response;
|
|
} __packed ;
|
|
|
|
/*
|
|
* Command for creating an Ethernet transmit ring. An ETX ring contains
|
|
* ETH_WRB entries (16 bytes each). An ETX ring must be at least 256
|
|
* entries deep (corresponding to 1 page) and at most 2k entries deep
|
|
* (corresponding to 8 pages).
|
|
*/
|
|
struct FWCMD_COMMON_ETH_TX_CREATE {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_203_PARAMS params;
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_222_REQUEST {
|
|
u16 num_pages;
|
|
u16 rsvd0;
|
|
struct MCC_RING_CONTEXT_AMAP context;
|
|
struct PHYS_ADDR pages[8];
|
|
} __packed ;
|
|
|
|
struct FWCMD_COMMON_ANON_223_RESPONSE {
|
|
u16 id;
|
|
} __packed ;
|
|
|
|
union FWCMD_COMMON_ANON_221_PARAMS {
|
|
struct FWCMD_COMMON_ANON_222_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_223_RESPONSE response;
|
|
} __packed ;
|
|
|
|
/*
|
|
* Command for creating the MCC ring. An MCC ring must be at least 16
|
|
* entries deep (corresponding to 1 page) and at most 128 entries deep
|
|
* (corresponding to 8 pages).
|
|
*/
|
|
struct FWCMD_COMMON_MCC_CREATE {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_221_PARAMS params;
|
|
} __packed ;
|
|
|
|
struct GET_QOS_IN {
|
|
u32 qos_params_rsvd;
|
|
} __packed;
|
|
|
|
struct GET_QOS_OUT {
|
|
u32 max_bits_per_second_NIC;
|
|
u32 max_packets_per_second_NIC;
|
|
u32 max_ios_per_second_iSCSI;
|
|
u32 max_bytes_per_second_iSCSI;
|
|
u16 domain_VLAN_tag;
|
|
u16 fabric_domain_ID;
|
|
u32 qos_params_oem[4];
|
|
} __packed;
|
|
|
|
union GET_QOS_PARAMS {
|
|
struct GET_QOS_IN request;
|
|
struct GET_QOS_OUT response;
|
|
} __packed;
|
|
|
|
/* QOS/Bandwidth settings per domain. Applicable only in VMs. */
|
|
struct FWCMD_COMMON_GET_QOS {
|
|
union FWCMD_HEADER header;
|
|
union GET_QOS_PARAMS params;
|
|
} __packed;
|
|
|
|
struct SET_QOS_IN {
|
|
u32 valid_flags;
|
|
u32 max_bits_per_second_NIC;
|
|
u32 max_packets_per_second_NIC;
|
|
u32 max_ios_per_second_iSCSI;
|
|
u32 max_bytes_per_second_iSCSI;
|
|
u16 domain_VLAN_tag;
|
|
u16 fabric_domain_ID;
|
|
u32 qos_params_oem[4];
|
|
} __packed;
|
|
|
|
struct SET_QOS_OUT {
|
|
u32 qos_params_rsvd;
|
|
} __packed;
|
|
|
|
union SET_QOS_PARAMS {
|
|
struct SET_QOS_IN request;
|
|
struct SET_QOS_OUT response;
|
|
} __packed;
|
|
|
|
/* QOS/Bandwidth settings per domain. Applicable only in VMs. */
|
|
struct FWCMD_COMMON_SET_QOS {
|
|
union FWCMD_HEADER header;
|
|
union SET_QOS_PARAMS params;
|
|
} __packed;
|
|
|
|
struct SET_FRAME_SIZE_IN {
|
|
u32 max_tx_frame_size;
|
|
u32 max_rx_frame_size;
|
|
} __packed;
|
|
|
|
struct SET_FRAME_SIZE_OUT {
|
|
u32 chip_max_tx_frame_size;
|
|
u32 chip_max_rx_frame_size;
|
|
} __packed;
|
|
|
|
union SET_FRAME_SIZE_PARAMS {
|
|
struct SET_FRAME_SIZE_IN request;
|
|
struct SET_FRAME_SIZE_OUT response;
|
|
} __packed;
|
|
|
|
/* Set frame size command. Only host domain may issue this command. */
|
|
struct FWCMD_COMMON_SET_FRAME_SIZE {
|
|
union FWCMD_HEADER header;
|
|
union SET_FRAME_SIZE_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FORCE_FAILOVER_IN {
|
|
u32 move_to_port;
|
|
u32 failover_config;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_231_RESPONSE {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_230_PARAMS {
|
|
struct FORCE_FAILOVER_IN request;
|
|
struct FWCMD_COMMON_ANON_231_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* Use this command to control failover in BladeEngine. It may be used
|
|
* to failback to a restored port or to forcibly move traffic from
|
|
* one port to another. It may also be used to enable or disable the
|
|
* automatic failover feature. This command can only be issued by domain
|
|
* 0.
|
|
*/
|
|
struct FWCMD_COMMON_FORCE_FAILOVER {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_230_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_240_REQUEST {
|
|
u64 context;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_241_RESPONSE {
|
|
u64 context;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_239_PARAMS {
|
|
struct FWCMD_COMMON_ANON_240_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_241_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* This command can be used by clients as a no-operation request. Typical
|
|
* uses for drivers are as a heartbeat mechanism, or deferred processing
|
|
* catalyst. The ARM will always complete this command with a good completion.
|
|
* The 64-bit parameter is not touched by the ARM processor.
|
|
*/
|
|
struct FWCMD_COMMON_NOP {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_239_PARAMS params;
|
|
} __packed;
|
|
|
|
struct NTWK_RX_FILTER_SETTINGS {
|
|
u8 promiscuous;
|
|
u8 ip_cksum;
|
|
u8 tcp_cksum;
|
|
u8 udp_cksum;
|
|
u8 pass_err;
|
|
u8 pass_ckerr;
|
|
u8 strip_crc;
|
|
u8 mcast_en;
|
|
u8 bcast_en;
|
|
u8 mcast_promiscuous_en;
|
|
u8 unicast_en;
|
|
u8 vlan_promiscuous;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_242_PARAMS {
|
|
struct NTWK_RX_FILTER_SETTINGS request;
|
|
struct NTWK_RX_FILTER_SETTINGS response;
|
|
} __packed;
|
|
|
|
/*
|
|
* This command is used to modify the ethernet receive filter configuration.
|
|
* Only domain 0 network function drivers may issue this command. The
|
|
* applied configuration is returned in the response payload. Note:
|
|
* Some receive packet filter settings are global on BladeEngine and
|
|
* can affect both the storage and network function clients that the
|
|
* BladeEngine hardware and firmware serve. Additionaly, depending
|
|
* on the revision of BladeEngine, some ethernet receive filter settings
|
|
* are dependent on others. If a dependency exists between settings
|
|
* for the BladeEngine revision, and the command request settings do
|
|
* not meet the dependency requirement, the invalid settings will not
|
|
* be applied despite the comand succeeding. For example: a driver may
|
|
* request to enable broadcast packets, but not enable multicast packets.
|
|
* On early revisions of BladeEngine, there may be no distinction between
|
|
* broadcast and multicast filters, so broadcast could not be enabled
|
|
* without enabling multicast. In this scenario, the comand would still
|
|
* succeed, but the response payload would indicate the previously
|
|
* configured broadcast and multicast setting.
|
|
*/
|
|
struct FWCMD_COMMON_NTWK_RX_FILTER {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_242_PARAMS params;
|
|
} __packed;
|
|
|
|
|
|
struct FWCMD_COMMON_ANON_244_REQUEST {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_GET_FW_VERSION_RESPONSE_PAYLOAD {
|
|
u8 firmware_version_string[32];
|
|
u8 fw_on_flash_version_string[32];
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_243_PARAMS {
|
|
struct FWCMD_COMMON_ANON_244_REQUEST request;
|
|
struct FWCMD_COMMON_GET_FW_VERSION_RESPONSE_PAYLOAD response;
|
|
} __packed;
|
|
|
|
/* This comand retrieves the firmware version. */
|
|
struct FWCMD_COMMON_GET_FW_VERSION {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_243_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_246_REQUEST {
|
|
u16 tx_flow_control;
|
|
u16 rx_flow_control;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_247_RESPONSE {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_245_PARAMS {
|
|
struct FWCMD_COMMON_ANON_246_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_247_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* This comand is used to program BladeEngine flow control behavior.
|
|
* Only the host networking driver is allowed to use this comand.
|
|
*/
|
|
struct FWCMD_COMMON_SET_FLOW_CONTROL {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_245_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_249_REQUEST {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_250_RESPONSE {
|
|
u16 tx_flow_control;
|
|
u16 rx_flow_control;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_248_PARAMS {
|
|
struct FWCMD_COMMON_ANON_249_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_250_RESPONSE response;
|
|
} __packed;
|
|
|
|
/* This comand is used to read BladeEngine flow control settings. */
|
|
struct FWCMD_COMMON_GET_FLOW_CONTROL {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_248_PARAMS params;
|
|
} __packed;
|
|
|
|
struct EQ_DELAY_PARAMS {
|
|
u32 eq_id;
|
|
u32 delay_in_microseconds;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_257_REQUEST {
|
|
u32 num_eq;
|
|
u32 rsvd0;
|
|
struct EQ_DELAY_PARAMS delay[16];
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_258_RESPONSE {
|
|
u32 delay_resolution_in_microseconds;
|
|
u32 delay_max_in_microseconds;
|
|
} __packed;
|
|
|
|
union MODIFY_EQ_DELAY_PARAMS {
|
|
struct FWCMD_COMMON_ANON_257_REQUEST request;
|
|
struct FWCMD_COMMON_ANON_258_RESPONSE response;
|
|
} __packed;
|
|
|
|
/* This comand changes the EQ delay for a given set of EQs. */
|
|
struct FWCMD_COMMON_MODIFY_EQ_DELAY {
|
|
union FWCMD_HEADER header;
|
|
union MODIFY_EQ_DELAY_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_260_REQUEST {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
struct BE_FIRMWARE_CONFIG {
|
|
u16 be_config_number;
|
|
u16 asic_revision;
|
|
u32 nic_ulp_mask;
|
|
u32 tulp_mask;
|
|
u32 iscsi_ulp_mask;
|
|
u32 rdma_ulp_mask;
|
|
u32 rsvd0[4];
|
|
u32 eth_tx_id_start;
|
|
u32 eth_tx_id_count;
|
|
u32 eth_rx_id_start;
|
|
u32 eth_rx_id_count;
|
|
u32 tpm_wrbq_id_start;
|
|
u32 tpm_wrbq_id_count;
|
|
u32 tpm_defq_id_start;
|
|
u32 tpm_defq_id_count;
|
|
u32 iscsi_wrbq_id_start;
|
|
u32 iscsi_wrbq_id_count;
|
|
u32 iscsi_defq_id_start;
|
|
u32 iscsi_defq_id_count;
|
|
u32 rdma_qp_id_start;
|
|
u32 rdma_qp_id_count;
|
|
u32 rsvd1[8];
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_259_PARAMS {
|
|
struct FWCMD_COMMON_ANON_260_REQUEST request;
|
|
struct BE_FIRMWARE_CONFIG response;
|
|
} __packed;
|
|
|
|
/*
|
|
* This comand queries the current firmware configuration parameters.
|
|
* The static configuration type is defined by be_config_number. This
|
|
* differentiates different BladeEngine builds, such as iSCSI Initiator
|
|
* versus iSCSI Target. For a given static configuration, the Upper
|
|
* Layer Protocol (ULP) processors may be reconfigured to support different
|
|
* protocols. Each ULP processor supports one or more protocols. The
|
|
* masks indicate which processors are configured for each protocol.
|
|
* For a given static configuration, the number of TCP connections
|
|
* supported for each protocol may vary. The *_id_start and *_id_count
|
|
* variables define a linear range of IDs that are available for each
|
|
* supported protocol. The *_id_count may be used by the driver to allocate
|
|
* the appropriate number of connection resources. The *_id_start may
|
|
* be used to map the arbitrary range of IDs to a zero-based range
|
|
* of indices.
|
|
*/
|
|
struct FWCMD_COMMON_FIRMWARE_CONFIG {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_259_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_PORT_EQUALIZATION_PARAMS {
|
|
u32 emph_lev_sel_port0;
|
|
u32 emph_lev_sel_port1;
|
|
u8 xaui_vo_sel;
|
|
u8 xaui_state;
|
|
u16 rsvd0;
|
|
u32 xaui_eq_vector;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_262_REQUEST {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_261_PARAMS {
|
|
struct FWCMD_COMMON_ANON_262_REQUEST request;
|
|
struct FWCMD_COMMON_PORT_EQUALIZATION_PARAMS response;
|
|
} __packed;
|
|
|
|
/*
|
|
* This comand can be used to read XAUI equalization parameters. The
|
|
* ARM firmware applies default equalization parameters during initialization.
|
|
* These parameters may be customer-specific when derived from the
|
|
* SEEPROM. See SEEPROM_DATA for equalization specific fields.
|
|
*/
|
|
struct FWCMD_COMMON_GET_PORT_EQUALIZATION {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_261_PARAMS params;
|
|
} __packed;
|
|
|
|
struct FWCMD_COMMON_ANON_264_RESPONSE {
|
|
u32 rsvd0;
|
|
} __packed;
|
|
|
|
union FWCMD_COMMON_ANON_263_PARAMS {
|
|
struct FWCMD_COMMON_PORT_EQUALIZATION_PARAMS request;
|
|
struct FWCMD_COMMON_ANON_264_RESPONSE response;
|
|
} __packed;
|
|
|
|
/*
|
|
* This comand can be used to set XAUI equalization parameters. The ARM
|
|
* firmware applies default equalization parameters during initialization.
|
|
* These parameters may be customer-specific when derived from the
|
|
* SEEPROM. See SEEPROM_DATA for equalization specific fields.
|
|
*/
|
|
struct FWCMD_COMMON_SET_PORT_EQUALIZATION {
|
|
union FWCMD_HEADER header;
|
|
union FWCMD_COMMON_ANON_263_PARAMS params;
|
|
} __packed;
|
|
|
|
#endif /* __fwcmd_common_bmap_h__ */
|