120 lines · c
1/* Broadcom NetXtreme-C/E network driver.2 *3 * Copyright (c) 2014-2016 Broadcom Corporation4 *5 * This program is free software; you can redistribute it and/or modify6 * it under the terms of the GNU General Public License as published by7 * the Free Software Foundation.8 */9 10#ifndef __BNXT_FW_HDR_H__11#define __BNXT_FW_HDR_H__12 13#define BNXT_FIRMWARE_BIN_SIGNATURE 0x1a4d4342 /* "BCM"+0x1a */14#define BNXT_UCODE_TRAILER_SIGNATURE 0x726c7254 /* "Trlr" */15 16enum SUPPORTED_FAMILY {17 DEVICE_5702_3_4_FAMILY, /* 0 - Denali, Vinson, K2 */18 DEVICE_5705_FAMILY, /* 1 - Bachelor */19 DEVICE_SHASTA_FAMILY, /* 2 - 5751 */20 DEVICE_5706_FAMILY, /* 3 - Teton */21 DEVICE_5714_FAMILY, /* 4 - Hamilton */22 DEVICE_STANFORD_FAMILY, /* 5 - 5755 */23 DEVICE_STANFORD_ME_FAMILY, /* 6 - 5756 */24 DEVICE_SOLEDAD_FAMILY, /* 7 - 5761[E] */25 DEVICE_CILAI_FAMILY, /* 8 - 57780/60/90/91 */26 DEVICE_ASPEN_FAMILY, /* 9 - 57781/85/61/65/91/95 */27 DEVICE_ASPEN_PLUS_FAMILY, /* 10 - 57786 */28 DEVICE_LOGAN_FAMILY, /* 11 - Any device in the Logan family29 */30 DEVICE_LOGAN_5762, /* 12 - Logan Enterprise (aka Columbia)31 */32 DEVICE_LOGAN_57767, /* 13 - Logan Client */33 DEVICE_LOGAN_57787, /* 14 - Logan Consumer */34 DEVICE_LOGAN_5725, /* 15 - Logan Server (TruManage-enabled)35 */36 DEVICE_SAWTOOTH_FAMILY, /* 16 - 5717/18 */37 DEVICE_COTOPAXI_FAMILY, /* 17 - 5719 */38 DEVICE_SNAGGLETOOTH_FAMILY, /* 18 - 5720 */39 DEVICE_CUMULUS_FAMILY, /* 19 - Cumulus/Whitney */40 MAX_DEVICE_FAMILY41};42 43enum SUPPORTED_CODE {44 CODE_ASF1, /* 0 - ASF VERSION 1.03 <deprecated> */45 CODE_ASF2, /* 1 - ASF VERSION 2.00 <deprecated> */46 CODE_PASSTHRU, /* 2 - PassThru <deprecated> */47 CODE_PT_SEC, /* 3 - PassThru with security <deprecated> */48 CODE_UMP, /* 4 - UMP <deprecated> */49 CODE_BOOT, /* 5 - Bootcode */50 CODE_DASH, /* 6 - TruManage (DASH + ASF + PMCI)51 * Management firmwares52 */53 CODE_MCTP_PASSTHRU, /* 7 - NCSI / MCTP Passt-hrough firmware */54 CODE_PM_OFFLOAD, /* 8 - Power-Management Proxy Offload firmwares55 */56 CODE_MDNS_SD_OFFLOAD, /* 9 - Multicast DNS Service Discovery Proxys57 * Offload firmware58 */59 CODE_DISC_OFFLOAD, /* 10 - Discovery Offload firmware */60 CODE_MUSTANG, /* 11 - I2C Error reporting APE firmwares61 * <deprecated>62 */63 CODE_ARP_BATCH, /* 12 - ARP Batch firmware */64 CODE_SMASH, /* 13 - TruManage (SMASH + DCMI/IPMI + PMCI)65 * Management firmware66 */67 CODE_APE_DIAG, /* 14 - APE Test Diag firmware */68 CODE_APE_PATCH, /* 15 - APE Patch firmware */69 CODE_TANG_PATCH, /* 16 - TANG Patch firmware */70 CODE_KONG_FW, /* 17 - KONG firmware */71 CODE_KONG_PATCH, /* 18 - KONG Patch firmware */72 CODE_BONO_FW, /* 19 - BONO firmware */73 CODE_BONO_PATCH, /* 20 - BONO Patch firmware */74 CODE_CHIMP_PATCH, /* 21 - ChiMP Patch firmware */75 76 MAX_CODE_TYPE,77};78 79enum SUPPORTED_MEDIA {80 MEDIA_COPPER, /* 0 */81 MEDIA_FIBER, /* 1 */82 MEDIA_NONE, /* 2 */83 MEDIA_COPPER_FIBER, /* 3 */84 MAX_MEDIA_TYPE,85};86 87struct bnxt_fw_header {88 __le32 signature; /* constains the constant value of89 * BNXT_FIRMWARE_BIN_SIGNATURE90 */91 u8 flags; /* reserved for ChiMP use */92 u8 code_type; /* enum SUPPORTED_CODE */93 u8 device; /* enum SUPPORTED_FAMILY */94 u8 media; /* enum SUPPORTED_MEDIA */95 u8 version[16]; /* the null terminated version string to96 * indicate the version of the97 * file, this will be copied from the binary98 * file version string99 */100 u8 build;101 u8 revision;102 u8 minor_ver;103 u8 major_ver;104};105 106/* Microcode and pre-boot software/firmware trailer: */107struct bnxt_ucode_trailer {108 u8 rsa_sig[256];109 __le16 flags;110 u8 version_format;111 u8 version_length;112 u8 version[16];113 __le16 dir_type;114 __le16 trailer_length;115 __le32 sig; /* BNXT_UCODE_TRAILER_SIGNATURE */116 __le32 chksum; /* CRC-32 */117};118 119#endif120