diff --git a/src/EdgePlatform.cpp b/src/EdgePlatform.cpp index 8bb3c78..b397f16 100644 --- a/src/EdgePlatform.cpp +++ b/src/EdgePlatform.cpp @@ -64,8 +64,9 @@ EdgePlatform *EdgePlatform::_instance = nullptr; Logger EdgePlatformLogger("otp"); -void EdgePlatform::init() +void EdgePlatform::init(uint32_t model, uint32_t variant) { +#ifdef TRACKER_HAS_HW_INFO hal_device_hw_info info; uint32_t res; @@ -77,8 +78,13 @@ void EdgePlatform::init() uint8_t byte2 = info.features & 0xFF; uint8_t byte3 = info.features >> 8; +#else // TRACKER_HAS_HW_INFO + uint8_t byte2 = 0xFF; + uint8_t byte3 = 0xFF; +#endif // TRACKER_HAS_HW_INFO + // Parse OTP area to determine module type - switch (info.model) { + switch (model) { case TRACKER_MODEL_BARE_SOM: model_ = TrackerModel::eBARE_SOM; break; diff --git a/src/EdgePlatform.h b/src/EdgePlatform.h index cc19a2b..15a18b8 100644 --- a/src/EdgePlatform.h +++ b/src/EdgePlatform.h @@ -102,8 +102,10 @@ class EdgePlatform /** * @brief Read OTP region for hardware information * + * @param model Model info from non-volatile memory + * @param variant Variant info from non-volatile memory */ - void init(); + void init(uint32_t model, uint32_t variant); /** * @brief Return Tracker model type diff --git a/src/tracker.cpp b/src/tracker.cpp index d9f4d30..d20e7a7 100644 --- a/src/tracker.cpp +++ b/src/tracker.cpp @@ -568,12 +568,10 @@ int Tracker::init() _model = TRACKER_MODEL_NUMBER; #ifdef TRACKER_MODEL_VARIANT _variant = TRACKER_MODEL_VARIANT; -#else - _variant = 0; #endif // TRACKER_MODEL_VARIANT #endif // TRACKER_MODEL_NUMBER - EdgePlatform::instance().init(); + EdgePlatform::instance().init(_model, _variant); switch (EdgePlatform::instance().getModel()) { case EdgePlatform::TrackerModel::eTRACKER_ONE: _platformConfig = new TrackerOneConfiguration(); diff --git a/src/tracker_config.h b/src/tracker_config.h index 680dac9..371617c 100644 --- a/src/tracker_config.h +++ b/src/tracker_config.h @@ -49,6 +49,10 @@ #define TRACKER_PRODUCT_VERSION (119) #endif +#if ( SYSTEM_VERSION >= SYSTEM_VERSION_DEFAULT(4, 0, 0) ) +#define TRACKER_HAS_HW_INFO +#endif // SYSTEM_VERSION + #if ( (SYSTEM_VERSION < SYSTEM_VERSION_ALPHA(5, 0, 0, 1)) && (PLATFORM_ID == PLATFORM_TRACKER) ) #define TRACKER_USE_MEMFAULT #endif // SYSTEM_VERSION