From 1379268c5e71a06938aebc971c9e02eee6b16500 Mon Sep 17 00:00:00 2001 From: jmartinez-silabs <67972863+jmartinez-silabs@users.noreply.github.com> Date: Mon, 22 Aug 2022 15:23:22 -0400 Subject: [PATCH] Fix GetBootReason prototype so it overrides the generic one, Replace sl_ot_sys_init by manual call. OT efr32MiscInit was 'stealing' the reboot cause from the matter stack (#22077) --- examples/platform/efr32/init_efrPlatform.cpp | 3 ++- src/platform/EFR32/ConfigurationManagerImpl.cpp | 5 +++-- src/platform/EFR32/ConfigurationManagerImpl.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/platform/efr32/init_efrPlatform.cpp b/examples/platform/efr32/init_efrPlatform.cpp index a0e33702b40e68..36ee0018e8a814 100644 --- a/examples/platform/efr32/init_efrPlatform.cpp +++ b/examples/platform/efr32/init_efrPlatform.cpp @@ -68,7 +68,8 @@ void init_efrPlatform(void) #endif #if CHIP_ENABLE_OPENTHREAD - sl_ot_sys_init(); + efr32RadioInit(); + efr32AlarmInit(); #endif // CHIP_ENABLE_OPENTHREAD } diff --git a/src/platform/EFR32/ConfigurationManagerImpl.cpp b/src/platform/EFR32/ConfigurationManagerImpl.cpp index 64a66be824f61a..0dd8170da5d3b5 100644 --- a/src/platform/EFR32/ConfigurationManagerImpl.cpp +++ b/src/platform/EFR32/ConfigurationManagerImpl.cpp @@ -97,7 +97,7 @@ CHIP_ERROR ConfigurationManagerImpl::IncreaseBootCount(void) return EFR32Config::WriteConfigValue(EFR32Config::kConfigKey_BootCount, bootCount + 1); } -uint32_t ConfigurationManagerImpl::GetBootReason(void) +CHIP_ERROR ConfigurationManagerImpl::GetBootReason(uint32_t & bootReason) { // rebootCause is obtained at bootup. BootReasonType matterBootCause; @@ -150,7 +150,8 @@ uint32_t ConfigurationManagerImpl::GetBootReason(void) matterBootCause = BootReasonType::kUnspecified; #endif - return to_underlying(matterBootCause); + bootReason = to_underlying(matterBootCause); + return CHIP_NO_ERROR; } CHIP_ERROR ConfigurationManagerImpl::GetTotalOperationalHours(uint32_t & totalOperationalHours) diff --git a/src/platform/EFR32/ConfigurationManagerImpl.h b/src/platform/EFR32/ConfigurationManagerImpl.h index aaebd3ea65ac91..2f40d8d260a363 100644 --- a/src/platform/EFR32/ConfigurationManagerImpl.h +++ b/src/platform/EFR32/ConfigurationManagerImpl.h @@ -40,7 +40,7 @@ class ConfigurationManagerImpl : public Internal::GenericConfigurationManagerImp // This returns an instance of this class. static ConfigurationManagerImpl & GetDefaultInstance(); - uint32_t GetBootReason(void); + CHIP_ERROR GetBootReason(uint32_t & bootReason); CHIP_ERROR GetRebootCount(uint32_t & rebootCount); CHIP_ERROR IncreaseBootCount(void); CHIP_ERROR GetTotalOperationalHours(uint32_t & totalOperationalHours);