Index: NVDriver.c =================================================================== diff -u -reed05c4b7fb5648a8b599286fc2bbcfbce9259ff -r2b96c0cca0fed8924134df41f4aee4eaac1d6a09 --- NVDriver.c (.../NVDriver.c) (revision eed05c4b7fb5648a8b599286fc2bbcfbce9259ff) +++ NVDriver.c (.../NVDriver.c) (revision 2b96c0cca0fed8924134df41f4aee4eaac1d6a09) @@ -82,8 +82,7 @@ void writeSector( U32* recordFlashAddress, U08* bufferAddress, U32 bufferSize ) { // Create a copy only for validation - U32 sectorStartAddress = *recordFlashAddress; - BOOL isFlashAddressValid = isSectorStartAddress( §orStartAddress ); + BOOL isFlashAddressValid = isSectorStartAddress( recordFlashAddress ); if ( ( TRUE == isFlashAddressValid ) && ( NULL != bufferAddress ) && ( bufferSize > 0 ) ) { @@ -105,8 +104,7 @@ void readSector( U32* recordFlashAddress, U32* bufferAddress, U32 bufferSize ) { // Create a copy only for validation - U32 sectorStartAddress = *recordFlashAddress; - BOOL isFlashAddressValid = isSectorStartAddress( §orStartAddress ); + BOOL isFlashAddressValid = isSectorStartAddress( recordFlashAddress ); if ( ( TRUE == isFlashAddressValid ) && ( NULL != bufferAddress ) && ( bufferSize > 0 ) ) { @@ -141,33 +139,37 @@ *************************************************************************/ static BOOL isSectorStartAddress( U32* recordFlashAddress ) { - BOOL isFlashAddressValid = TRUE; + BOOL isFlashAddressValid = FALSE; + U32 addr; - if ( NULL == recordFlashAddress ) + if ( NULL != recordFlashAddress ) { - return FALSE; + addr = (U32)recordFlashAddress; + if ( ( BANK7_SECTOR0_START_ADDRESS <= addr ) && + ( BANK7_SECTOR0_END_ADDRESS >= addr ) ) + { + isFlashAddressValid = TRUE; + } + else if ( ( BANK7_SECTOR1_START_ADDRESS <= addr ) && + ( BANK7_SECTOR1_END_ADDRESS >= addr ) ) + { + isFlashAddressValid = TRUE; + } + else if ( ( BANK7_SECTOR2_START_ADDRESS <= addr ) && + ( BANK7_SECTOR2_END_ADDRESS >= addr ) ) + { + isFlashAddressValid = TRUE; + } + else if ( ( BANK7_SECTOR3_START_ADDRESS <= addr ) && + ( BANK7_SECTOR3_END_ADDRESS >= addr ) ) + { + isFlashAddressValid = TRUE; + } + else + { + isFlashAddressValid = FALSE; + } } - - if ( ( BANK7_SECTOR0_START_ADDRESS <= *recordFlashAddress ) && - ( BANK7_SECTOR0_END_ADDRESS >= *recordFlashAddress ) ) - { - *recordFlashAddress = BANK7_SECTOR0_START_ADDRESS; - } - else if ( ( BANK7_SECTOR1_START_ADDRESS <= *recordFlashAddress ) && - ( BANK7_SECTOR1_END_ADDRESS >= *recordFlashAddress ) ) - { - *recordFlashAddress = BANK7_SECTOR1_START_ADDRESS; - } - else if ( ( BANK7_SECTOR2_START_ADDRESS <= *recordFlashAddress ) && - ( BANK7_SECTOR2_END_ADDRESS >= *recordFlashAddress ) ) - { - *recordFlashAddress = BANK7_SECTOR2_START_ADDRESS; - } - else if ( ( BANK7_SECTOR3_START_ADDRESS <= *recordFlashAddress ) && - ( BANK7_SECTOR3_END_ADDRESS >= *recordFlashAddress ) ) - { - *recordFlashAddress = BANK7_SECTOR3_START_ADDRESS; - } else { isFlashAddressValid = FALSE; Index: NVMgmt.c =================================================================== diff -u -reed05c4b7fb5648a8b599286fc2bbcfbce9259ff -r2b96c0cca0fed8924134df41f4aee4eaac1d6a09 --- NVMgmt.c (.../NVMgmt.c) (revision eed05c4b7fb5648a8b599286fc2bbcfbce9259ff) +++ NVMgmt.c (.../NVMgmt.c) (revision 2b96c0cca0fed8924134df41f4aee4eaac1d6a09) @@ -96,6 +96,9 @@ initNVJobQ(); initNVMessagingDD(); initNVRecordsDD(); + + enqueueRecordJob(NVM_OPERATION_ERASE, NVM_SERVICE_RECORD); + enqueueRecordJob(NVM_OPERATION_WRITE, NVM_SERVICE_RECORD); enqueueReadAllRecords(); }