I2C reboot procedure for EIVE system #578
@ -68,9 +68,11 @@ static constexpr Event REBOOT_COUNTER = event::makeEvent(SUBSYSTEM_ID, 7, severi
|
|||||||
//! P1: First 16 bits boot count of image 0 0, last 16 bits boot count of image 0 1.
|
//! P1: First 16 bits boot count of image 0 0, last 16 bits boot count of image 0 1.
|
||||||
//! P2: First 16 bits boot count of image 1 0, last 16 bits boot count of image 1 1.
|
//! P2: First 16 bits boot count of image 1 0, last 16 bits boot count of image 1 1.
|
||||||
static constexpr Event INDIVIDUAL_BOOT_COUNTS = event::makeEvent(SUBSYSTEM_ID, 8, severity::INFO);
|
static constexpr Event INDIVIDUAL_BOOT_COUNTS = event::makeEvent(SUBSYSTEM_ID, 8, severity::INFO);
|
||||||
//! [EXPORT] : [COMMENT] I2C is unavailable. Triggered to system object can take further steps
|
//! [EXPORT] : [COMMENT] I2C is unavailable. Trying recovery of I2C bus by power cycling all I2C
|
||||||
//! like I2C reboot or reboot.
|
//! devices.
|
||||||
static constexpr Event TRYING_I2C_RECOVERY = event::makeEvent(SUBSYSTEM_ID, 10, severity::MEDIUM);
|
static constexpr Event TRYING_I2C_RECOVERY = event::makeEvent(SUBSYSTEM_ID, 10, severity::MEDIUM);
|
||||||
|
//! [EXPORT] : [COMMENT] I2C is unavailable. Recovery did not work, performing full reboot.
|
||||||
|
static constexpr Event I2C_REBOOT = event::makeEvent(SUBSYSTEM_ID, 10, severity::MEDIUM);
|
||||||
|
|
||||||
} // namespace core
|
} // namespace core
|
||||||
|
|
||||||
|
@ -169,6 +169,7 @@ void EiveSystem::i2cRecoveryLogic() {
|
|||||||
if (i2cRecoveryClearCountdown.hasTimedOut()) {
|
if (i2cRecoveryClearCountdown.hasTimedOut()) {
|
||||||
i2cErrors = 0;
|
i2cErrors = 0;
|
||||||
alreadyTriedI2cRecovery = false;
|
alreadyTriedI2cRecovery = false;
|
||||||
|
i2cRebootHandlingCountdown.resetTimer();
|
||||||
}
|
}
|
||||||
// If an I2C recovery is not ongoing and the I2C error counter is above a threshold, try
|
// If an I2C recovery is not ongoing and the I2C error counter is above a threshold, try
|
||||||
// recovery or reboot if recovery was already attempted.
|
// recovery or reboot if recovery was already attempted.
|
||||||
|
Loading…
Reference in New Issue
Block a user