diff options
author | Michael Chan <mchan@broadcom.com> | 2007-10-02 19:27:35 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:54:07 -0400 |
commit | ea1f8d5c3a593a791463c2efc07e5dfebd056500 (patch) | |
tree | e25bb6cffff8637b19c73f6ca68eeb901a2473a3 /drivers/net/bnx2_fw2.h | |
parent | dad8c737962669240470923f951570ed716da1a1 (diff) |
[BNX2]: Optimize firmware loading.
This is a follow up to the patches from Denys Vlasenkos
<vda.linux@googlemail.com> to further optimize firmware loading.
1. In bnx2_init_cpus(), we allocate memory for decompression once
and use it repeatedly instead of doing this for every firmware image.
2. We eliminate the BSS and SBSS firmware sections in bnx2_fw*.h since
these are always zeros.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2_fw2.h')
-rw-r--r-- | drivers/net/bnx2_fw2.h | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/net/bnx2_fw2.h b/drivers/net/bnx2_fw2.h index 74f985d8fac7..5bd52bead9bf 100644 --- a/drivers/net/bnx2_fw2.h +++ b/drivers/net/bnx2_fw2.h | |||
@@ -1046,8 +1046,6 @@ static const u32 bnx2_COM_b09FwRodata[(0x88/4) + 1] = { | |||
1046 | 0x08002b3c, 0x08002b6c, 0x08002b9c, 0x00000000, 0x0800604c, 0x0800604c, | 1046 | 0x08002b3c, 0x08002b6c, 0x08002b9c, 0x00000000, 0x0800604c, 0x0800604c, |
1047 | 0x0800604c, 0x0800604c, 0x0800604c, 0x08006078, 0x08006078, 0x080060b8, | 1047 | 0x0800604c, 0x0800604c, 0x0800604c, 0x08006078, 0x08006078, 0x080060b8, |
1048 | 0x080060c4, 0x080060c4, 0x0800604c, 0x00000000, 0x00000000 }; | 1048 | 0x080060c4, 0x080060c4, 0x0800604c, 0x00000000, 0x00000000 }; |
1049 | static const u32 bnx2_COM_b09FwBss[(0x88/4) + 1] = { 0x0 }; | ||
1050 | static const u32 bnx2_COM_b09FwSbss[(0x60/4) + 1] = { 0x0 }; | ||
1051 | 1049 | ||
1052 | static struct fw_info bnx2_com_fw_09 = { | 1050 | static struct fw_info bnx2_com_fw_09 = { |
1053 | .ver_major = 0x3, | 1051 | .ver_major = 0x3, |
@@ -1070,12 +1068,10 @@ static struct fw_info bnx2_com_fw_09 = { | |||
1070 | .sbss_addr = 0x08007e60, | 1068 | .sbss_addr = 0x08007e60, |
1071 | .sbss_len = 0x60, | 1069 | .sbss_len = 0x60, |
1072 | .sbss_index = 0x0, | 1070 | .sbss_index = 0x0, |
1073 | .sbss = bnx2_COM_b09FwSbss, | ||
1074 | 1071 | ||
1075 | .bss_addr = 0x08007ec0, | 1072 | .bss_addr = 0x08007ec0, |
1076 | .bss_len = 0x88, | 1073 | .bss_len = 0x88, |
1077 | .bss_index = 0x0, | 1074 | .bss_index = 0x0, |
1078 | .bss = bnx2_COM_b09FwBss, | ||
1079 | 1075 | ||
1080 | .rodata_addr = 0x08007dc0, | 1076 | .rodata_addr = 0x08007dc0, |
1081 | .rodata_len = 0x88, | 1077 | .rodata_len = 0x88, |
@@ -2243,8 +2239,6 @@ static const u32 bnx2_CP_b09FwRodata[(0x118/4) + 1] = { | |||
2243 | 0x080032e8, 0x08003300, 0x08003320, 0x08003358, 0x08003338, 0x08003338, | 2239 | 0x080032e8, 0x08003300, 0x08003320, 0x08003358, 0x08003338, 0x08003338, |
2244 | 0x080050d4, 0x080050d4, 0x080050d4, 0x080050d4, 0x080050d4, 0x080050fc, | 2240 | 0x080050d4, 0x080050d4, 0x080050d4, 0x080050d4, 0x080050d4, 0x080050fc, |
2245 | 0x080050fc, 0x08005124, 0x08005174, 0x08005144, 0x00000000 }; | 2241 | 0x080050fc, 0x08005124, 0x08005174, 0x08005144, 0x00000000 }; |
2246 | static const u32 bnx2_CP_b09FwBss[(0x3b0/4) + 1] = { 0x0 }; | ||
2247 | static const u32 bnx2_CP_b09FwSbss[(0xa1/4) + 1] = { 0x0 }; | ||
2248 | 2242 | ||
2249 | static struct fw_info bnx2_cp_fw_09 = { | 2243 | static struct fw_info bnx2_cp_fw_09 = { |
2250 | .ver_major = 0x3, | 2244 | .ver_major = 0x3, |
@@ -2267,12 +2261,10 @@ static struct fw_info bnx2_cp_fw_09 = { | |||
2267 | .sbss_addr = 0x08007024, | 2261 | .sbss_addr = 0x08007024, |
2268 | .sbss_len = 0xa1, | 2262 | .sbss_len = 0xa1, |
2269 | .sbss_index = 0x0, | 2263 | .sbss_index = 0x0, |
2270 | .sbss = bnx2_CP_b09FwSbss, | ||
2271 | 2264 | ||
2272 | .bss_addr = 0x080070d0, | 2265 | .bss_addr = 0x080070d0, |
2273 | .bss_len = 0x3b0, | 2266 | .bss_len = 0x3b0, |
2274 | .bss_index = 0x0, | 2267 | .bss_index = 0x0, |
2275 | .bss = bnx2_CP_b09FwBss, | ||
2276 | 2268 | ||
2277 | .rodata_addr = 0x08006ee8, | 2269 | .rodata_addr = 0x08006ee8, |
2278 | .rodata_len = 0x118, | 2270 | .rodata_len = 0x118, |
@@ -2953,8 +2945,6 @@ static const u32 bnx2_RXP_b09FwRodata[(0x278/4) + 1] = { | |||
2953 | 0x08006058, 0x08006070, 0x08006070, 0x08006070, 0x08006058, 0x08006070, | 2945 | 0x08006058, 0x08006070, 0x08006070, 0x08006070, 0x08006058, 0x08006070, |
2954 | 0x08006070, 0x08006070, 0x08006058, 0x08006070, 0x08006070, 0x08006070, | 2946 | 0x08006070, 0x08006070, 0x08006058, 0x08006070, 0x08006070, 0x08006070, |
2955 | 0x08006064, 0x00000000, 0x00000000 }; | 2947 | 0x08006064, 0x00000000, 0x00000000 }; |
2956 | static const u32 bnx2_RXP_b09FwBss[(0x13dc/4) + 1] = { 0x0 }; | ||
2957 | static const u32 bnx2_RXP_b09FwSbss[(0x20/4) + 1] = { 0x0 }; | ||
2958 | 2948 | ||
2959 | static struct fw_info bnx2_rxp_fw_09 = { | 2949 | static struct fw_info bnx2_rxp_fw_09 = { |
2960 | .ver_major = 0x3, | 2950 | .ver_major = 0x3, |
@@ -2977,12 +2967,10 @@ static struct fw_info bnx2_rxp_fw_09 = { | |||
2977 | .sbss_addr = 0x08006a00, | 2967 | .sbss_addr = 0x08006a00, |
2978 | .sbss_len = 0x20, | 2968 | .sbss_len = 0x20, |
2979 | .sbss_index = 0x0, | 2969 | .sbss_index = 0x0, |
2980 | .sbss = bnx2_RXP_b09FwSbss, | ||
2981 | 2970 | ||
2982 | .bss_addr = 0x08006a20, | 2971 | .bss_addr = 0x08006a20, |
2983 | .bss_len = 0x13dc, | 2972 | .bss_len = 0x13dc, |
2984 | .bss_index = 0x0, | 2973 | .bss_index = 0x0, |
2985 | .bss = bnx2_RXP_b09FwBss, | ||
2986 | 2974 | ||
2987 | .rodata_addr = 0x08006768, | 2975 | .rodata_addr = 0x08006768, |
2988 | .rodata_len = 0x278, | 2976 | .rodata_len = 0x278, |
@@ -3245,8 +3233,6 @@ static u8 bnx2_TPAT_b09FwText[] = { | |||
3245 | 3233 | ||
3246 | static const u32 bnx2_TPAT_b09FwData[(0x0/4) + 1] = { 0x0 }; | 3234 | static const u32 bnx2_TPAT_b09FwData[(0x0/4) + 1] = { 0x0 }; |
3247 | static const u32 bnx2_TPAT_b09FwRodata[(0x0/4) + 1] = { 0x0 }; | 3235 | static const u32 bnx2_TPAT_b09FwRodata[(0x0/4) + 1] = { 0x0 }; |
3248 | static const u32 bnx2_TPAT_b09FwBss[(0x850/4) + 1] = { 0x0 }; | ||
3249 | static const u32 bnx2_TPAT_b09FwSbss[(0x2c/4) + 1] = { 0x0 }; | ||
3250 | 3236 | ||
3251 | static struct fw_info bnx2_tpat_fw_09 = { | 3237 | static struct fw_info bnx2_tpat_fw_09 = { |
3252 | .ver_major = 0x3, | 3238 | .ver_major = 0x3, |
@@ -3269,12 +3255,10 @@ static struct fw_info bnx2_tpat_fw_09 = { | |||
3269 | .sbss_addr = 0x08002088, | 3255 | .sbss_addr = 0x08002088, |
3270 | .sbss_len = 0x2c, | 3256 | .sbss_len = 0x2c, |
3271 | .sbss_index = 0x0, | 3257 | .sbss_index = 0x0, |
3272 | .sbss = bnx2_TPAT_b09FwSbss, | ||
3273 | 3258 | ||
3274 | .bss_addr = 0x080020c0, | 3259 | .bss_addr = 0x080020c0, |
3275 | .bss_len = 0x850, | 3260 | .bss_len = 0x850, |
3276 | .bss_index = 0x0, | 3261 | .bss_index = 0x0, |
3277 | .bss = bnx2_TPAT_b09FwBss, | ||
3278 | 3262 | ||
3279 | .rodata_addr = 0x00000000, | 3263 | .rodata_addr = 0x00000000, |
3280 | .rodata_len = 0x0, | 3264 | .rodata_len = 0x0, |
@@ -4060,8 +4044,6 @@ static const u32 bnx2_TXP_b09FwRodata[(0x30/4) + 1] = { | |||
4060 | 0x08004060, 0x0800408c, 0x080040d4, 0x080040d4, 0x08003f60, 0x08003f8c, | 4044 | 0x08004060, 0x0800408c, 0x080040d4, 0x080040d4, 0x08003f60, 0x08003f8c, |
4061 | 0x08003f8c, 0x080040d4, 0x080040d4, 0x080040d4, 0x08003ff4, 0x00000000, | 4045 | 0x08003f8c, 0x080040d4, 0x080040d4, 0x080040d4, 0x08003ff4, 0x00000000, |
4062 | 0x00000000 }; | 4046 | 0x00000000 }; |
4063 | static const u32 bnx2_TXP_b09FwBss[(0xa20/4) + 1] = { 0x0 }; | ||
4064 | static const u32 bnx2_TXP_b09FwSbss[(0x8c/4) + 1] = { 0x0 }; | ||
4065 | 4047 | ||
4066 | static struct fw_info bnx2_txp_fw_09 = { | 4048 | static struct fw_info bnx2_txp_fw_09 = { |
4067 | .ver_major = 0x3, | 4049 | .ver_major = 0x3, |
@@ -4084,12 +4066,10 @@ static struct fw_info bnx2_txp_fw_09 = { | |||
4084 | .sbss_addr = 0x08004750, | 4066 | .sbss_addr = 0x08004750, |
4085 | .sbss_len = 0x8c, | 4067 | .sbss_len = 0x8c, |
4086 | .sbss_index = 0x0, | 4068 | .sbss_index = 0x0, |
4087 | .sbss = bnx2_TXP_b09FwSbss, | ||
4088 | 4069 | ||
4089 | .bss_addr = 0x080047e0, | 4070 | .bss_addr = 0x080047e0, |
4090 | .bss_len = 0xa20, | 4071 | .bss_len = 0xa20, |
4091 | .bss_index = 0x0, | 4072 | .bss_index = 0x0, |
4092 | .bss = bnx2_TXP_b09FwBss, | ||
4093 | 4073 | ||
4094 | .rodata_addr = 0x08004638, | 4074 | .rodata_addr = 0x08004638, |
4095 | .rodata_len = 0x30, | 4075 | .rodata_len = 0x30, |