forked from Minki/linux
5ac67d8bc7
Using Ethtool flashdev command, entire NVM package (*.pkg) files may now be staged into the "update" area of the NVM and subsequently verified and installed by the firmware using the newly introduced command: NVM_INSTALL_UPDATE. We also introduce use of the new firmware command FW_SET_TIME so that the NVM-resident package installation log contains valid time-stamps. Signed-off-by: Rob Swindell <Rob.Swindell@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
120 lines
3.7 KiB
C
120 lines
3.7 KiB
C
/* Broadcom NetXtreme-C/E network driver.
|
|
*
|
|
* Copyright (c) 2014-2016 Broadcom Corporation
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef __BNXT_FW_HDR_H__
|
|
#define __BNXT_FW_HDR_H__
|
|
|
|
#define BNXT_FIRMWARE_BIN_SIGNATURE 0x1a4d4342 /* "BCM"+0x1a */
|
|
#define BNXT_UCODE_TRAILER_SIGNATURE 0x726c7254 /* "Trlr" */
|
|
|
|
enum SUPPORTED_FAMILY {
|
|
DEVICE_5702_3_4_FAMILY, /* 0 - Denali, Vinson, K2 */
|
|
DEVICE_5705_FAMILY, /* 1 - Bachelor */
|
|
DEVICE_SHASTA_FAMILY, /* 2 - 5751 */
|
|
DEVICE_5706_FAMILY, /* 3 - Teton */
|
|
DEVICE_5714_FAMILY, /* 4 - Hamilton */
|
|
DEVICE_STANFORD_FAMILY, /* 5 - 5755 */
|
|
DEVICE_STANFORD_ME_FAMILY, /* 6 - 5756 */
|
|
DEVICE_SOLEDAD_FAMILY, /* 7 - 5761[E] */
|
|
DEVICE_CILAI_FAMILY, /* 8 - 57780/60/90/91 */
|
|
DEVICE_ASPEN_FAMILY, /* 9 - 57781/85/61/65/91/95 */
|
|
DEVICE_ASPEN_PLUS_FAMILY, /* 10 - 57786 */
|
|
DEVICE_LOGAN_FAMILY, /* 11 - Any device in the Logan family
|
|
*/
|
|
DEVICE_LOGAN_5762, /* 12 - Logan Enterprise (aka Columbia)
|
|
*/
|
|
DEVICE_LOGAN_57767, /* 13 - Logan Client */
|
|
DEVICE_LOGAN_57787, /* 14 - Logan Consumer */
|
|
DEVICE_LOGAN_5725, /* 15 - Logan Server (TruManage-enabled)
|
|
*/
|
|
DEVICE_SAWTOOTH_FAMILY, /* 16 - 5717/18 */
|
|
DEVICE_COTOPAXI_FAMILY, /* 17 - 5719 */
|
|
DEVICE_SNAGGLETOOTH_FAMILY, /* 18 - 5720 */
|
|
DEVICE_CUMULUS_FAMILY, /* 19 - Cumulus/Whitney */
|
|
MAX_DEVICE_FAMILY
|
|
};
|
|
|
|
enum SUPPORTED_CODE {
|
|
CODE_ASF1, /* 0 - ASF VERSION 1.03 <deprecated> */
|
|
CODE_ASF2, /* 1 - ASF VERSION 2.00 <deprecated> */
|
|
CODE_PASSTHRU, /* 2 - PassThru <deprecated> */
|
|
CODE_PT_SEC, /* 3 - PassThru with security <deprecated> */
|
|
CODE_UMP, /* 4 - UMP <deprecated> */
|
|
CODE_BOOT, /* 5 - Bootcode */
|
|
CODE_DASH, /* 6 - TruManage (DASH + ASF + PMCI)
|
|
* Management firmwares
|
|
*/
|
|
CODE_MCTP_PASSTHRU, /* 7 - NCSI / MCTP Passt-hrough firmware */
|
|
CODE_PM_OFFLOAD, /* 8 - Power-Management Proxy Offload firmwares
|
|
*/
|
|
CODE_MDNS_SD_OFFLOAD, /* 9 - Multicast DNS Service Discovery Proxys
|
|
* Offload firmware
|
|
*/
|
|
CODE_DISC_OFFLOAD, /* 10 - Discovery Offload firmware */
|
|
CODE_MUSTANG, /* 11 - I2C Error reporting APE firmwares
|
|
* <deprecated>
|
|
*/
|
|
CODE_ARP_BATCH, /* 12 - ARP Batch firmware */
|
|
CODE_SMASH, /* 13 - TruManage (SMASH + DCMI/IPMI + PMCI)
|
|
* Management firmware
|
|
*/
|
|
CODE_APE_DIAG, /* 14 - APE Test Diag firmware */
|
|
CODE_APE_PATCH, /* 15 - APE Patch firmware */
|
|
CODE_TANG_PATCH, /* 16 - TANG Patch firmware */
|
|
CODE_KONG_FW, /* 17 - KONG firmware */
|
|
CODE_KONG_PATCH, /* 18 - KONG Patch firmware */
|
|
CODE_BONO_FW, /* 19 - BONO firmware */
|
|
CODE_BONO_PATCH, /* 20 - BONO Patch firmware */
|
|
CODE_CHIMP_PATCH, /* 21 - ChiMP Patch firmware */
|
|
|
|
MAX_CODE_TYPE,
|
|
};
|
|
|
|
enum SUPPORTED_MEDIA {
|
|
MEDIA_COPPER, /* 0 */
|
|
MEDIA_FIBER, /* 1 */
|
|
MEDIA_NONE, /* 2 */
|
|
MEDIA_COPPER_FIBER, /* 3 */
|
|
MAX_MEDIA_TYPE,
|
|
};
|
|
|
|
struct bnxt_fw_header {
|
|
__le32 signature; /* constains the constant value of
|
|
* BNXT_FIRMWARE_BIN_SIGNATURE
|
|
*/
|
|
u8 flags; /* reserved for ChiMP use */
|
|
u8 code_type; /* enum SUPPORTED_CODE */
|
|
u8 device; /* enum SUPPORTED_FAMILY */
|
|
u8 media; /* enum SUPPORTED_MEDIA */
|
|
u8 version[16]; /* the null terminated version string to
|
|
* indicate the version of the
|
|
* file, this will be copied from the binary
|
|
* file version string
|
|
*/
|
|
u8 build;
|
|
u8 revision;
|
|
u8 minor_ver;
|
|
u8 major_ver;
|
|
};
|
|
|
|
/* Microcode and pre-boot software/firmware trailer: */
|
|
struct bnxt_ucode_trailer {
|
|
u8 rsa_sig[256];
|
|
__le16 flags;
|
|
u8 version_format;
|
|
u8 version_length;
|
|
u8 version[16];
|
|
__le16 dir_type;
|
|
__le16 trailer_length;
|
|
__le32 sig; /* BNXT_UCODE_TRAILER_SIGNATURE */
|
|
__le32 chksum; /* CRC-32 */
|
|
};
|
|
|
|
#endif
|