hc
2024-03-22 f63cd4c03ea42695d5f9b0e1798edd196923aae6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/* 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