1 /******************************************************************************/
3 /* Broadcom BCM5700 Linux Network Driver, Copyright (c) 2002 - 2004 Broadcom */
5 /* All rights reserved. */
7 /* This program is free software; you can redistribute it and/or modify */
8 /* it under the terms of the GNU General Public License as published by */
9 /* the Free Software Foundation, located in the file LICENSE. */
13 /******************************************************************************/
15 #include <bcm57xx_cfg.h>
18 #ifdef INCLUDE_TCP_SEG_SUPPORT
19 #include "fw_stkoffld.h"
22 LM_UINT32
LM_GetStkOffLdFirmwareSize(PLM_DEVICE_BLOCK pDevice
)
26 if (T3_ASIC_REV(pDevice
->ChipRevId
) == T3_ASIC_REV_5750
)
30 if (T3_ASIC_REV(pDevice
->ChipRevId
) == T3_ASIC_REV_5705
)
32 FwSize
= (LM_UINT32
)(t3StkOffLd05FwTextLen
+
33 t3StkOffLd05FwRodataLen
+
34 t3StkOffLd05FwDataLen
+
35 t3StkOffLd05FwSbssLen
+
36 t3StkOffLd05FwBssLen
);
40 FwSize
= (LM_UINT32
)(t3StkOffLdFwTextLen
+
41 t3StkOffLdFwRodataLen
+
50 LM_STATUS
LM_LoadStkOffLdFirmware(PLM_DEVICE_BLOCK pDevice
)
52 T3_FWIMG_INFO FwImgInfo
;
55 if (T3_ASIC_IS_575X_PLUS(pDevice
->ChipRevId
))
57 return LM_STATUS_SUCCESS
;
59 if (T3_ASIC_REV(pDevice
->ChipRevId
) == T3_ASIC_REV_5705
)
61 FwImgInfo
.StartAddress
= t3StkOffLd05FwStartAddr
;
62 FwImgInfo
.Text
.Buffer
= (PLM_UINT8
)t3StkOffLd05FwText
;
63 FwImgInfo
.Text
.Offset
= t3StkOffLd05FwTextAddr
;
64 FwImgInfo
.Text
.Length
= t3StkOffLd05FwTextLen
;
65 FwImgInfo
.ROnlyData
.Buffer
= (PLM_UINT8
)t3StkOffLd05FwRodata
;
66 FwImgInfo
.ROnlyData
.Offset
= t3StkOffLd05FwRodataAddr
;
67 FwImgInfo
.ROnlyData
.Length
= t3StkOffLd05FwRodataLen
;
68 FwImgInfo
.Data
.Buffer
= (PLM_UINT8
)t3StkOffLd05FwData
;
69 FwImgInfo
.Data
.Offset
= t3StkOffLd05FwDataAddr
;
70 FwImgInfo
.Data
.Length
= t3StkOffLd05FwDataLen
;
71 FwImgInfo
.Sbss
.Offset
= t3StkOffLd05FwSbssAddr
;
72 FwImgInfo
.Sbss
.Length
= t3StkOffLd05FwSbssLen
;
73 FwImgInfo
.Bss
.Offset
= t3StkOffLd05FwBssAddr
;
74 FwImgInfo
.Bss
.Length
= t3StkOffLd05FwBssLen
;
79 FwImgInfo
.StartAddress
= t3StkOffLdFwStartAddr
;
80 FwImgInfo
.Text
.Buffer
= (PLM_UINT8
)t3StkOffLdFwText
;
81 FwImgInfo
.Text
.Offset
= t3StkOffLdFwTextAddr
;
82 FwImgInfo
.Text
.Length
= t3StkOffLdFwTextLen
;
83 FwImgInfo
.ROnlyData
.Buffer
= (PLM_UINT8
)t3StkOffLdFwRodata
;
84 FwImgInfo
.ROnlyData
.Offset
= t3StkOffLdFwRodataAddr
;
85 FwImgInfo
.ROnlyData
.Length
= t3StkOffLdFwRodataLen
;
86 FwImgInfo
.Data
.Buffer
= (PLM_UINT8
)t3StkOffLdFwData
;
87 FwImgInfo
.Data
.Offset
= t3StkOffLdFwDataAddr
;
88 FwImgInfo
.Data
.Length
= t3StkOffLdFwDataLen
;
89 FwImgInfo
.Sbss
.Offset
= t3StkOffLdFwSbssAddr
;
90 FwImgInfo
.Sbss
.Length
= t3StkOffLdFwSbssLen
;
91 FwImgInfo
.Bss
.Offset
= t3StkOffLdFwBssAddr
;
92 FwImgInfo
.Bss
.Length
= t3StkOffLdFwBssLen
;
96 if (LM_LoadFirmware(pDevice
,
99 Cpu
) != LM_STATUS_SUCCESS
)
101 return LM_STATUS_FAILURE
;
104 return LM_STATUS_SUCCESS
;
107 #endif /* INCLUDE_TCP_SEG_SUPPORT */