Back to home page

OSCL-LXR

 
 

    


0001 /* Broadcom NetXtreme-C/E network driver.
0002  *
0003  * Copyright (c) 2014-2016 Broadcom Corporation
0004  *
0005  * This program is free software; you can redistribute it and/or modify
0006  * it under the terms of the GNU General Public License as published by
0007  * the Free Software Foundation.
0008  */
0009 
0010 #ifndef __BNXT_FW_HDR_H__
0011 #define __BNXT_FW_HDR_H__
0012 
0013 #define BNXT_FIRMWARE_BIN_SIGNATURE     0x1a4d4342  /* "BCM"+0x1a */
0014 #define BNXT_UCODE_TRAILER_SIGNATURE    0x726c7254  /* "Trlr" */
0015 
0016 enum SUPPORTED_FAMILY {
0017     DEVICE_5702_3_4_FAMILY,     /* 0  - Denali, Vinson, K2 */
0018     DEVICE_5705_FAMILY,     /* 1  - Bachelor */
0019     DEVICE_SHASTA_FAMILY,       /* 2  - 5751 */
0020     DEVICE_5706_FAMILY,     /* 3  - Teton */
0021     DEVICE_5714_FAMILY,     /* 4  - Hamilton */
0022     DEVICE_STANFORD_FAMILY,     /* 5  - 5755 */
0023     DEVICE_STANFORD_ME_FAMILY,  /* 6  - 5756 */
0024     DEVICE_SOLEDAD_FAMILY,      /* 7  - 5761[E] */
0025     DEVICE_CILAI_FAMILY,        /* 8  - 57780/60/90/91 */
0026     DEVICE_ASPEN_FAMILY,        /* 9  - 57781/85/61/65/91/95 */
0027     DEVICE_ASPEN_PLUS_FAMILY,   /* 10 - 57786 */
0028     DEVICE_LOGAN_FAMILY,        /* 11 - Any device in the Logan family
0029                      */
0030     DEVICE_LOGAN_5762,      /* 12 - Logan Enterprise (aka Columbia)
0031                      */
0032     DEVICE_LOGAN_57767,     /* 13 - Logan Client */
0033     DEVICE_LOGAN_57787,     /* 14 - Logan Consumer */
0034     DEVICE_LOGAN_5725,      /* 15 - Logan Server (TruManage-enabled)
0035                      */
0036     DEVICE_SAWTOOTH_FAMILY,     /* 16 - 5717/18 */
0037     DEVICE_COTOPAXI_FAMILY,     /* 17 - 5719 */
0038     DEVICE_SNAGGLETOOTH_FAMILY, /* 18 - 5720 */
0039     DEVICE_CUMULUS_FAMILY,      /* 19 - Cumulus/Whitney */
0040     MAX_DEVICE_FAMILY
0041 };
0042 
0043 enum SUPPORTED_CODE {
0044     CODE_ASF1,      /* 0  - ASF VERSION 1.03 <deprecated> */
0045     CODE_ASF2,      /* 1  - ASF VERSION 2.00 <deprecated> */
0046     CODE_PASSTHRU,      /* 2  - PassThru         <deprecated> */
0047     CODE_PT_SEC,        /* 3  - PassThru with security <deprecated> */
0048     CODE_UMP,       /* 4  - UMP                     <deprecated> */
0049     CODE_BOOT,      /* 5  - Bootcode */
0050     CODE_DASH,      /* 6  - TruManage (DASH + ASF + PMCI)
0051                  *  Management firmwares
0052                  */
0053     CODE_MCTP_PASSTHRU, /* 7  - NCSI / MCTP Passt-hrough firmware */
0054     CODE_PM_OFFLOAD,    /* 8  - Power-Management Proxy Offload firmwares
0055                  */
0056     CODE_MDNS_SD_OFFLOAD,   /* 9  - Multicast DNS Service Discovery Proxys
0057                  *  Offload firmware
0058                  */
0059     CODE_DISC_OFFLOAD,  /* 10 - Discovery Offload firmware */
0060     CODE_MUSTANG,       /* 11 - I2C Error reporting APE firmwares
0061                  *  <deprecated>
0062                  */
0063     CODE_ARP_BATCH,     /* 12 - ARP Batch firmware */
0064     CODE_SMASH,     /* 13 - TruManage (SMASH + DCMI/IPMI + PMCI)
0065                  *  Management firmware
0066                  */
0067     CODE_APE_DIAG,      /* 14 - APE Test Diag firmware */
0068     CODE_APE_PATCH,     /* 15 - APE Patch firmware */
0069     CODE_TANG_PATCH,    /* 16 - TANG Patch firmware */
0070     CODE_KONG_FW,       /* 17 - KONG firmware */
0071     CODE_KONG_PATCH,    /* 18 - KONG Patch firmware */
0072     CODE_BONO_FW,       /* 19 - BONO firmware */
0073     CODE_BONO_PATCH,    /* 20 - BONO Patch firmware */
0074     CODE_CHIMP_PATCH,   /* 21 - ChiMP Patch firmware */
0075 
0076     MAX_CODE_TYPE,
0077 };
0078 
0079 enum SUPPORTED_MEDIA {
0080     MEDIA_COPPER,       /* 0 */
0081     MEDIA_FIBER,        /* 1 */
0082     MEDIA_NONE,     /* 2 */
0083     MEDIA_COPPER_FIBER, /* 3 */
0084     MAX_MEDIA_TYPE,
0085 };
0086 
0087 struct bnxt_fw_header {
0088     __le32 signature;   /* constains the constant value of
0089                  * BNXT_FIRMWARE_BIN_SIGNATURE
0090                  */
0091     u8 flags;       /* reserved for ChiMP use */
0092     u8 code_type;       /* enum SUPPORTED_CODE */
0093     u8 device;      /* enum SUPPORTED_FAMILY */
0094     u8 media;       /* enum SUPPORTED_MEDIA */
0095     u8 version[16];     /* the null terminated version string to
0096                  * indicate the version of the
0097                  * file, this will be copied from the binary
0098                  * file version string
0099                  */
0100     u8 build;
0101     u8 revision;
0102     u8 minor_ver;
0103     u8 major_ver;
0104 };
0105 
0106 /* Microcode and pre-boot software/firmware trailer: */
0107 struct bnxt_ucode_trailer {
0108     u8 rsa_sig[256];
0109     __le16 flags;
0110     u8 version_format;
0111     u8 version_length;
0112     u8 version[16];
0113     __le16 dir_type;
0114     __le16 trailer_length;
0115     __le32 sig;     /* BNXT_UCODE_TRAILER_SIGNATURE */
0116     __le32 chksum;      /* CRC-32 */
0117 };
0118 
0119 #endif