be2net: fix port-res desc query of GET_PROFILE_CONFIG FW cmd
[cascardo/linux.git] / drivers / net / ethernet / emulex / benet / be_cmds.h
index 91155ea..5098170 100644 (file)
@@ -66,7 +66,9 @@ enum mcc_addl_status {
        MCC_ADDL_STATUS_INSUFFICIENT_RESOURCES = 0x16,
        MCC_ADDL_STATUS_FLASH_IMAGE_CRC_MISMATCH = 0x4d,
        MCC_ADDL_STATUS_TOO_MANY_INTERFACES = 0x4a,
-       MCC_ADDL_STATUS_INSUFFICIENT_VLANS = 0xab
+       MCC_ADDL_STATUS_INSUFFICIENT_VLANS = 0xab,
+       MCC_ADDL_STATUS_INVALID_SIGNATURE = 0x56,
+       MCC_ADDL_STATUS_MISSING_SIGNATURE = 0x57
 };
 
 #define CQE_BASE_STATUS_MASK           0xFFFF
@@ -289,9 +291,7 @@ struct be_cmd_req_hdr {
        u32 timeout;            /* dword 1 */
        u32 request_length;     /* dword 2 */
        u8 version;             /* dword 3 */
-       u8 rsvd1;               /* dword 3 */
-       u8 pf_num;              /* dword 3 */
-       u8 rsvd2;               /* dword 3 */
+       u8 rsvd[3];             /* dword 3 */
 };
 
 #define RESP_HDR_INFO_OPCODE_SHIFT     0       /* bits 0 - 7 */
