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 /******************************************************************************/
17 #ifdef INCLUDE_TCP_SEG_SUPPORT
18 #include "fw_stkoffld.h"
21 LM_UINT32 LM_GetStkOffLdFirmwareSize(PLM_DEVICE_BLOCK pDevice)
25 if (T3_ASIC_REV(pDevice->ChipRevId) == T3_ASIC_REV_5750)
29 if (T3_ASIC_REV(pDevice->ChipRevId) == T3_ASIC_REV_5705)
31 FwSize = (LM_UINT32)(t3StkOffLd05FwTextLen +
32 t3StkOffLd05FwRodataLen +
33 t3StkOffLd05FwDataLen +
34 t3StkOffLd05FwSbssLen +
35 t3StkOffLd05FwBssLen);
39 FwSize = (LM_UINT32)(t3StkOffLdFwTextLen +
40 t3StkOffLdFwRodataLen +
49 LM_STATUS LM_LoadStkOffLdFirmware(PLM_DEVICE_BLOCK pDevice)
51 T3_FWIMG_INFO FwImgInfo;
54 if (T3_ASIC_IS_575X_PLUS(pDevice->ChipRevId))
56 return LM_STATUS_SUCCESS;
58 if (T3_ASIC_REV(pDevice->ChipRevId) == T3_ASIC_REV_5705)
60 FwImgInfo.StartAddress = t3StkOffLd05FwStartAddr;
61 FwImgInfo.Text.Buffer = (PLM_UINT8)t3StkOffLd05FwText;
62 FwImgInfo.Text.Offset = t3StkOffLd05FwTextAddr;
63 FwImgInfo.Text.Length = t3StkOffLd05FwTextLen;
64 FwImgInfo.ROnlyData.Buffer = (PLM_UINT8)t3StkOffLd05FwRodata;
65 FwImgInfo.ROnlyData.Offset = t3StkOffLd05FwRodataAddr;
66 FwImgInfo.ROnlyData.Length = t3StkOffLd05FwRodataLen;
67 FwImgInfo.Data.Buffer = (PLM_UINT8)t3StkOffLd05FwData;
68 FwImgInfo.Data.Offset = t3StkOffLd05FwDataAddr;
69 FwImgInfo.Data.Length = t3StkOffLd05FwDataLen;
70 FwImgInfo.Sbss.Offset = t3StkOffLd05FwSbssAddr;
71 FwImgInfo.Sbss.Length = t3StkOffLd05FwSbssLen;
72 FwImgInfo.Bss.Offset = t3StkOffLd05FwBssAddr;
73 FwImgInfo.Bss.Length = t3StkOffLd05FwBssLen;
78 FwImgInfo.StartAddress = t3StkOffLdFwStartAddr;
79 FwImgInfo.Text.Buffer = (PLM_UINT8)t3StkOffLdFwText;
80 FwImgInfo.Text.Offset = t3StkOffLdFwTextAddr;
81 FwImgInfo.Text.Length = t3StkOffLdFwTextLen;
82 FwImgInfo.ROnlyData.Buffer = (PLM_UINT8)t3StkOffLdFwRodata;
83 FwImgInfo.ROnlyData.Offset = t3StkOffLdFwRodataAddr;
84 FwImgInfo.ROnlyData.Length = t3StkOffLdFwRodataLen;
85 FwImgInfo.Data.Buffer = (PLM_UINT8)t3StkOffLdFwData;
86 FwImgInfo.Data.Offset = t3StkOffLdFwDataAddr;
87 FwImgInfo.Data.Length = t3StkOffLdFwDataLen;
88 FwImgInfo.Sbss.Offset = t3StkOffLdFwSbssAddr;
89 FwImgInfo.Sbss.Length = t3StkOffLdFwSbssLen;
90 FwImgInfo.Bss.Offset = t3StkOffLdFwBssAddr;
91 FwImgInfo.Bss.Length = t3StkOffLdFwBssLen;
95 if (LM_LoadFirmware(pDevice,
98 Cpu) != LM_STATUS_SUCCESS)
100 return LM_STATUS_FAILURE;
103 return LM_STATUS_SUCCESS;
106 #endif /* INCLUDE_TCP_SEG_SUPPORT */