HOTSTART時に、無線データセグメントが失われていた場合(DSモードからのHWリセットとか。)

一時的なWorkaroundとして、COLDSTART扱いにするように変更。
(RC版ドライバのChip1.1では、Datasegmentがサポートされていないため、常にCOLD扱いになります。)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@915 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
sato_masaki 2008-03-21 04:01:02 +00:00
parent 706b2c4217
commit b7f941d9d9

View File

@ -342,6 +342,7 @@ void PrintDigest(u8 *digest)
BOOL InstallWlanFirmware(void) BOOL InstallWlanFirmware(void)
{ {
NWMRetCode err; NWMRetCode err;
BOOL isColdStart;
pNwmBuf = 0; pNwmBuf = 0;
pFwBuffer = 0; pFwBuffer = 0;
@ -349,7 +350,28 @@ BOOL InstallWlanFirmware(void)
OS_InitMessageQueue(&mesq, mesAry, sizeof(mesAry)/sizeof(mesAry[0])); OS_InitMessageQueue(&mesq, mesAry, sizeof(mesAry)/sizeof(mesAry[0]));
/* HotStart/ColdStart̃`ƒFƒbƒN */ /* HotStart/ColdStart̃`ƒFƒbƒN */
/*
[TODO:] DSモードからHWリセットされた場合DataSegmentは
DataSegmentをセットし直すために
NANDからのFW読み直しを行わなければならない
TemporallyなWorkaroundとしてColdStart扱いにしています
*/
if (TRUE == SYSMi_GetWork()->flags.common.isHotStart) if (TRUE == SYSMi_GetWork()->flags.common.isHotStart)
{
isColdStart = FALSE;
// Check integrity of WLAN data segment
if (FALSE == NWMi_CheckFwDataIntegrity())
{
isColdStart = TRUE;
}
} else {
isColdStart = TRUE;
}
if (FALSE == isColdStart) // HOT START
{ {
pNwmBuf = SYSM_Alloc( NWM_SYSTEM_BUF_SIZE ); pNwmBuf = SYSM_Alloc( NWM_SYSTEM_BUF_SIZE );
if (!pNwmBuf) { if (!pNwmBuf) {
@ -364,7 +386,7 @@ BOOL InstallWlanFirmware(void)
// HotStart // HotStart
NWM_Init(pNwmBuf, NWM_SYSTEM_BUF_SIZE, 3); /* 3 -> DMA no. */ NWM_Init(pNwmBuf, NWM_SYSTEM_BUF_SIZE, 3); /* 3 -> DMA no. */
err = NWMi_InstallFirmware(InstallFirmCallback, NULL, 0, FALSE); err = NWMi_InstallFirmware(InstallFirmCallback, NULL, 0, FALSE);
} else { } else { // COLD START
s32 flen = 0; s32 flen = 0;
char path[256]; char path[256];
u32 offset, length; u32 offset, length;