Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r77392c1537f02650413087b86b946370a6289dcd -rcd5be724d5a3ba7457e761191d82f278654d7f5c --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 77392c1537f02650413087b86b946370a6289dcd) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision cd5be724d5a3ba7457e761191d82f278654d7f5c) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2023 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file ModeInitPOST.c * -* @author (last) Michael Garthwaite -* @date (last) 01-Mar-2023 +* @author (last) Sean Nash +* @date (last) 08-Aug-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -383,6 +383,20 @@ /*********************************************************************//** * @brief + * The getDGPOSTPassed function gets the POST passed status of the DG sub-system. + * @details Inputs: dgPOSTPassed, dgPOSTResultReceived + * @details Outputs: none + * @return TRUE if DG POST result received and passed, FALSE if not + *************************************************************************/ +BOOL getDGPOSTPassed( void ) +{ + BOOL result = ( TRUE == dgPOSTResultReceived && TRUE == dgPOSTPassed ? TRUE : FALSE ); + + return result; +} + +/*********************************************************************//** + * @brief * The signalUIVersion function records the reported UI version information. * @details Inputs: none * @details Outputs: uiVersion @@ -448,6 +462,18 @@ /*********************************************************************//** * @brief + * The isDGPOSTPassed function determines whether all DG POST have passed. + * @details Inputs: dgPOSTPassed + * @details Outputs: none + * @return true if all DG POST tests have passed, false if not + *************************************************************************/ +BOOL isDGPOSTPassed( void ) +{ + return dgPOSTPassed; +} + +/*********************************************************************//** + * @brief * The handlePOSTStatus function handles a status result returned by a * POST function. * @details Inputs: testStatus @@ -505,7 +531,8 @@ { U32 resetReason = systemREG1->SYSESR | crcREG->PSA_SIGREGL1; // power-on reset bit preserved in an unused CRC register - systemREG1->SYSESR = systemREG1->SYSESR; // clear reset bit(s) after logging event so subsequent resets can be properly identified as not being power-on resets. + systemREG1->SYSESR = systemREG1->SYSESR; // clear reset bit(s) after logging event so subsequent resets can be properly identified as not being power-on resets. + crcREG->PSA_SIGREGL1 = 0; // clear preserved power-on reset bit. sendUIVersionRequest(); // request UI to send us its version - needed for compatibility check @@ -568,14 +595,14 @@ } else { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_UI_POST_FAILED, 0 ) + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_UI_POST_TIMEOUT, 0 ) result = SELF_TEST_STATUS_FAILED; } } // If UI had not already sent POST results before we started, allow finite period for UI to send. else if ( ++waitForUIPostTimerCtr > POST_UI_MAX_WAIT_TIME ) { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_UI_POST_FAILED, 1 ) + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_UI_POST_TIMEOUT, 1 ) result = SELF_TEST_STATUS_FAILED; }