Index: NVDataMgmt.c =================================================================== diff -u -r67209e55bb36f2b07433aa46f6322f1985572dcc -rffc57967f1c97bd7d926214ef531e11dd0a22d40 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision 67209e55bb36f2b07433aa46f6322f1985572dcc) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision ffc57967f1c97bd7d926214ef531e11dd0a22d40) @@ -919,8 +919,17 @@ } else { - if ( NVDATAMGMT_EEPROM == recordSpec.dataLoc ) + // Assume the institutional record is fine unless the record is really the institutional record + BOOL isInstitutionalRecordValid = TRUE; + +#ifdef _HD_ + if ( NVDATAMGMT_INTITUTIONAL_RECORD == job ) { + isInstitutionalRecordValid = isNVInstitutionalRecordInRange( &hdInstitutionalGroup.hdInstitutionalRecord ); + } +#endif + if ( ( NVDATAMGMT_EEPROM == recordSpec.dataLoc ) && ( TRUE == isInstitutionalRecordValid ) ) + { // CRC passed, enqueue an erase, a write of calibration data and a write of service record BOOL scheduleStatus = enqueueSector0Records(); @@ -932,8 +941,8 @@ // Signal that there is a new calibration record available. // NOTE: as of now, this signal will be sent even after the system record is sent - newCalStartTimer = getMSTimerCount(); - isNewCalAvailable = TRUE; + newCalStartTimer = getMSTimerCount(); + isNewCalAvailable = TRUE; } else {