@@ -1207,68 +1207,85 @@ struct be_cmd_resp_get_beacon_state {
 /* Flashrom related descriptors */
 #define MAX_FLASH_COMP                 32
 
-#define OPTYPE_ISCSI_ACTIVE            0
-#define OPTYPE_REDBOOT                 1
-#define OPTYPE_BIOS                    2
-#define OPTYPE_PXE_BIOS                        3
-#define OPTYPE_OFFSET_SPECIFIED                7
-#define OPTYPE_FCOE_BIOS               8
-#define OPTYPE_ISCSI_BACKUP            9
-#define OPTYPE_FCOE_FW_ACTIVE          10
-#define OPTYPE_FCOE_FW_BACKUP          11
-#define OPTYPE_NCSI_FW                 13
-#define OPTYPE_REDBOOT_DIR             18
-#define OPTYPE_REDBOOT_CONFIG          19
-#define OPTYPE_SH_PHY_FW               21
-#define OPTYPE_FLASHISM_JUMPVECTOR     22
-#define OPTYPE_UFI_DIR                 23
-#define OPTYPE_PHY_FW                  99
-
-#define FLASH_BIOS_IMAGE_MAX_SIZE_g2   262144  /* Max OPTION ROM image sz */
-#define FLASH_REDBOOT_IMAGE_MAX_SIZE_g2        262144  /* Max Redboot image sz    */
-#define FLASH_IMAGE_MAX_SIZE_g2                1310720 /* Max firmware image size */
-
-#define FLASH_NCSI_IMAGE_MAX_SIZE_g3   262144
-#define FLASH_PHY_FW_IMAGE_MAX_SIZE_g3 262144
-#define FLASH_BIOS_IMAGE_MAX_SIZE_g3   524288  /* Max OPTION ROM image sz */
-#define FLASH_REDBOOT_IMAGE_MAX_SIZE_g3        1048576 /* Max Redboot image sz    */
-#define FLASH_IMAGE_MAX_SIZE_g3                2097152 /* Max firmware image size */
-
-/* Offsets for components on Flash. */
-#define FLASH_REDBOOT_START_g2                 0
-#define FLASH_FCoE_BIOS_START_g2               524288
-#define FLASH_iSCSI_PRIMARY_IMAGE_START_g2     1048576
-#define FLASH_iSCSI_BACKUP_IMAGE_START_g2      2359296
-#define FLASH_FCoE_PRIMARY_IMAGE_START_g2      3670016
-#define FLASH_FCoE_BACKUP_IMAGE_START_g2       4980736
-#define FLASH_iSCSI_BIOS_START_g2              7340032
-#define FLASH_PXE_BIOS_START_g2                        7864320
-
-#define FLASH_REDBOOT_START_g3                 262144
-#define FLASH_PHY_FW_START_g3                  1310720
-#define FLASH_iSCSI_PRIMARY_IMAGE_START_g3     2097152
-#define FLASH_iSCSI_BACKUP_IMAGE_START_g3      4194304
-#define FLASH_FCoE_PRIMARY_IMAGE_START_g3      6291456
-#define FLASH_FCoE_BACKUP_IMAGE_START_g3       8388608
-#define FLASH_iSCSI_BIOS_START_g3              12582912
-#define FLASH_PXE_BIOS_START_g3                        13107200
-#define FLASH_FCoE_BIOS_START_g3               13631488
-#define FLASH_NCSI_START_g3                    15990784
-
-#define IMAGE_NCSI                     16
-#define IMAGE_OPTION_ROM_PXE           32
-#define IMAGE_OPTION_ROM_FCoE          33
-#define IMAGE_OPTION_ROM_ISCSI         34
-#define IMAGE_FLASHISM_JUMPVECTOR      48
-#define IMAGE_FIRMWARE_iSCSI           160
-#define IMAGE_FIRMWARE_FCoE            162
-#define IMAGE_FIRMWARE_BACKUP_iSCSI    176
-#define IMAGE_FIRMWARE_BACKUP_FCoE     178
-#define IMAGE_FIRMWARE_PHY             192
-#define IMAGE_REDBOOT_DIR              208
-#define IMAGE_REDBOOT_CONFIG           209
-#define IMAGE_UFI_DIR                  210
-#define IMAGE_BOOT_CODE                        224
+/* Optypes of each component in the UFI */
+enum {
+       OPTYPE_ISCSI_ACTIVE = 0,
+       OPTYPE_REDBOOT = 1,
+       OPTYPE_BIOS = 2,
+       OPTYPE_PXE_BIOS = 3,
+       OPTYPE_OFFSET_SPECIFIED = 7,
+       OPTYPE_FCOE_BIOS = 8,
+       OPTYPE_ISCSI_BACKUP = 9,
+       OPTYPE_FCOE_FW_ACTIVE = 10,
+       OPTYPE_FCOE_FW_BACKUP = 11,
+       OPTYPE_NCSI_FW = 13,
+       OPTYPE_REDBOOT_DIR = 18,
+       OPTYPE_REDBOOT_CONFIG = 19,
+       OPTYPE_SH_PHY_FW = 21,
+       OPTYPE_FLASHISM_JUMPVECTOR = 22,
+       OPTYPE_UFI_DIR = 23,
+       OPTYPE_PHY_FW = 99
+};
+
+/* Maximum sizes of components in BE2 FW UFI */
+enum {
+       BE2_BIOS_COMP_MAX_SIZE = 0x40000,
+       BE2_REDBOOT_COMP_MAX_SIZE = 0x40000,
+       BE2_COMP_MAX_SIZE = 0x140000
+};
+
+/* Maximum sizes of components in BE3 FW UFI */
+enum {
+       BE3_NCSI_COMP_MAX_SIZE = 0x40000,
+       BE3_PHY_FW_COMP_MAX_SIZE = 0x40000,
+       BE3_BIOS_COMP_MAX_SIZE = 0x80000,
+       BE3_REDBOOT_COMP_MAX_SIZE = 0x100000,
+       BE3_COMP_MAX_SIZE = 0x200000
+};
+
+/* Offsets for components in BE2 FW UFI */
+enum {
+       BE2_REDBOOT_START = 0x8000,
+       BE2_FCOE_BIOS_START = 0x80000,
+       BE2_ISCSI_PRIMARY_IMAGE_START = 0x100000,
+       BE2_ISCSI_BACKUP_IMAGE_START = 0x240000,
+       BE2_FCOE_PRIMARY_IMAGE_START = 0x380000,
+       BE2_FCOE_BACKUP_IMAGE_START = 0x4c0000,
+       BE2_ISCSI_BIOS_START = 0x700000,
+       BE2_PXE_BIOS_START = 0x780000
+};
+
+/* Offsets for components in BE3 FW UFI */
+enum {
+       BE3_REDBOOT_START = 0x40000,
+       BE3_PHY_FW_START = 0x140000,
+       BE3_ISCSI_PRIMARY_IMAGE_START = 0x200000,
+       BE3_ISCSI_BACKUP_IMAGE_START = 0x400000,
+       BE3_FCOE_PRIMARY_IMAGE_START = 0x600000,
+       BE3_FCOE_BACKUP_IMAGE_START = 0x800000,
+       BE3_ISCSI_BIOS_START = 0xc00000,
+       BE3_PXE_BIOS_START = 0xc80000,
+       BE3_FCOE_BIOS_START = 0xd00000,
+       BE3_NCSI_START = 0xf40000
+};
+
+/* Component entry types */
+enum {
+       IMAGE_NCSI = 0x10,
+       IMAGE_OPTION_ROM_PXE = 0x20,
+       IMAGE_OPTION_ROM_FCOE = 0x21,
+       IMAGE_OPTION_ROM_ISCSI = 0x22,
+       IMAGE_FLASHISM_JUMPVECTOR = 0x30,
+       IMAGE_FIRMWARE_ISCSI = 0xa0,
+       IMAGE_FIRMWARE_FCOE = 0xa2,
+       IMAGE_FIRMWARE_BACKUP_ISCSI = 0xb0,
+       IMAGE_FIRMWARE_BACKUP_FCOE = 0xb2,
+       IMAGE_FIRMWARE_PHY = 0xc0,
+       IMAGE_REDBOOT_DIR = 0xd0,
+       IMAGE_REDBOOT_CONFIG = 0xd1,
+       IMAGE_UFI_DIR = 0xd2,
+       IMAGE_BOOT_CODE = 0xe2
+};
 
 struct controller_id {
        u32 vendor;
@@ -1394,6 +1411,9 @@ struct be_cmd_read_flash_crc {
 } __packed;
 
 /**************** Lancer Firmware Flash ************/
+#define LANCER_FW_DOWNLOAD_CHUNK      (32 * 1024)
+#define LANCER_FW_DOWNLOAD_LOCATION   "/prg"
+
 struct amap_lancer_write_obj_context {
        u8 write_length[24];
        u8 reserved1[7];
@@ -1654,11 +1674,7 @@ struct mgmt_hba_attribs {
 
 struct mgmt_controller_attrib {
        struct mgmt_hba_attribs hba_attribs;
-       u32 rsvd0[2];
-       u16 rsvd1;
-       u8 pci_func_num;
-       u8 rsvd2;
-       u32 rsvd3[7];
+       u32 rsvd0[10];
 } __packed;
 
 struct be_cmd_req_cntl_attribs {
@@ -2083,6 +2099,7 @@ struct be_port_res_desc {
 #define NV_TYPE_VXLAN                          3
 #define SOCVID_SHIFT                           2       /* Strip outer vlan */
 #define RCVID_SHIFT                            4       /* Report vlan */
+#define PF_NUM_IGNORE                          255
        u8 nv_flags;
        u8 rsvd2;
        __le16 nv_port;                                 /* vxlan/gre port */
@@ -2246,7 +2263,8 @@ struct be_cmd_resp_get_iface_list {
 };
 
 /*************** Set logical link ********************/
-#define PLINK_TRACK_SHIFT      8
+#define PLINK_ENABLE            BIT(0)
+#define PLINK_TRACK             BIT(8)
 struct be_cmd_req_set_ll_link {
        struct be_cmd_req_hdr hdr;
        u32 link_config; /* Bit 0: UP_DOWN, Bit 9: PLINK */
@@ -2321,19 +2339,11 @@ int be_cmd_read_port_transceiver_data(struct be_adapter *adapter,
                                      u8 page_num, u8 *data);
 int be_cmd_query_cable_type(struct be_adapter *adapter);
 int be_cmd_query_sfp_info(struct be_adapter *adapter);
-int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
-                         u32 flash_oper, u32 flash_opcode, u32 img_offset,
-                         u32 buf_size);
-int lancer_cmd_write_object(struct be_adapter *adapter, struct be_dma_mem *cmd,
-                           u32 data_size, u32 data_offset,
-                           const char *obj_name, u32 *data_written,
-                           u8 *change_status, u8 *addn_status);
 int lancer_cmd_read_object(struct be_adapter *adapter, struct be_dma_mem *cmd,
                           u32 data_size, u32 data_offset, const char *obj_name,
                           u32 *data_read, u32 *eof, u8 *addn_status);
-int lancer_cmd_delete_object(struct be_adapter *adapter, const char *obj_name);
-int be_cmd_get_flash_crc(struct be_adapter *adapter, u8 *flashed_crc,
-                        u16 img_optype, u32 img_offset, u32 crc_offset);
+int lancer_fw_download(struct be_adapter *adapter, const struct firmware *fw);
+int be_fw_download(struct be_adapter *adapter, const struct firmware *fw);
 int be_cmd_enable_magic_wol(struct be_adapter *adapter, u8 *mac,
                            struct be_dma_mem *nonemb_cmd);
 int be_cmd_fw_init(struct be_adapter *adapter);