|
@@ -26,6 +26,7 @@
|
|
* MA 02111-1307 USA
|
|
* MA 02111-1307 USA
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
+#include <asm/io.h>
|
|
#include "flash-defines.h"
|
|
#include "flash-defines.h"
|
|
|
|
|
|
void flash_reset(void)
|
|
void flash_reset(void)
|
|
@@ -33,14 +34,13 @@ void flash_reset(void)
|
|
reset_flash();
|
|
reset_flash();
|
|
}
|
|
}
|
|
|
|
|
|
-unsigned long flash_get_size(ulong baseaddr, flash_info_t * info,
|
|
|
|
- int bank_flag)
|
|
|
|
|
|
+unsigned long flash_get_size(ulong baseaddr, flash_info_t * info, int bank_flag)
|
|
{
|
|
{
|
|
int id = 0, i = 0;
|
|
int id = 0, i = 0;
|
|
static int FlagDev = 1;
|
|
static int FlagDev = 1;
|
|
|
|
|
|
id = get_codes();
|
|
id = get_codes();
|
|
- if(FlagDev) {
|
|
|
|
|
|
+ if (FlagDev) {
|
|
#ifdef DEBUG
|
|
#ifdef DEBUG
|
|
printf("Device ID of the Flash is %x\n", id);
|
|
printf("Device ID of the Flash is %x\n", id);
|
|
#endif
|
|
#endif
|
|
@@ -100,10 +100,11 @@ unsigned long flash_init(void)
|
|
|
|
|
|
if (flash_info[0].flash_id == FLASH_UNKNOWN || size_b0 == 0) {
|
|
if (flash_info[0].flash_id == FLASH_UNKNOWN || size_b0 == 0) {
|
|
printf("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
|
|
printf("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
|
|
- size_b0, size_b0 >> 20);
|
|
|
|
|
|
+ size_b0, size_b0 >> 20);
|
|
}
|
|
}
|
|
|
|
|
|
- (void)flash_protect(FLAG_PROTECT_SET,CFG_FLASH0_BASE,(flash_info[0].start[2] - 1),&flash_info[0]);
|
|
|
|
|
|
+ (void)flash_protect(FLAG_PROTECT_SET, CFG_FLASH0_BASE,
|
|
|
|
+ (flash_info[0].start[2] - 1), &flash_info[0]);
|
|
|
|
|
|
return (size_b0 + size_b1 + size_b2);
|
|
return (size_b0 + size_b1 + size_b2);
|
|
}
|
|
}
|
|
@@ -122,15 +123,14 @@ void flash_print_info(flash_info_t * info)
|
|
printf("ST Microelectronics ");
|
|
printf("ST Microelectronics ");
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
- printf("Unknown Vendor ");
|
|
|
|
|
|
+ printf("Unknown Vendor: (0x%08X) ", info->flash_id);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
for (i = 0; i < info->sector_count; ++i) {
|
|
for (i = 0; i < info->sector_count; ++i) {
|
|
if ((i % 5) == 0)
|
|
if ((i % 5) == 0)
|
|
printf("\n ");
|
|
printf("\n ");
|
|
printf(" %08lX%s",
|
|
printf(" %08lX%s",
|
|
- info->start[i],
|
|
|
|
- info->protect[i] ? " (RO)" : " ");
|
|
|
|
|
|
+ info->start[i], info->protect[i] ? " (RO)" : " ");
|
|
}
|
|
}
|
|
printf("\n");
|
|
printf("\n");
|
|
return;
|
|
return;
|
|
@@ -138,8 +138,8 @@ void flash_print_info(flash_info_t * info)
|
|
|
|
|
|
int flash_erase(flash_info_t * info, int s_first, int s_last)
|
|
int flash_erase(flash_info_t * info, int s_first, int s_last)
|
|
{
|
|
{
|
|
- int cnt = 0,i;
|
|
|
|
- int prot,sect;
|
|
|
|
|
|
+ int cnt = 0, i;
|
|
|
|
+ int prot, sect;
|
|
|
|
|
|
prot = 0;
|
|
prot = 0;
|
|
for (sect = s_first; sect <= s_last; ++sect) {
|
|
for (sect = s_first; sect <= s_last; ++sect) {
|
|
@@ -148,15 +148,16 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
|
|
}
|
|
}
|
|
|
|
|
|
if (prot)
|
|
if (prot)
|
|
- printf ("- Warning: %d protected sectors will not be erased!\n", prot);
|
|
|
|
|
|
+ printf("- Warning: %d protected sectors will not be erased!\n",
|
|
|
|
+ prot);
|
|
else
|
|
else
|
|
- printf ("\n");
|
|
|
|
|
|
+ printf("\n");
|
|
|
|
|
|
cnt = s_last - s_first + 1;
|
|
cnt = s_last - s_first + 1;
|
|
|
|
|
|
if (cnt == FLASH_TOT_SECT) {
|
|
if (cnt == FLASH_TOT_SECT) {
|
|
printf("Erasing flash, Please Wait \n");
|
|
printf("Erasing flash, Please Wait \n");
|
|
- if(erase_flash() < 0) {
|
|
|
|
|
|
+ if (erase_flash() < 0) {
|
|
printf("Erasing flash failed \n");
|
|
printf("Erasing flash failed \n");
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
@@ -164,7 +165,7 @@ int flash_erase(flash_info_t * info, int s_first, int s_last)
|
|
printf("Erasing Flash locations, Please Wait\n");
|
|
printf("Erasing Flash locations, Please Wait\n");
|
|
for (i = s_first; i <= s_last; i++) {
|
|
for (i = s_first; i <= s_last; i++) {
|
|
if (info->protect[i] == 0) { /* not protected */
|
|
if (info->protect[i] == 0) { /* not protected */
|
|
- if(erase_block_flash(i, info->start[i]) < 0) {
|
|
|
|
|
|
+ if (erase_block_flash(i, info->start[i]) < 0) {
|
|
printf("Error Sector erasing \n");
|
|
printf("Error Sector erasing \n");
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
@@ -178,13 +179,12 @@ int write_buff(flash_info_t * info, uchar * src, ulong addr, ulong cnt)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
- ret = write_data(addr, cnt, 1, (int *) src);
|
|
|
|
- if(ret == FLASH_FAIL)
|
|
|
|
|
|
+ ret = write_data(addr, cnt, 1, (int *)src);
|
|
|
|
+ if (ret == FLASH_FAIL)
|
|
return ERR_NOT_ERASED;
|
|
return ERR_NOT_ERASED;
|
|
return FLASH_SUCCESS;
|
|
return FLASH_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
int write_data(long lStart, long lCount, long lStride, int *pnData)
|
|
int write_data(long lStart, long lCount, long lStride, int *pnData)
|
|
{
|
|
{
|
|
long i = 0;
|
|
long i = 0;
|
|
@@ -198,20 +198,23 @@ int write_data(long lStart, long lCount, long lStride, int *pnData)
|
|
|
|
|
|
for (i = 0; (i < lCount / 4) && (i < BUFFER_SIZE); i++) {
|
|
for (i = 0; (i < lCount / 4) && (i < BUFFER_SIZE); i++) {
|
|
for (iShift = 0, j = 0; (j < iNumWords);
|
|
for (iShift = 0, j = 0; (j < iNumWords);
|
|
- j++, ulOffset += (lStride * 2)) {
|
|
|
|
|
|
+ j++, ulOffset += (lStride * 2)) {
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
- && (ulOffset < INVALIDLOCNEND)) {
|
|
|
|
- printf("Invalid locations, Try writing to another location \n");
|
|
|
|
|
|
+ && (ulOffset < INVALIDLOCNEND)) {
|
|
|
|
+ printf
|
|
|
|
+ ("Invalid locations, Try writing to another location \n");
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
get_sector_number(ulOffset, &nSector);
|
|
get_sector_number(ulOffset, &nSector);
|
|
- read_flash(ulOffset,&d);
|
|
|
|
- if(d != 0xffff) {
|
|
|
|
- printf("Flash not erased at offset 0x%x Please erase to reprogram \n",ulOffset);
|
|
|
|
|
|
+ read_flash(ulOffset, &d);
|
|
|
|
+ if (d != 0xffff) {
|
|
|
|
+ printf
|
|
|
|
+ ("Flash not erased at offset 0x%x Please erase to reprogram \n",
|
|
|
|
+ ulOffset);
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
unlock_flash(ulOffset);
|
|
unlock_flash(ulOffset);
|
|
- if(write_flash(ulOffset, (pnData[i] >> iShift)) < 0) {
|
|
|
|
|
|
+ if (write_flash(ulOffset, (pnData[i] >> iShift)) < 0) {
|
|
printf("Error programming the flash \n");
|
|
printf("Error programming the flash \n");
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
@@ -220,17 +223,18 @@ int write_data(long lStart, long lCount, long lStride, int *pnData)
|
|
}
|
|
}
|
|
if (nLeftover > 0) {
|
|
if (nLeftover > 0) {
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
- && (ulOffset < INVALIDLOCNEND))
|
|
|
|
- return FLASH_FAIL;
|
|
|
|
|
|
+ && (ulOffset < INVALIDLOCNEND))
|
|
|
|
+ return FLASH_FAIL;
|
|
get_sector_number(ulOffset, &nSector);
|
|
get_sector_number(ulOffset, &nSector);
|
|
- read_flash(ulOffset,&d);
|
|
|
|
- if(d != 0xffff) {
|
|
|
|
- printf("Flash already programmed. Please erase to reprogram \n");
|
|
|
|
- printf("uloffset = 0x%x \t d = 0x%x\n",ulOffset,d);
|
|
|
|
|
|
+ read_flash(ulOffset, &d);
|
|
|
|
+ if (d != 0xffff) {
|
|
|
|
+ printf
|
|
|
|
+ ("Flash already programmed. Please erase to reprogram \n");
|
|
|
|
+ printf("uloffset = 0x%x \t d = 0x%x\n", ulOffset, d);
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
unlock_flash(ulOffset);
|
|
unlock_flash(ulOffset);
|
|
- if(write_flash(ulOffset, pnData[i]) < 0) {
|
|
|
|
|
|
+ if (write_flash(ulOffset, pnData[i]) < 0) {
|
|
printf("Error programming the flash \n");
|
|
printf("Error programming the flash \n");
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
}
|
|
}
|
|
@@ -252,8 +256,8 @@ int read_data(long ulStart, long lCount, long lStride, int *pnData)
|
|
for (i = 0; (i < lCount / 4) && (i < BUFFER_SIZE); i++) {
|
|
for (i = 0; (i < lCount / 4) && (i < BUFFER_SIZE); i++) {
|
|
for (iShift = 0, j = 0; j < iNumWords; j += 2) {
|
|
for (iShift = 0, j = 0; j < iNumWords; j += 2) {
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
- && (ulOffset < INVALIDLOCNEND))
|
|
|
|
- return FLASH_FAIL;
|
|
|
|
|
|
+ && (ulOffset < INVALIDLOCNEND))
|
|
|
|
+ return FLASH_FAIL;
|
|
|
|
|
|
get_sector_number(ulOffset, &nSector);
|
|
get_sector_number(ulOffset, &nSector);
|
|
read_flash(ulOffset, &nLow);
|
|
read_flash(ulOffset, &nLow);
|
|
@@ -265,8 +269,8 @@ int read_data(long ulStart, long lCount, long lStride, int *pnData)
|
|
}
|
|
}
|
|
if (nLeftover > 0) {
|
|
if (nLeftover > 0) {
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
if ((ulOffset >= INVALIDLOCNSTART)
|
|
- && (ulOffset < INVALIDLOCNEND))
|
|
|
|
- return FLASH_FAIL;
|
|
|
|
|
|
+ && (ulOffset < INVALIDLOCNEND))
|
|
|
|
+ return FLASH_FAIL;
|
|
|
|
|
|
get_sector_number(ulOffset, &nSector);
|
|
get_sector_number(ulOffset, &nSector);
|
|
read_flash(ulOffset, &pnData[i]);
|
|
read_flash(ulOffset, &pnData[i]);
|
|
@@ -279,10 +283,10 @@ int write_flash(long nOffset, int nValue)
|
|
long addr;
|
|
long addr;
|
|
|
|
|
|
addr = (CFG_FLASH_BASE + nOffset);
|
|
addr = (CFG_FLASH_BASE + nOffset);
|
|
- asm("ssync;");
|
|
|
|
- *(unsigned volatile short *) addr = nValue;
|
|
|
|
- asm("ssync;");
|
|
|
|
- if(poll_toggle_bit(nOffset) < 0)
|
|
|
|
|
|
+ sync();
|
|
|
|
+ *(unsigned volatile short *)addr = nValue;
|
|
|
|
+ sync();
|
|
|
|
+ if (poll_toggle_bit(nOffset) < 0)
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
return FLASH_SUCCESS;
|
|
return FLASH_SUCCESS;
|
|
}
|
|
}
|
|
@@ -294,29 +298,30 @@ int read_flash(long nOffset, int *pnValue)
|
|
|
|
|
|
if (nOffset != 0x2)
|
|
if (nOffset != 0x2)
|
|
reset_flash();
|
|
reset_flash();
|
|
- asm("ssync;");
|
|
|
|
- nValue = *(volatile unsigned short *) addr;
|
|
|
|
- asm("ssync;");
|
|
|
|
|
|
+ sync();
|
|
|
|
+ nValue = *(volatile unsigned short *)addr;
|
|
|
|
+ sync();
|
|
*pnValue = nValue;
|
|
*pnValue = nValue;
|
|
return TRUE;
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
|
|
int poll_toggle_bit(long lOffset)
|
|
int poll_toggle_bit(long lOffset)
|
|
{
|
|
{
|
|
- unsigned int u1,u2;
|
|
|
|
|
|
+ unsigned int u1, u2;
|
|
unsigned long timeout = 0xFFFFFFFF;
|
|
unsigned long timeout = 0xFFFFFFFF;
|
|
- volatile unsigned long *FB = (volatile unsigned long *)(0x20000000 + lOffset);
|
|
|
|
- while(1) {
|
|
|
|
- if(timeout < 0)
|
|
|
|
|
|
+ volatile unsigned long *FB =
|
|
|
|
+ (volatile unsigned long *)(0x20000000 + lOffset);
|
|
|
|
+ while (1) {
|
|
|
|
+ if (timeout < 0)
|
|
break;
|
|
break;
|
|
u1 = *(volatile unsigned short *)FB;
|
|
u1 = *(volatile unsigned short *)FB;
|
|
u2 = *(volatile unsigned short *)FB;
|
|
u2 = *(volatile unsigned short *)FB;
|
|
- if((u1 & 0x0040) == (u2 & 0x0040))
|
|
|
|
|
|
+ if ((u1 & 0x0040) == (u2 & 0x0040))
|
|
return FLASH_SUCCESS;
|
|
return FLASH_SUCCESS;
|
|
- if((u2 & 0x0020) == 0x0000)
|
|
|
|
|
|
+ if ((u2 & 0x0020) == 0x0000)
|
|
continue;
|
|
continue;
|
|
u1 = *(volatile unsigned short *)FB;
|
|
u1 = *(volatile unsigned short *)FB;
|
|
- if((u2 & 0x0040) == (u1 & 0x0040))
|
|
|
|
|
|
+ if ((u2 & 0x0040) == (u1 & 0x0040))
|
|
return FLASH_SUCCESS;
|
|
return FLASH_SUCCESS;
|
|
else {
|
|
else {
|
|
reset_flash();
|
|
reset_flash();
|
|
@@ -325,7 +330,8 @@ int poll_toggle_bit(long lOffset)
|
|
timeout--;
|
|
timeout--;
|
|
}
|
|
}
|
|
printf("Time out occured \n");
|
|
printf("Time out occured \n");
|
|
- if(timeout <0) return FLASH_FAIL;
|
|
|
|
|
|
+ if (timeout < 0)
|
|
|
|
+ return FLASH_FAIL;
|
|
}
|
|
}
|
|
|
|
|
|
void reset_flash(void)
|
|
void reset_flash(void)
|
|
@@ -344,7 +350,7 @@ int erase_flash(void)
|
|
write_flash(WRITESEQ5, WRITEDATA5);
|
|
write_flash(WRITESEQ5, WRITEDATA5);
|
|
write_flash(WRITESEQ6, WRITEDATA6);
|
|
write_flash(WRITESEQ6, WRITEDATA6);
|
|
|
|
|
|
- if(poll_toggle_bit(0x0000) < 0)
|
|
|
|
|
|
+ if (poll_toggle_bit(0x0000) < 0)
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
|
|
|
|
write_flash(SecFlashAOff + WRITESEQ1, WRITEDATA1);
|
|
write_flash(SecFlashAOff + WRITESEQ1, WRITEDATA1);
|
|
@@ -354,7 +360,7 @@ int erase_flash(void)
|
|
write_flash(SecFlashAOff + WRITESEQ5, WRITEDATA5);
|
|
write_flash(SecFlashAOff + WRITESEQ5, WRITEDATA5);
|
|
write_flash(SecFlashAOff + WRITESEQ6, WRITEDATA6);
|
|
write_flash(SecFlashAOff + WRITESEQ6, WRITEDATA6);
|
|
|
|
|
|
- if(poll_toggle_bit(SecFlashASec1Off) < 0)
|
|
|
|
|
|
+ if (poll_toggle_bit(SecFlashASec1Off) < 0)
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
|
|
|
|
write_flash(PriFlashBOff + WRITESEQ1, WRITEDATA1);
|
|
write_flash(PriFlashBOff + WRITESEQ1, WRITEDATA1);
|
|
@@ -364,7 +370,7 @@ int erase_flash(void)
|
|
write_flash(PriFlashBOff + WRITESEQ5, WRITEDATA5);
|
|
write_flash(PriFlashBOff + WRITESEQ5, WRITEDATA5);
|
|
write_flash(PriFlashBOff + WRITESEQ6, WRITEDATA6);
|
|
write_flash(PriFlashBOff + WRITESEQ6, WRITEDATA6);
|
|
|
|
|
|
- if(poll_toggle_bit(PriFlashBOff) <0)
|
|
|
|
|
|
+ if (poll_toggle_bit(PriFlashBOff) < 0)
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
|
|
|
|
write_flash(SecFlashBOff + WRITESEQ1, WRITEDATA1);
|
|
write_flash(SecFlashBOff + WRITESEQ1, WRITEDATA1);
|
|
@@ -374,7 +380,7 @@ int erase_flash(void)
|
|
write_flash(SecFlashBOff + WRITESEQ5, WRITEDATA5);
|
|
write_flash(SecFlashBOff + WRITESEQ5, WRITEDATA5);
|
|
write_flash(SecFlashBOff + WRITESEQ6, WRITEDATA6);
|
|
write_flash(SecFlashBOff + WRITESEQ6, WRITEDATA6);
|
|
|
|
|
|
- if(poll_toggle_bit(SecFlashBOff) < 0)
|
|
|
|
|
|
+ if (poll_toggle_bit(SecFlashBOff) < 0)
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
|
|
|
|
return FLASH_SUCCESS;
|
|
return FLASH_SUCCESS;
|
|
@@ -397,7 +403,7 @@ int erase_block_flash(int nBlock, unsigned long address)
|
|
|
|
|
|
write_flash(ulSectorOff, BlockEraseVal);
|
|
write_flash(ulSectorOff, BlockEraseVal);
|
|
|
|
|
|
- if(poll_toggle_bit(ulSectorOff) < 0)
|
|
|
|
|
|
+ if (poll_toggle_bit(ulSectorOff) < 0)
|
|
return FLASH_FAIL;
|
|
return FLASH_FAIL;
|
|
|
|
|
|
return FLASH_SUCCESS;
|
|
return FLASH_SUCCESS;
|
|
@@ -435,34 +441,34 @@ void get_sector_number(long ulOffset, int *pnSector)
|
|
|
|
|
|
if (ulOffset >= SecFlashAOff) {
|
|
if (ulOffset >= SecFlashAOff) {
|
|
if ((ulOffset < SecFlashASec1Off)
|
|
if ((ulOffset < SecFlashASec1Off)
|
|
- && (ulOffset < SecFlashASec2Off)) {
|
|
|
|
- nSector = SECT32;
|
|
|
|
|
|
+ && (ulOffset < SecFlashASec2Off)) {
|
|
|
|
+ nSector = SECT32;
|
|
} else if ((ulOffset >= SecFlashASec2Off)
|
|
} else if ((ulOffset >= SecFlashASec2Off)
|
|
- && (ulOffset < SecFlashASec3Off)) {
|
|
|
|
- nSector = SECT33;
|
|
|
|
|
|
+ && (ulOffset < SecFlashASec3Off)) {
|
|
|
|
+ nSector = SECT33;
|
|
} else if ((ulOffset >= SecFlashASec3Off)
|
|
} else if ((ulOffset >= SecFlashASec3Off)
|
|
- && (ulOffset < SecFlashASec4Off)) {
|
|
|
|
- nSector = SECT34;
|
|
|
|
|
|
+ && (ulOffset < SecFlashASec4Off)) {
|
|
|
|
+ nSector = SECT34;
|
|
} else if ((ulOffset >= SecFlashASec4Off)
|
|
} else if ((ulOffset >= SecFlashASec4Off)
|
|
- && (ulOffset < SecFlashAEndOff)) {
|
|
|
|
- nSector = SECT35;
|
|
|
|
|
|
+ && (ulOffset < SecFlashAEndOff)) {
|
|
|
|
+ nSector = SECT35;
|
|
}
|
|
}
|
|
} else if (ulOffset >= SecFlashBOff) {
|
|
} else if (ulOffset >= SecFlashBOff) {
|
|
if ((ulOffset < SecFlashBSec1Off)
|
|
if ((ulOffset < SecFlashBSec1Off)
|
|
- && (ulOffset < SecFlashBSec2Off)) {
|
|
|
|
- nSector = SECT36;
|
|
|
|
|
|
+ && (ulOffset < SecFlashBSec2Off)) {
|
|
|
|
+ nSector = SECT36;
|
|
}
|
|
}
|
|
if ((ulOffset < SecFlashBSec2Off)
|
|
if ((ulOffset < SecFlashBSec2Off)
|
|
- && (ulOffset < SecFlashBSec3Off)) {
|
|
|
|
- nSector = SECT37;
|
|
|
|
|
|
+ && (ulOffset < SecFlashBSec3Off)) {
|
|
|
|
+ nSector = SECT37;
|
|
}
|
|
}
|
|
if ((ulOffset < SecFlashBSec3Off)
|
|
if ((ulOffset < SecFlashBSec3Off)
|
|
- && (ulOffset < SecFlashBSec4Off)) {
|
|
|
|
- nSector = SECT38;
|
|
|
|
|
|
+ && (ulOffset < SecFlashBSec4Off)) {
|
|
|
|
+ nSector = SECT38;
|
|
}
|
|
}
|
|
if ((ulOffset < SecFlashBSec4Off)
|
|
if ((ulOffset < SecFlashBSec4Off)
|
|
- && (ulOffset < SecFlashBEndOff)) {
|
|
|
|
- nSector = SECT39;
|
|
|
|
|
|
+ && (ulOffset < SecFlashBEndOff)) {
|
|
|
|
+ nSector = SECT39;
|
|
}
|
|
}
|
|
} else if ((ulOffset >= PriFlashAOff) && (ulOffset < SecFlashAOff)) {
|
|
} else if ((ulOffset >= PriFlashAOff) && (ulOffset < SecFlashAOff)) {
|
|
nSector = ulOffset & 0xffff0000;
|
|
nSector = ulOffset & 0xffff0000;
|