aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2007-09-30 20:55:51 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:53:57 -0400
commitb3448b0bde5f1a858397fe791f76632e978a1dc8 (patch)
tree930bd73182f12eb37c2f14121556b1c6ff67d6bd
parent89e536a190f90d038bae7905a0c582cb7089b739 (diff)
[BNX2]: factor out gzip unpacker
This patch modifies gzip unpacking code in bnx2 driver so that it does not depend on bnx2 internals. I will move this code out of the driver and into zlib in follow-on patch. It can be useful in other drivers which need to store firmwares or any other relatively big binary blobs - fonts, cursor bitmaps, whatever. Patch is run tested by Michael Chan (driver author). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Acked-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bnx2.c160
-rw-r--r--drivers/net/bnx2.h5
-rw-r--r--drivers/net/bnx2_fw.h28
-rw-r--r--drivers/net/bnx2_fw2.h15
4 files changed, 86 insertions, 122 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 57f7d994c9c1..73d4a579790c 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -52,6 +52,8 @@
52#include "bnx2_fw.h" 52#include "bnx2_fw.h"
53#include "bnx2_fw2.h" 53#include "bnx2_fw2.h"
54 54
55#define FW_BUF_SIZE 0x8000
56
55#define DRV_MODULE_NAME "bnx2" 57#define DRV_MODULE_NAME "bnx2"
56#define PFX DRV_MODULE_NAME ": " 58#define PFX DRV_MODULE_NAME ": "
57#define DRV_MODULE_VERSION "1.6.5" 59#define DRV_MODULE_VERSION "1.6.5"
@@ -2759,89 +2761,45 @@ bnx2_set_rx_mode(struct net_device *dev)
2759 spin_unlock_bh(&bp->phy_lock); 2761 spin_unlock_bh(&bp->phy_lock);
2760} 2762}
2761 2763
2762#define FW_BUF_SIZE 0x8000 2764/* To be moved to generic lib/ */
2763
2764static int 2765static int
2765bnx2_gunzip_init(struct bnx2 *bp) 2766bnx2_gunzip(void *gunzip_buf, unsigned sz, u8 *zbuf, int len)
2766{ 2767{
2767 if ((bp->gunzip_buf = vmalloc(FW_BUF_SIZE)) == NULL) 2768 struct z_stream_s *strm;
2768 goto gunzip_nomem1; 2769 int rc;
2769 2770
2770 if ((bp->strm = kmalloc(sizeof(*bp->strm), GFP_KERNEL)) == NULL) 2771 /* gzip header (1f,8b,08... 10 bytes total + possible asciz filename)
2771 goto gunzip_nomem2; 2772 * is stripped */
2772 2773
2773 bp->strm->workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL); 2774 rc = -ENOMEM;
2774 if (bp->strm->workspace == NULL) 2775 strm = kmalloc(sizeof(*strm), GFP_KERNEL);
2776 if (strm == NULL)
2777 goto gunzip_nomem2;
2778 strm->workspace = kmalloc(zlib_inflate_workspacesize(), GFP_KERNEL);
2779 if (strm->workspace == NULL)
2775 goto gunzip_nomem3; 2780 goto gunzip_nomem3;
2776 2781
2777 return 0; 2782 strm->next_in = zbuf;
2783 strm->avail_in = len;
2784 strm->next_out = gunzip_buf;
2785 strm->avail_out = sz;
2786
2787 rc = zlib_inflateInit2(strm, -MAX_WBITS);
2788 if (rc == Z_OK) {
2789 rc = zlib_inflate(strm, Z_FINISH);
2790 /* after Z_FINISH, only Z_STREAM_END is "we unpacked it all" */
2791 if (rc == Z_STREAM_END)
2792 rc = sz - strm->avail_out;
2793 else
2794 rc = -EINVAL;
2795 zlib_inflateEnd(strm);
2796 } else
2797 rc = -EINVAL;
2778 2798
2799 kfree(strm->workspace);
2779gunzip_nomem3: 2800gunzip_nomem3:
2780 kfree(bp->strm); 2801 kfree(strm);
2781 bp->strm = NULL;
2782
2783gunzip_nomem2: 2802gunzip_nomem2:
2784 vfree(bp->gunzip_buf);
2785 bp->gunzip_buf = NULL;
2786
2787gunzip_nomem1:
2788 printk(KERN_ERR PFX "%s: Cannot allocate firmware buffer for "
2789 "uncompression.\n", bp->dev->name);
2790 return -ENOMEM;
2791}
2792
2793static void
2794bnx2_gunzip_end(struct bnx2 *bp)
2795{
2796 kfree(bp->strm->workspace);
2797
2798 kfree(bp->strm);
2799 bp->strm = NULL;
2800
2801 if (bp->gunzip_buf) {
2802 vfree(bp->gunzip_buf);
2803 bp->gunzip_buf = NULL;
2804 }
2805}
2806
2807static int
2808bnx2_gunzip(struct bnx2 *bp, u8 *zbuf, int len, void **outbuf, int *outlen)
2809{
2810 int n, rc;
2811
2812 /* check gzip header */
2813 if ((zbuf[0] != 0x1f) || (zbuf[1] != 0x8b) || (zbuf[2] != Z_DEFLATED))
2814 return -EINVAL;
2815
2816 n = 10;
2817
2818#define FNAME 0x8
2819 if (zbuf[3] & FNAME)
2820 while ((zbuf[n++] != 0) && (n < len));
2821
2822 bp->strm->next_in = zbuf + n;
2823 bp->strm->avail_in = len - n;
2824 bp->strm->next_out = bp->gunzip_buf;
2825 bp->strm->avail_out = FW_BUF_SIZE;
2826
2827 rc = zlib_inflateInit2(bp->strm, -MAX_WBITS);
2828 if (rc != Z_OK)
2829 return rc;
2830
2831 rc = zlib_inflate(bp->strm, Z_FINISH);
2832
2833 *outlen = FW_BUF_SIZE - bp->strm->avail_out;
2834 *outbuf = bp->gunzip_buf;
2835
2836 if ((rc != Z_OK) && (rc != Z_STREAM_END))
2837 printk(KERN_ERR PFX "%s: Firmware decompression error: %s\n",
2838 bp->dev->name, bp->strm->msg);
2839
2840 zlib_inflateEnd(bp->strm);
2841
2842 if (rc == Z_STREAM_END)
2843 return 0;
2844
2845 return rc; 2803 return rc;
2846} 2804}
2847 2805
@@ -2894,22 +2852,21 @@ load_cpu_fw(struct bnx2 *bp, struct cpu_reg *cpu_reg, struct fw_info *fw)
2894 /* Load the Text area. */ 2852 /* Load the Text area. */
2895 offset = cpu_reg->spad_base + (fw->text_addr - cpu_reg->mips_view_base); 2853 offset = cpu_reg->spad_base + (fw->text_addr - cpu_reg->mips_view_base);
2896 if (fw->gz_text) { 2854 if (fw->gz_text) {
2897 u32 text_len; 2855 u32 *text;
2898 void *text;
2899
2900 rc = bnx2_gunzip(bp, fw->gz_text, fw->gz_text_len, &text,
2901 &text_len);
2902 if (rc)
2903 return rc;
2904
2905 fw->text = text;
2906 }
2907 if (fw->gz_text) {
2908 int j; 2856 int j;
2909 2857
2858 text = vmalloc(FW_BUF_SIZE);
2859 if (!text)
2860 return -ENOMEM;
2861 rc = bnx2_gunzip(text, FW_BUF_SIZE, fw->gz_text, fw->gz_text_len);
2862 if (rc < 0) {
2863 vfree(text);
2864 return rc;
2865 }
2910 for (j = 0; j < (fw->text_len / 4); j++, offset += 4) { 2866 for (j = 0; j < (fw->text_len / 4); j++, offset += 4) {
2911 REG_WR_IND(bp, offset, cpu_to_le32(fw->text[j])); 2867 REG_WR_IND(bp, offset, cpu_to_le32(text[j]));
2912 } 2868 }
2869 vfree(text);
2913 } 2870 }
2914 2871
2915 /* Load the Data area. */ 2872 /* Load the Data area. */
@@ -2971,27 +2928,27 @@ bnx2_init_cpus(struct bnx2 *bp)
2971{ 2928{
2972 struct cpu_reg cpu_reg; 2929 struct cpu_reg cpu_reg;
2973 struct fw_info *fw; 2930 struct fw_info *fw;
2974 int rc = 0; 2931 int rc;
2975 void *text; 2932 void *text;
2976 u32 text_len;
2977
2978 if ((rc = bnx2_gunzip_init(bp)) != 0)
2979 return rc;
2980 2933
2981 /* Initialize the RV2P processor. */ 2934 /* Initialize the RV2P processor. */
2982 rc = bnx2_gunzip(bp, bnx2_rv2p_proc1, sizeof(bnx2_rv2p_proc1), &text, 2935 text = vmalloc(FW_BUF_SIZE);
2983 &text_len); 2936 if (!text)
2984 if (rc) 2937 return -ENOMEM;
2938 rc = bnx2_gunzip(text, FW_BUF_SIZE, bnx2_rv2p_proc1, sizeof(bnx2_rv2p_proc1));
2939 if (rc < 0) {
2940 vfree(text);
2985 goto init_cpu_err; 2941 goto init_cpu_err;
2942 }
2943 load_rv2p_fw(bp, text, rc /* == len */, RV2P_PROC1);
2986 2944
2987 load_rv2p_fw(bp, text, text_len, RV2P_PROC1); 2945 rc = bnx2_gunzip(text, FW_BUF_SIZE, bnx2_rv2p_proc2, sizeof(bnx2_rv2p_proc2));
2988 2946 if (rc < 0) {
2989 rc = bnx2_gunzip(bp, bnx2_rv2p_proc2, sizeof(bnx2_rv2p_proc2), &text, 2947 vfree(text);
2990 &text_len);
2991 if (rc)
2992 goto init_cpu_err; 2948 goto init_cpu_err;
2993 2949 }
2994 load_rv2p_fw(bp, text, text_len, RV2P_PROC2); 2950 load_rv2p_fw(bp, text, rc /* == len */, RV2P_PROC2);
2951 vfree(text);
2995 2952
2996 /* Initialize the RX Processor. */ 2953 /* Initialize the RX Processor. */
2997 cpu_reg.mode = BNX2_RXP_CPU_MODE; 2954 cpu_reg.mode = BNX2_RXP_CPU_MODE;
@@ -3107,7 +3064,6 @@ bnx2_init_cpus(struct bnx2 *bp)
3107 goto init_cpu_err; 3064 goto init_cpu_err;
3108 } 3065 }
3109init_cpu_err: 3066init_cpu_err:
3110 bnx2_gunzip_end(bp);
3111 return rc; 3067 return rc;
3112} 3068}
3113 3069
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index fbae439db647..a717459cc8d4 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -6681,9 +6681,6 @@ struct bnx2 {
6681 u32 flash_size; 6681 u32 flash_size;
6682 6682
6683 int status_stats_size; 6683 int status_stats_size;
6684
6685 struct z_stream_s *strm;
6686 void *gunzip_buf;
6687}; 6684};
6688 6685
6689static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset); 6686static u32 bnx2_reg_rd_ind(struct bnx2 *bp, u32 offset);
@@ -6741,7 +6738,7 @@ struct fw_info {
6741 const u32 text_addr; 6738 const u32 text_addr;
6742 const u32 text_len; 6739 const u32 text_len;
6743 const u32 text_index; 6740 const u32 text_index;
6744 u32 *text; 6741/* u32 *text;*/
6745 u8 *gz_text; 6742 u8 *gz_text;
6746 const u32 gz_text_len; 6743 const u32 gz_text_len;
6747 6744
diff --git a/drivers/net/bnx2_fw.h b/drivers/net/bnx2_fw.h
index b49f439e0f67..30f2f4052fc1 100644
--- a/drivers/net/bnx2_fw.h
+++ b/drivers/net/bnx2_fw.h
@@ -15,7 +15,8 @@
15 */ 15 */
16 16
17static u8 bnx2_COM_b06FwText[] = { 17static u8 bnx2_COM_b06FwText[] = {
18 0x1f, 0x8b, 0x08, 0x00, 0x45, 0x30, 0xe7, 0x45, 0x00, 0x03, 0xdc, 0x5a, 18/* 0x1f, 0x8b, 0x08, 0x00, 0x45, 0x30, 0xe7, 0x45, 0x00, 0x03, */
19 0xdc, 0x5a,
19 0x6b, 0x6c, 0x1c, 0xd7, 0x75, 0x3e, 0x33, 0x3b, 0x4b, 0xae, 0xc8, 0x15, 20 0x6b, 0x6c, 0x1c, 0xd7, 0x75, 0x3e, 0x33, 0x3b, 0x4b, 0xae, 0xc8, 0x15,
20 0x35, 0xa2, 0xc6, 0xf4, 0x5a, 0xa2, 0xed, 0x5d, 0x72, 0x28, 0x12, 0x96, 21 0x35, 0xa2, 0xc6, 0xf4, 0x5a, 0xa2, 0xed, 0x5d, 0x72, 0x28, 0x12, 0x96,
21 0xec, 0x6e, 0x68, 0xda, 0x62, 0x8c, 0x8d, 0xb4, 0xd9, 0xa5, 0x0c, 0xa1, 22 0xec, 0x6e, 0x68, 0xda, 0x62, 0x8c, 0x8d, 0xb4, 0xd9, 0xa5, 0x0c, 0xa1,
@@ -1085,8 +1086,9 @@ static struct fw_info bnx2_com_fw_06 = {
1085}; 1086};
1086 1087
1087static u8 bnx2_RXP_b06FwText[] = { 1088static u8 bnx2_RXP_b06FwText[] = {
1088 0x1f, 0x8b, 0x08, 0x08, 0xcb, 0xa3, 0x46, 0x45, 0x00, 0x03, 0x74, 0x65, 1089/* 0x1f, 0x8b, 0x08, 0x08, 0xcb, 0xa3, 0x46, 0x45, 0x00, 0x03, 0x74, 0x65,
1089 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0xec, 0x5c, 0x6f, 0x6c, 1090 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, */
1091 0xec, 0x5c, 0x6f, 0x6c,
1090 0x1c, 0xc7, 0x75, 0x7f, 0x3b, 0xbb, 0xa4, 0x4e, 0xd4, 0x91, 0x5c, 0x1e, 1092 0x1c, 0xc7, 0x75, 0x7f, 0x3b, 0xbb, 0xa4, 0x4e, 0xd4, 0x91, 0x5c, 0x1e,
1091 0x4f, 0xf4, 0x49, 0x66, 0x94, 0x5d, 0x71, 0x25, 0x5e, 0x2d, 0xc6, 0x5d, 1093 0x4f, 0xf4, 0x49, 0x66, 0x94, 0x5d, 0x71, 0x25, 0x5e, 0x2d, 0xc6, 0x5d,
1092 0x31, 0x57, 0x9b, 0x08, 0xce, 0xf1, 0x79, 0xef, 0x64, 0xb1, 0x86, 0x0a, 1094 0x31, 0x57, 0x9b, 0x08, 0xce, 0xf1, 0x79, 0xef, 0x64, 0xb1, 0x86, 0x0a,
@@ -1798,8 +1800,9 @@ static struct fw_info bnx2_rxp_fw_06 = {
1798}; 1800};
1799 1801
1800static u8 bnx2_rv2p_proc1[] = { 1802static u8 bnx2_rv2p_proc1[] = {
1801 0x1f, 0x8b, 0x08, 0x08, 0x5e, 0xd0, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65, 1803/* 0x1f, 0x8b, 0x08, 0x08, 0x5e, 0xd0, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65,
1802 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0xc5, 0x56, 0xcf, 0x6b, 1804 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, */
1805 0xc5, 0x56, 0xcf, 0x6b,
1803 0x13, 0x51, 0x10, 0x9e, 0xec, 0x6e, 0xb2, 0xdb, 0x74, 0xbb, 0x1b, 0x2b, 1806 0x13, 0x51, 0x10, 0x9e, 0xec, 0x6e, 0xb2, 0xdb, 0x74, 0xbb, 0x1b, 0x2b,
1804 0xda, 0xa0, 0xb1, 0x8d, 0x51, 0x6a, 0x7f, 0xa4, 0xb4, 0x11, 0x0f, 0x82, 1807 0xda, 0xa0, 0xb1, 0x8d, 0x51, 0x6a, 0x7f, 0xa4, 0xb4, 0x11, 0x0f, 0x82,
1805 0x42, 0x25, 0x3d, 0x04, 0x54, 0x44, 0x7a, 0x28, 0x22, 0x82, 0x36, 0x8a, 1808 0x42, 0x25, 0x3d, 0x04, 0x54, 0x44, 0x7a, 0x28, 0x22, 0x82, 0x36, 0x8a,
@@ -1877,8 +1880,9 @@ static u8 bnx2_rv2p_proc1[] = {
1877 0x12, 0x3d, 0x80, 0x0b, 0x00, 0x00, 0x00 }; 1880 0x12, 0x3d, 0x80, 0x0b, 0x00, 0x00, 0x00 };
1878 1881
1879static u8 bnx2_rv2p_proc2[] = { 1882static u8 bnx2_rv2p_proc2[] = {
1880 0x1f, 0x8b, 0x08, 0x08, 0x7e, 0xd1, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65, 1883/* 0x1f, 0x8b, 0x08, 0x08, 0x7e, 0xd1, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65,
1881 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0xcd, 0x58, 0x5b, 0x6c, 1884 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, */
1885 0xcd, 0x58, 0x5b, 0x6c,
1882 0x54, 0x55, 0x14, 0x3d, 0xf3, 0xe8, 0xcc, 0x9d, 0xe9, 0xed, 0x9d, 0xf2, 1886 0x54, 0x55, 0x14, 0x3d, 0xf3, 0xe8, 0xcc, 0x9d, 0xe9, 0xed, 0x9d, 0xf2,
1883 0xb2, 0x03, 0xad, 0x08, 0xe5, 0xd1, 0x56, 0x29, 0xe8, 0x54, 0xab, 0x18, 1887 0xb2, 0x03, 0xad, 0x08, 0xe5, 0xd1, 0x56, 0x29, 0xe8, 0x54, 0xab, 0x18,
1884 0x15, 0x2c, 0x5a, 0x8c, 0x26, 0x68, 0xf0, 0xf9, 0x63, 0x14, 0x04, 0xda, 1888 0x15, 0x2c, 0x5a, 0x8c, 0x26, 0x68, 0xf0, 0xf9, 0x63, 0x14, 0x04, 0xda,
@@ -2057,8 +2061,9 @@ static u8 bnx2_rv2p_proc2[] = {
2057 0x17, 0x00, 0x00, 0x00 }; 2061 0x17, 0x00, 0x00, 0x00 };
2058 2062
2059static u8 bnx2_TPAT_b06FwText[] = { 2063static u8 bnx2_TPAT_b06FwText[] = {
2060 0x1f, 0x8b, 0x08, 0x08, 0x47, 0xd2, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65, 2064/* 0x1f, 0x8b, 0x08, 0x08, 0x47, 0xd2, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65,
2061 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0xc5, 0x57, 0x4d, 0x68, 2065 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, */
2066 0xc5, 0x57, 0x4d, 0x68,
2062 0x1c, 0xe7, 0x19, 0x7e, 0xe7, 0x77, 0x47, 0x62, 0x25, 0x8d, 0x93, 0x3d, 2067 0x1c, 0xe7, 0x19, 0x7e, 0xe7, 0x77, 0x47, 0x62, 0x25, 0x8d, 0x93, 0x3d,
2063 0xac, 0x5d, 0xa5, 0x99, 0x91, 0x46, 0x3f, 0x54, 0x26, 0x9e, 0x84, 0xa5, 2068 0xac, 0x5d, 0xa5, 0x99, 0x91, 0x46, 0x3f, 0x54, 0x26, 0x9e, 0x84, 0xa5,
2064 0x56, 0x61, 0x20, 0xe3, 0x99, 0x95, 0x2c, 0x0c, 0x05, 0x07, 0x42, 0x08, 2069 0x56, 0x61, 0x20, 0xe3, 0x99, 0x95, 0x2c, 0x0c, 0x05, 0x07, 0x42, 0x08,
@@ -2290,8 +2295,9 @@ static struct fw_info bnx2_tpat_fw_06 = {
2290}; 2295};
2291 2296
2292static u8 bnx2_TXP_b06FwText[] = { 2297static u8 bnx2_TXP_b06FwText[] = {
2293 0x1f, 0x8b, 0x08, 0x08, 0x21, 0xd3, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65, 2298/* 0x1f, 0x8b, 0x08, 0x08, 0x21, 0xd3, 0x41, 0x44, 0x00, 0x03, 0x74, 0x65,
2294 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, 0xed, 0x5c, 0x6d, 0x6c, 2299 0x73, 0x74, 0x31, 0x2e, 0x62, 0x69, 0x6e, 0x00, */
2300 0xed, 0x5c, 0x6d, 0x6c,
2295 0x1b, 0xf7, 0x79, 0x7f, 0xee, 0x85, 0xd2, 0x51, 0x96, 0xe9, 0x93, 0xc2, 2301 0x1b, 0xf7, 0x79, 0x7f, 0xee, 0x85, 0xd2, 0x51, 0x96, 0xe9, 0x93, 0xc2,
2296 0x78, 0x6c, 0xc0, 0xa6, 0x77, 0xd6, 0x51, 0x66, 0x20, 0xb5, 0xa0, 0x05, 2302 0x78, 0x6c, 0xc0, 0xa6, 0x77, 0xd6, 0x51, 0x66, 0x20, 0xb5, 0xa0, 0x05,
2297 0x36, 0x55, 0x87, 0x43, 0x73, 0x3e, 0x52, 0x2f, 0x4e, 0x5c, 0x57, 0x71, 2303 0x36, 0x55, 0x87, 0x43, 0x73, 0x3e, 0x52, 0x2f, 0x4e, 0x5c, 0x57, 0x71,
diff --git a/drivers/net/bnx2_fw2.h b/drivers/net/bnx2_fw2.h
index 2c067531f031..74f985d8fac7 100644
--- a/drivers/net/bnx2_fw2.h
+++ b/drivers/net/bnx2_fw2.h
@@ -15,7 +15,8 @@
15 */ 15 */
16 16
17static u8 bnx2_COM_b09FwText[] = { 17static u8 bnx2_COM_b09FwText[] = {
18 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, 0xdc, 0x5b, 18/* 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, */
19 0xdc, 0x5b,
19 0x6d, 0x70, 0x5c, 0xd5, 0x79, 0x7e, 0xef, 0xd9, 0xbb, 0xf2, 0x5a, 0x92, 20 0x6d, 0x70, 0x5c, 0xd5, 0x79, 0x7e, 0xef, 0xd9, 0xbb, 0xf2, 0x5a, 0x92,
20 0xe5, 0x6b, 0x79, 0x23, 0x16, 0x4b, 0xc0, 0xae, 0x75, 0x6d, 0x69, 0xb0, 21 0xe5, 0x6b, 0x79, 0x23, 0x16, 0x4b, 0xc0, 0xae, 0x75, 0x6d, 0x69, 0xb0,
21 0x43, 0x16, 0xa1, 0x80, 0x9a, 0xd9, 0xc0, 0xb2, 0x2b, 0x33, 0x9e, 0x0c, 22 0x43, 0x16, 0xa1, 0x80, 0x9a, 0xd9, 0xc0, 0xb2, 0x2b, 0x33, 0x9e, 0x0c,
@@ -1083,7 +1084,8 @@ static struct fw_info bnx2_com_fw_09 = {
1083}; 1084};
1084 1085
1085static u8 bnx2_CP_b09FwText[] = { 1086static u8 bnx2_CP_b09FwText[] = {
1086 0x1f, 0x8b, 0x08, 0x00, 0x0f, 0x34, 0xe7, 0x45, 0x00, 0x03, 0xbd, 0x7d, 1087/* 0x1f, 0x8b, 0x08, 0x00, 0x0f, 0x34, 0xe7, 0x45, 0x00, 0x03, */
1088 0xbd, 0x7d,
1087 0x0d, 0x74, 0x5c, 0x57, 0x7d, 0xe7, 0xff, 0xdd, 0x19, 0x49, 0x63, 0x59, 1089 0x0d, 0x74, 0x5c, 0x57, 0x7d, 0xe7, 0xff, 0xdd, 0x19, 0x49, 0x63, 0x59,
1088 0x96, 0x9f, 0xe5, 0x89, 0x32, 0x51, 0x84, 0x3d, 0x23, 0x3d, 0xd9, 0x22, 1090 0x96, 0x9f, 0xe5, 0x89, 0x32, 0x51, 0x84, 0x3d, 0x23, 0x3d, 0xd9, 0x22,
1089 0x12, 0xe1, 0xc5, 0x11, 0xac, 0xda, 0x2a, 0xe9, 0x30, 0x92, 0x3f, 0x12, 1091 0x12, 0xe1, 0xc5, 0x11, 0xac, 0xda, 0x2a, 0xe9, 0x30, 0x92, 0x3f, 0x12,
@@ -2279,7 +2281,8 @@ static struct fw_info bnx2_cp_fw_09 = {
2279}; 2281};
2280 2282
2281static u8 bnx2_RXP_b09FwText[] = { 2283static u8 bnx2_RXP_b09FwText[] = {
2282 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, 0xec, 0x5c, 2284/* 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, */
2285 0xec, 0x5c,
2283 0x5d, 0x6c, 0x1c, 0xd7, 0x75, 0x3e, 0xf3, 0x43, 0x6a, 0x49, 0xf1, 0x67, 2286 0x5d, 0x6c, 0x1c, 0xd7, 0x75, 0x3e, 0xf3, 0x43, 0x6a, 0x49, 0xf1, 0x67,
2284 0xb8, 0x5c, 0xb1, 0x2b, 0x99, 0x96, 0x77, 0xc9, 0x91, 0xc8, 0x58, 0x8a, 2287 0xb8, 0x5c, 0xb1, 0x2b, 0x99, 0x96, 0x77, 0xc9, 0x91, 0xc8, 0x58, 0x8a,
2285 0x31, 0xa2, 0x09, 0x5b, 0x48, 0x17, 0xf6, 0x76, 0x76, 0x25, 0xb1, 0xb1, 2288 0x31, 0xa2, 0x09, 0x5b, 0x48, 0x17, 0xf6, 0x76, 0x76, 0x25, 0xb1, 0xb1,
@@ -2988,7 +2991,8 @@ static struct fw_info bnx2_rxp_fw_09 = {
2988}; 2991};
2989 2992
2990static u8 bnx2_TPAT_b09FwText[] = { 2993static u8 bnx2_TPAT_b09FwText[] = {
2991 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, 0xcd, 0x58, 2994/* 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, */
2995 0xcd, 0x58,
2992 0x5d, 0x68, 0x1c, 0xd7, 0x15, 0x3e, 0xf3, 0xb7, 0x3b, 0x52, 0x24, 0xeb, 2996 0x5d, 0x68, 0x1c, 0xd7, 0x15, 0x3e, 0xf3, 0xb7, 0x3b, 0x52, 0x24, 0xeb,
2993 0x5a, 0xd9, 0xa6, 0xeb, 0xa0, 0x34, 0x33, 0xda, 0x91, 0xac, 0x22, 0x13, 2997 0x5a, 0xd9, 0xa6, 0xeb, 0xa0, 0x34, 0x33, 0xda, 0x91, 0xac, 0x22, 0x13,
2994 0x4f, 0x9d, 0x25, 0x16, 0x65, 0x21, 0x93, 0xd9, 0x91, 0xac, 0x98, 0x3c, 2998 0x4f, 0x9d, 0x25, 0x16, 0x65, 0x21, 0x93, 0xd9, 0x91, 0xac, 0x98, 0x3c,
@@ -3279,7 +3283,8 @@ static struct fw_info bnx2_tpat_fw_09 = {
3279}; 3283};
3280 3284
3281static u8 bnx2_TXP_b09FwText[] = { 3285static u8 bnx2_TXP_b09FwText[] = {
3282 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, 0xcd, 0x7c, 3286/* 0x1f, 0x8b, 0x08, 0x00, 0x0e, 0x34, 0xe7, 0x45, 0x00, 0x03, */
3287 0xcd, 0x7c,
3283 0x6f, 0x70, 0x5b, 0xd7, 0x95, 0xdf, 0x79, 0xef, 0x81, 0x24, 0x48, 0xd1, 3288 0x6f, 0x70, 0x5b, 0xd7, 0x95, 0xdf, 0x79, 0xef, 0x81, 0x24, 0x48, 0xd1,
3284 0xd4, 0x13, 0x17, 0x56, 0x60, 0x87, 0x71, 0x00, 0xf1, 0x81, 0x66, 0x42, 3289 0xd4, 0x13, 0x17, 0x56, 0x60, 0x87, 0x71, 0x00, 0xf1, 0x81, 0x66, 0x42,
3285 0xae, 0x04, 0x2b, 0x4c, 0xc2, 0x6d, 0xd1, 0xf8, 0x05, 0x00, 0x29, 0x48, 3290 0xae, 0x04, 0x2b, 0x4c, 0xc2, 0x6d, 0xd1, 0xf8, 0x05, 0x00, 0x29, 0x48,