diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 7c5aad5eedffdd..188c11157ba1f4 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -25,10 +25,10 @@ concurrency: jobs: efr32: name: EFR32 - timeout-minutes: 110 + timeout-minutes: 110 env: - EFR32_BOARD: BRD4161A + SILABS_BOARD: BRD4161A BUILD_TYPE: gn_efr32 runs-on: ubuntu-latest diff --git a/.github/workflows/release_artifacts.yaml b/.github/workflows/release_artifacts.yaml index be9a7807a8e51b..d379868bb54b7f 100644 --- a/.github/workflows/release_artifacts.yaml +++ b/.github/workflows/release_artifacts.yaml @@ -69,7 +69,7 @@ jobs: efr32: name: EFR32 env: - EFR32_BOARD: BRD4161A + SILABS_BOARD: BRD4161A BUILD_DIRECTORY: out/lock_app_debug/BRD4161A runs-on: ubuntu-latest @@ -100,7 +100,7 @@ jobs: .environment/pigweed-venv/*.log - name: Build example EFR32 Lock App run: scripts/examples/gn_efr32_example.sh examples/lock-app/efr32/ - out/lock_app_debug $EFR32_BOARD + out/lock_app_debug $SILABS_BOARD - name: Upload artifact run: | @@ -110,4 +110,4 @@ jobs: --release-tag "${{ github.event.inputs.releaseTag }}" \ --bundle-files $BUILD_DIRECTORY/lock_app.flashbundle.txt \ --working-directory $BUILD_DIRECTORY \ - --bundle-name efr32-$EFR32_BOARD-chip-lock-example + --bundle-name efr32-$SILABS_BOARD-chip-lock-example diff --git a/examples/chef/chef.py b/examples/chef/chef.py index 58d2b246d9f37d..411151a8def953 100755 --- a/examples/chef/chef.py +++ b/examples/chef/chef.py @@ -83,7 +83,7 @@ def load_config() -> None: config["silabs-thread"]["GECKO_SDK"] = f"{_REPO_BASE_PATH}third_party/efr32_sdk/repo" config["silabs-thread"]["TTY"] = None config["silabs-thread"]["CU"] = None - config["silabs-thread"]["EFR32_BOARD"] = None + config["silabs-thread"]["SILABS_BOARD"] = None config["ameba"]["AMEBA_SDK"] = None config["ameba"]["MATTER_SDK"] = None config["ameba"]["MODEL"] = 'D' @@ -493,11 +493,11 @@ def main() -> int: pass elif options.build_target == "silabs-thread": flush_print('Path to gecko sdk is configured within Matter.') - if 'EFR32_BOARD' not in config['silabs-thread'] or config['silabs-thread']['EFR32_BOARD'] is None: + if 'SILABS_BOARD' not in config['silabs-thread'] or config['silabs-thread']['SILABS_BOARD'] is None: flush_print( - 'EFR32_BOARD was not configured. Make sure silabs-thread.EFR32_BOARD is set on your config.yaml file') + 'SILABS_BOARD was not configured. Make sure silabs-thread.SILABS_BOARD is set on your config.yaml file') exit(1) - efr32_board = config['silabs-thread']['EFR32_BOARD'] + silabs_board = config['silabs-thread']['SILABS_BOARD'] elif options.build_target == "ameba": if config['ameba']['AMEBA_SDK'] is None: flush_print( @@ -669,7 +669,7 @@ def main() -> int: f'{_REPO_BASE_PATH}/scripts/examples/gn_efr32_example.sh') efr32_cmd_args.append('./') efr32_cmd_args.append(f'out/{options.sample_device_type_name}') - efr32_cmd_args.append(f'{efr32_board}') + efr32_cmd_args.append(f'{silabs_board}') efr32_cmd_args.append( f'\'sample_name=\"{options.sample_device_type_name}\"\'') if sw_ver_string: @@ -808,7 +808,7 @@ def main() -> int: elif (options.build_target == "silabs-thread") or (options.build_target == "silabs-wifi"): shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}/efr32") shell.run_cmd( - f"python3 out/{options.sample_device_type_name}/{efr32_board}/chip-efr32-chef-example.flash.py") + f"python3 out/{options.sample_device_type_name}/{silabs_board}/chip-efr32-chef-example.flash.py") shell.run_cmd(f"cd {_CHEF_SCRIPT_PATH}") elif (options.build_target == "ameba"): diff --git a/examples/chef/efr32/BUILD.gn b/examples/chef/efr32/BUILD.gn index 82eec623267b03..0458f433b7ede4 100644 --- a/examples/chef/efr32/BUILD.gn +++ b/examples/chef/efr32/BUILD.gn @@ -92,9 +92,9 @@ chip_data_model("chef-common") { is_server = true } -# ThunderBoards and Explorer Kit (No LCD) -if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || - efr32_board == "BRD2703A") { +# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) +if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || + silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { show_qr_code = false disable_lcd = true } @@ -135,7 +135,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", @@ -182,7 +182,6 @@ efr32_executable("chef_app") { sources = [ "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/efr32_utils.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -193,6 +192,10 @@ efr32_executable("chef_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || use_wf200 || use_rs911x) { sources += [ "${examples_plat_dir}/uart.cpp" ] @@ -312,7 +315,7 @@ efr32_executable("chef_app") { defines += [ "HEAP_MONITORING" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/chef/efr32/src/AppTask.cpp b/examples/chef/efr32/src/AppTask.cpp index 0ba9b8aa4e08e0..9b2593f4736ef8 100644 --- a/examples/chef/efr32/src/AppTask.cpp +++ b/examples/chef/efr32/src/AppTask.cpp @@ -20,8 +20,11 @@ #include "AppTask.h" #include "AppConfig.h" #include "AppEvent.h" + +#ifdef ENABLE_WSTK_LEDS #include "LEDWidget.h" #include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS #ifdef DISPLAY_ENABLED #include "lcd.h" @@ -52,7 +55,10 @@ #include +#ifdef ENABLE_WSTK_LEDS #define SYSTEM_STATE_LED &sl_led_led0 +#endif // ENABLE_WSTK_LEDS + #define APP_FUNCTION_BUTTON &sl_button_btn0 using namespace chip; diff --git a/examples/light-switch-app/efr32/BUILD.gn b/examples/light-switch-app/efr32/BUILD.gn index 2833eefc47c8a6..f9a87873a5b36d 100644 --- a/examples/light-switch-app/efr32/BUILD.gn +++ b/examples/light-switch-app/efr32/BUILD.gn @@ -85,9 +85,9 @@ if (chip_enable_wifi) { enable_openthread_cli = false } -# ThunderBoards and Explorer Kit (No LCD) -if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || - efr32_board == "BRD2703A") { +# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) +if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || + silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { show_qr_code = false disable_lcd = true } @@ -128,7 +128,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", @@ -175,7 +175,6 @@ efr32_executable("light_switch_app") { sources = [ "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/efr32_utils.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -186,6 +185,10 @@ efr32_executable("light_switch_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || use_wf200 || use_rs911x) { sources += [ "${examples_plat_dir}/uart.cpp" ] @@ -314,7 +317,7 @@ efr32_executable("light_switch_app") { defines += [ "HEAP_MONITORING" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/light-switch-app/efr32/src/AppTask.cpp b/examples/light-switch-app/efr32/src/AppTask.cpp index 83ac3ac8c94ec7..9fddca1d1aa98c 100644 --- a/examples/light-switch-app/efr32/src/AppTask.cpp +++ b/examples/light-switch-app/efr32/src/AppTask.cpp @@ -24,9 +24,12 @@ #include "AppTask.h" #include "AppConfig.h" #include "AppEvent.h" -#include "LEDWidget.h" #include "binding-handler.h" + +#ifdef ENABLE_WSTK_LEDS +#include "LEDWidget.h" #include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS #ifdef DISPLAY_ENABLED #include "lcd.h" diff --git a/examples/lighting-app/efr32/BUILD.gn b/examples/lighting-app/efr32/BUILD.gn index ad9c9f0feeaa0d..4a9ffa08a3a298 100644 --- a/examples/lighting-app/efr32/BUILD.gn +++ b/examples/lighting-app/efr32/BUILD.gn @@ -85,9 +85,9 @@ if (chip_enable_wifi) { enable_openthread_cli = false } -# ThunderBoards and Explorer Kit (No LCD) -if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || - efr32_board == "BRD2703A") { +# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) +if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || + silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { show_qr_code = false disable_lcd = true } @@ -95,7 +95,7 @@ if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || # WiFi settings if (chip_enable_wifi) { # disabling LCD for MG24 for wifi - if (efr32_board == "BRD4186A" || efr32_board == "BRD4187A") { + if (silabs_board == "BRD4186A" || silabs_board == "BRD4187A") { show_qr_code = false disable_lcd = true } @@ -133,7 +133,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", @@ -180,7 +180,6 @@ efr32_executable("lighting_app") { sources = [ "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/efr32_utils.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -191,6 +190,10 @@ efr32_executable("lighting_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || use_wf200 || use_rs911x) { sources += [ "${examples_plat_dir}/uart.cpp" ] @@ -324,7 +327,7 @@ efr32_executable("lighting_app") { defines += [ "HEAP_MONITORING" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/lighting-app/efr32/src/AppTask.cpp b/examples/lighting-app/efr32/src/AppTask.cpp index 89963785b8f02b..820cbe7049f44f 100644 --- a/examples/lighting-app/efr32/src/AppTask.cpp +++ b/examples/lighting-app/efr32/src/AppTask.cpp @@ -20,9 +20,12 @@ #include "AppTask.h" #include "AppConfig.h" #include "AppEvent.h" -#include "LEDWidget.h" +#ifdef ENABLE_WSTK_LEDS +#include "LEDWidget.h" #include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS + #include #include #include @@ -43,8 +46,11 @@ #include +#ifdef ENABLE_WSTK_LEDS #define SYSTEM_STATE_LED &sl_led_led0 #define LIGHT_LED &sl_led_led1 +#endif // ENABLE_WSTK_LEDS + #define APP_FUNCTION_BUTTON &sl_button_btn0 #define APP_LIGHT_SWITCH &sl_button_btn1 @@ -52,7 +58,10 @@ using namespace chip; using namespace ::chip::DeviceLayer; namespace { + +#ifdef ENABLE_WSTK_LEDS LEDWidget sLightLED; +#endif // ENABLE_WSTK_LEDS EmberAfIdentifyEffectIdentifier sIdentifyEffect = EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT; @@ -147,8 +156,10 @@ CHIP_ERROR AppTask::Init() LightMgr().SetCallbacks(ActionInitiated, ActionCompleted); +#ifdef ENABLE_WSTK_LEDS sLightLED.Init(LIGHT_LED); sLightLED.Set(LightMgr().IsLightOn()); +#endif // ENABLE_WSTK_LEDS return err; } @@ -266,7 +277,10 @@ void AppTask::ActionInitiated(LightingManager::Action_t aAction, int32_t aActor) // Action initiated, update the light led bool lightOn = aAction == LightingManager::ON_ACTION; EFR32_LOG("Turning light %s", (lightOn) ? "On" : "Off") + +#ifdef ENABLE_WSTK_LEDS sLightLED.Set(lightOn); +#endif // ENABLE_WSTK_LEDS #ifdef DISPLAY_ENABLED sAppTask.GetLCD().WriteDemoUI(lightOn); diff --git a/examples/lock-app/efr32/BUILD.gn b/examples/lock-app/efr32/BUILD.gn index d633e177a36b17..77df63b61c1868 100644 --- a/examples/lock-app/efr32/BUILD.gn +++ b/examples/lock-app/efr32/BUILD.gn @@ -85,9 +85,9 @@ if (chip_enable_wifi) { enable_openthread_cli = false } -# ThunderBoards and Explorer Kit (No LCD) -if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || - efr32_board == "BRD2703A") { +# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) +if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || + silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { show_qr_code = false disable_lcd = true } @@ -128,7 +128,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", @@ -174,7 +174,6 @@ efr32_executable("lock_app") { sources = [ "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/efr32_utils.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -185,6 +184,10 @@ efr32_executable("lock_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || use_wf200 || use_rs911x) { sources += [ "${examples_plat_dir}/uart.cpp" ] @@ -315,7 +318,7 @@ efr32_executable("lock_app") { defines += [ "HEAP_MONITORING" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/lock-app/efr32/src/AppTask.cpp b/examples/lock-app/efr32/src/AppTask.cpp index 33a331c752920b..c39b109fb6a2af 100644 --- a/examples/lock-app/efr32/src/AppTask.cpp +++ b/examples/lock-app/efr32/src/AppTask.cpp @@ -20,14 +20,19 @@ #include "AppTask.h" #include "AppConfig.h" #include "AppEvent.h" + +#ifdef ENABLE_WSTK_LEDS #include "LEDWidget.h" +#include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS + #ifdef DISPLAY_ENABLED #include "lcd.h" #ifdef QR_CODE_ENABLED #include "qrcodegen.h" #endif // QR_CODE_ENABLED #endif // DISPLAY_ENABLED -#include "sl_simple_led_instances.h" + #include #include #include @@ -52,8 +57,11 @@ #include +#ifdef ENABLE_WSTK_LEDS #define SYSTEM_STATE_LED &sl_led_led0 #define LOCK_STATE_LED &sl_led_led1 +#endif // ENABLE_WSTK_LEDS + #define APP_FUNCTION_BUTTON &sl_button_btn0 #define APP_LOCK_SWITCH &sl_button_btn1 @@ -67,7 +75,9 @@ using namespace ::chip::DeviceLayer::Internal; using namespace EFR32DoorLock::LockInitParams; namespace { +#ifdef ENABLE_WSTK_LEDS LEDWidget sLockLED; +#endif // ENABLE_WSTK_LEDS EmberAfIdentifyEffectIdentifier sIdentifyEffect = EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT; } // namespace @@ -227,9 +237,11 @@ CHIP_ERROR AppTask::Init() LockMgr().SetCallbacks(ActionInitiated, ActionCompleted); +#ifdef ENABLE_WSTK_LEDS // Initialize LEDs sLockLED.Init(LOCK_STATE_LED); sLockLED.Set(state.Value() == DlLockState::kUnlocked); +#endif // ENABLE_WSTK_LEDS chip::DeviceLayer::PlatformMgr().ScheduleWork(UpdateClusterState, reinterpret_cast(nullptr)); @@ -362,10 +374,13 @@ void AppTask::ActionInitiated(LockManager::Action_t aAction, int32_t aActor) { bool locked = (aAction == LockManager::LOCK_ACTION); EFR32_LOG("%s Action has been initiated", (locked) ? "Lock" : "Unlock"); +#ifdef ENABLE_WSTK_LEDS sLockLED.Set(!locked); +#endif // ENABLE_WSTK_LEDS + #ifdef DISPLAY_ENABLED sAppTask.GetLCD().WriteDemoUI(locked); -#endif +#endif // DISPLAY_ENABLED } if (aActor == AppEvent::kEventType_Button) diff --git a/examples/persistent-storage/efr32/BUILD.gn b/examples/persistent-storage/efr32/BUILD.gn index 5669830c3d11ec..f44fdb86872197 100644 --- a/examples/persistent-storage/efr32/BUILD.gn +++ b/examples/persistent-storage/efr32/BUILD.gn @@ -40,7 +40,7 @@ efr32_sdk("sdk") { "${chip_root}/src/lib", ] - defines = [ "BOARD_ID=${efr32_board}" ] + defines = [ "BOARD_ID=${silabs_board}" ] } efr32_executable("persistent_storage") { @@ -63,7 +63,7 @@ efr32_executable("persistent_storage") { "include", ] - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/pigweed-app/efr32/BUILD.gn b/examples/pigweed-app/efr32/BUILD.gn index 22ebc5d95bc042..cdc2bcacbc8fa8 100644 --- a/examples/pigweed-app/efr32/BUILD.gn +++ b/examples/pigweed-app/efr32/BUILD.gn @@ -40,7 +40,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "HAL_VCOM_ENABLE=1", "EFR32_LOG_ENABLED=1", "PW_RPC_ENABLED", @@ -53,7 +53,6 @@ efr32_executable("pigweed_app") { sources = [ "${chip_root}/examples/common/pigweed/RpcService.cpp", "${chip_root}/examples/common/pigweed/efr32/PigweedLoggerMutex.cpp", - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/PigweedLogger.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -61,6 +60,10 @@ efr32_executable("pigweed_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + deps = [ ":sdk", "$dir_pw_assert", @@ -73,7 +76,7 @@ efr32_executable("pigweed_app") { include_dirs = [ "${chip_root}/examples/common/pigweed/efr32" ] - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/pigweed-app/efr32/src/main.cpp b/examples/pigweed-app/efr32/src/main.cpp index 4c6331450985ab..3ac349372f8856 100644 --- a/examples/pigweed-app/efr32/src/main.cpp +++ b/examples/pigweed-app/efr32/src/main.cpp @@ -16,10 +16,14 @@ */ #include "AppConfig.h" -#include "LEDWidget.h" #include "init_efrPlatform.h" #include "sl_system_kernel.h" +#ifdef ENABLE_WSTK_LEDS +#include "LEDWidget.h" +#include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS + #include "pw_rpc/echo_service_nanopb.h" #include "pw_sys_io/sys_io.h" #include "pw_sys_io_efr32/init.h" diff --git a/examples/platform/efr32/BaseApplication.cpp b/examples/platform/efr32/BaseApplication.cpp index 2970f3c1a29fd0..3f8f584d87fe77 100644 --- a/examples/platform/efr32/BaseApplication.cpp +++ b/examples/platform/efr32/BaseApplication.cpp @@ -24,8 +24,11 @@ #include "AppConfig.h" #include "AppEvent.h" #include "AppTask.h" + +#ifdef ENABLE_WSTK_LEDS #include "LEDWidget.h" #include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS #ifdef DISPLAY_ENABLED #include "lcd.h" @@ -72,7 +75,9 @@ #define APP_EVENT_QUEUE_SIZE 10 #define EXAMPLE_VENDOR_ID 0xcafe +#ifdef ENABLE_WSTK_LEDS #define SYSTEM_STATE_LED &sl_led_led0 +#endif // ENABLE_WSTK_LEDS #define APP_FUNCTION_BUTTON &sl_button_btn0 @@ -91,7 +96,9 @@ TimerHandle_t sLightTimer; TaskHandle_t sAppTaskHandle; QueueHandle_t sAppEventQueue; +#ifdef ENABLE_WSTK_LEDS LEDWidget sStatusLED; +#endif // ENABLE_WSTK_LEDS #ifdef SL_WIFI app::Clusters::NetworkCommissioning::Instance @@ -205,8 +212,10 @@ CHIP_ERROR BaseApplication::Init(Identify * identifyObj) EFR32_LOG("Current Software Version: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING); +#ifdef ENABLE_WSTK_LEDS LEDWidget::InitGpio(); sStatusLED.Init(SYSTEM_STATE_LED); +#endif // ENABLE_WSTK_LEDS ConfigurationMgr().LogDeviceConfig(); @@ -264,10 +273,12 @@ void BaseApplication::FunctionEventHandler(AppEvent * aEvent) mFunction = kFunction_FactoryReset; +#ifdef ENABLE_WSTK_LEDS // Turn off all LEDs before starting blink to make sure blink is // co-ordinated. sStatusLED.Set(false); sStatusLED.Blink(500); +#endif // ENABLE_WSTK_LEDS } else if (mFunctionTimerActive && mFunction == kFunction_FactoryReset) { @@ -323,21 +334,29 @@ void BaseApplication::LightEventHandler() { if ((gIdentifyptr != nullptr) && (gIdentifyptr->mActive)) { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(250, 250); +#endif // ENABLE_WSTK_LEDS } else if (sIdentifyEffect != EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_STOP_EFFECT) { if (sIdentifyEffect == EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK) { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(50, 50); +#endif // ENABLE_WSTK_LEDS } if (sIdentifyEffect == EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BREATHE) { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(1000, 1000); +#endif // ENABLE_WSTK_LEDS } if (sIdentifyEffect == EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_OKAY) { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(300, 700); +#endif // ENABLE_WSTK_LEDS } } #if !(defined(CHIP_DEVICE_CONFIG_ENABLE_SED) && CHIP_DEVICE_CONFIG_ENABLE_SED) @@ -345,25 +364,35 @@ void BaseApplication::LightEventHandler() { if (sIsAttached) { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Set(true); +#endif // ENABLE_WSTK_LEDS } else { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(950, 50); +#endif } } else if (sHaveBLEConnections) { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(100, 100); +#endif // ENABLE_WSTK_LEDS } else { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Blink(50, 950); +#endif // ENABLE_WSTK_LEDS } #endif // CHIP_DEVICE_CONFIG_ENABLE_SED } +#ifdef ENABLE_WSTK_LEDS sStatusLED.Animate(); +#endif // ENABLE_WSTK_LEDS } void BaseApplication::ButtonHandler(AppEvent * aEvent) @@ -466,7 +495,10 @@ void BaseApplication::StartStatusLEDTimer() void BaseApplication::StopStatusLEDTimer() { +#ifdef ENABLE_WSTK_LEDS sStatusLED.Set(false); +#endif // ENABLE_WSTK_LEDS + if (xTimerStop(sLightTimer, 100) != pdPASS) { EFR32_LOG("Light Time start failed"); diff --git a/examples/platform/efr32/ldscripts/mgm24.ld b/examples/platform/efr32/ldscripts/mgm24.ld new file mode 100644 index 00000000000000..b057a9af720a7a --- /dev/null +++ b/examples/platform/efr32/ldscripts/mgm24.ld @@ -0,0 +1,243 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/***************************************************************************//** + * @file gcc_EFR32MG24.ld + * @brief GNU Linker Script for Cortex-M based device + * @version V2.2.0 + * @date 16. December 2020 + * Linker script for Silicon Labs EFR32MG24 devices + ******************************************************************************* + * # License + * Copyright 2022 Silicon Laboratories, Inc. www.silabs.com + ******************************************************************************* + * + * SPDX-License-Identifier: Zlib + * + * The licensor of this software is Silicon Laboratories Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + * + ******************************************************************************/ + +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08006000, LENGTH = 0x17A000 + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x40000 +} + +/* Linker script to place sections and symbol values. Should be used together + * with other linker script that defines memory regions FLASH and RAM. + * It references following symbols, which must be defined in code: + * Reset_Handler : Entry of reset handler + * + * It defines following symbols, which code can use without definition: + * __exidx_start + * __exidx_end + * __copy_table_start__ + * __copy_table_end__ + * __zero_table_start__ + * __zero_table_end__ + * __etext + * __data_start__ + * __preinit_array_start + * __preinit_array_end + * __init_array_start + * __init_array_end + * __fini_array_start + * __fini_array_end + * __data_end__ + * __bss_start__ + * __bss_end__ + * __end__ + * end + * __HeapLimit + * __StackLimit + * __StackTop + * __stack + * __StackSeal (only if ARMv8-M stack sealing is used) + */ + +ENTRY(Reset_Handler) + +SECTIONS +{ + .text : + { + KEEP(*(.vectors)) + *(.text*) + + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + + *(.rodata*) + + KEEP(*(.eh_frame*)) + } > FLASH + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > FLASH + + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > FLASH + __exidx_end = .; + + .copy.table : + { + . = ALIGN(4); + __copy_table_start__ = .; + + LONG (__etext) + LONG (__data_start__) + LONG ((__data_end__ - __data_start__) / 4) + + __copy_table_end__ = .; + } > FLASH + + .zero.table : + { + . = ALIGN(4); + __zero_table_start__ = .; + __zero_table_end__ = .; + __etext = ALIGN(4); + } > FLASH + + .data : AT (__etext) + { + __data_start__ = .; + *(vtable) + *(.data*) + . = ALIGN (4); + PROVIDE (__ram_func_section_start = .); + *(.ram) + PROVIDE (__ram_func_section_end = .); + + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + KEEP(*(.jcr*)) + . = ALIGN(4); + /* All data end */ + __data_end__ = .; + + } > RAM + + .bss : + { + . = ALIGN(4); + __bss_start__ = .; + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + } > RAM AT > RAM + + .heap (COPY): + { + __HeapBase = .; + __end__ = .; + end = __end__; + _end = __end__; + KEEP(*(.heap*)) + __HeapLimit = .; + } > RAM + + __main_flash_end__ = ORIGIN(FLASH) + LENGTH(FLASH); + + /* .stack_dummy section doesn't contains any symbols. It is only + * used for linker to calculate size of stack sections, and assign + * values to stack symbols later */ + .stack_dummy (COPY): + { + KEEP(*(.stack*)) + /* KEEP(*(.stackseal*))*/ + } > RAM + + /* Set stack top to end of RAM, and stack limit move down by + * size of stack_dummy section */ + __StackTop = ORIGIN(RAM) + LENGTH(RAM); + __StackLimit = __StackTop - SIZEOF(.stack_dummy); + PROVIDE(__stack = __StackTop); + + .nvm (DSECT) : { + KEEP(*(.simee*)) + } > FLASH + + /* Last page of flash is reserved for the manufacturing token space */ + linker_nvm_end = __main_flash_end__ - 8192; + linker_nvm_begin = linker_nvm_end - SIZEOF(.nvm); + linker_nvm_size = SIZEOF(.nvm); + __nvm3Base = linker_nvm_begin; + __attestation_credentials_base = linker_nvm_end; + + /* Check if data + heap + stack exceeds RAM limit */ + /*ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")*/ + ASSERT( (linker_nvm_begin + SIZEOF(.nvm)) <= __main_flash_end__, "NVM3 is excessing the flash size !") + + /* Check if FLASH usage exceeds FLASH size */ + ASSERT( LENGTH(FLASH) >= (__etext + SIZEOF(.data)), "FLASH memory overflowed !") +} diff --git a/examples/platform/efr32/uart.cpp b/examples/platform/efr32/uart.cpp index 548416d177ce16..8a99a7a457ce31 100644 --- a/examples/platform/efr32/uart.cpp +++ b/examples/platform/efr32/uart.cpp @@ -26,7 +26,7 @@ extern "C" { #include "em_usart.h" #include "sl_board_control.h" #include "sl_uartdrv_instances.h" -#ifdef EFR32MG24 +#if (defined(EFR32MG24) || defined(MGM24)) #include "sl_uartdrv_eusart_vcom_config.h" #else #include "sl_uartdrv_usart_vcom_config.h" @@ -44,7 +44,7 @@ extern "C" { #define MIN(A, B) ((A) < (B) ? (A) : (B)) #endif -#ifdef EFR32MG24 +#if (defined(EFR32MG24) || defined(MGM24)) #define HELPER1(x) EUSART##x##_RX_IRQn #else #define HELPER1(x) USART##x##_RX_IRQn @@ -52,7 +52,7 @@ extern "C" { #define HELPER2(x) HELPER1(x) -#ifdef EFR32MG24 +#if (defined(EFR32MG24) || defined(MGM24)) #define HELPER3(x) EUSART##x##_RX_IRQHandler #else #define HELPER3(x) USART##x##_RX_IRQHandler @@ -61,7 +61,7 @@ extern "C" { #define HELPER4(x) HELPER3(x) // On MG24 boards VCOM runs on the EUSART device, MG12 uses the UART device -#ifdef EFR32MG24 +#if (defined(EFR32MG24) || defined(MGM24)) #define USART_IRQ HELPER2(SL_UARTDRV_EUSART_VCOM_PERIPHERAL_NO) #define USART_IRQHandler HELPER4(SL_UARTDRV_EUSART_VCOM_PERIPHERAL_NO) #define vcom_handle sl_uartdrv_eusart_vcom_handle @@ -221,7 +221,7 @@ void uartConsoleInit(void) NVIC_ClearPendingIRQ(USART_IRQ); NVIC_EnableIRQ(USART_IRQ); -#ifdef EFR32MG24 +#if (defined(EFR32MG24) || defined(MGM24)) // Clear previous RX interrupts EUSART_IntClear(SL_UARTDRV_EUSART_VCOM_PERIPHERAL, EUSART_IF_RXFL); @@ -246,7 +246,7 @@ void USART_IRQHandler(void) otSysEventSignalPending(); #endif -#ifdef EFR32MG24 +#if (defined(EFR32MG24) || defined(MGM24)) EUSART_IntClear(SL_UARTDRV_EUSART_VCOM_PERIPHERAL, EUSART_IF_RXFL); #endif } diff --git a/examples/shell/efr32/BUILD.gn b/examples/shell/efr32/BUILD.gn index 33bbfac5e4573d..78719ff5b492f5 100644 --- a/examples/shell/efr32/BUILD.gn +++ b/examples/shell/efr32/BUILD.gn @@ -47,7 +47,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "OPENTHREAD_CONFIG_CLI_TRANSPORT=OT_CLI_TRANSPORT_CONSOLE", ] } @@ -85,7 +85,7 @@ efr32_executable("shell_app") { defines += [ "HEAP_MONITORING" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/thermostat/efr32/BUILD.gn b/examples/thermostat/efr32/BUILD.gn index e787b107e26d3c..3c4190218c68c6 100644 --- a/examples/thermostat/efr32/BUILD.gn +++ b/examples/thermostat/efr32/BUILD.gn @@ -82,9 +82,9 @@ if (chip_enable_wifi) { enable_openthread_cli = false } -# ThunderBoards and Explorer Kit (No LCD) -if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || - efr32_board == "BRD2703A") { +# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) +if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || + silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { show_qr_code = false disable_lcd = true } @@ -125,7 +125,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", @@ -172,7 +172,6 @@ efr32_executable("thermostat_app") { sources = [ "${examples_plat_dir}/BaseApplication.cpp", - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/efr32_utils.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -182,6 +181,10 @@ efr32_executable("thermostat_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + if (chip_enable_pw_rpc || chip_build_libshell || enable_openthread_cli || use_wf200 || use_rs911x) { sources += [ "${examples_plat_dir}/uart.cpp" ] @@ -305,7 +308,7 @@ efr32_executable("thermostat_app") { defines += [ "HEAP_MONITORING" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/thermostat/efr32/src/AppTask.cpp b/examples/thermostat/efr32/src/AppTask.cpp index 793e79f3ab8145..2b518669162649 100644 --- a/examples/thermostat/efr32/src/AppTask.cpp +++ b/examples/thermostat/efr32/src/AppTask.cpp @@ -24,8 +24,11 @@ #include "AppTask.h" #include "AppConfig.h" #include "AppEvent.h" + +#ifdef ENABLE_WSTK_LEDS #include "LEDWidget.h" #include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS #ifdef DISPLAY_ENABLED #include "lcd.h" diff --git a/examples/window-app/efr32/BUILD.gn b/examples/window-app/efr32/BUILD.gn index a993091d59da1b..5b781828462497 100644 --- a/examples/window-app/efr32/BUILD.gn +++ b/examples/window-app/efr32/BUILD.gn @@ -81,9 +81,9 @@ if (chip_enable_wifi) { enable_openthread_cli = false } -# ThunderBoards and Explorer Kit (No LCD) -if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || - efr32_board == "BRD2703A") { +# ThunderBoards, Explorer Kit and MGM240L do not support LCD (No LCD) +if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" || + silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { show_qr_code = false disable_lcd = true } @@ -91,7 +91,7 @@ if (efr32_board == "BRD4166A" || efr32_board == "BRD2601B" || # WiFi settings if (chip_enable_wifi) { # disabling LCD for MG24 for wifi - if (efr32_board == "BRD4186C" || efr32_board == "BRD4187C") { + if (silabs_board == "BRD4186C" || silabs_board == "BRD4187C") { show_qr_code = false disable_lcd = true } @@ -129,7 +129,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}", "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR=${setupDiscriminator}", "OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}", @@ -172,7 +172,6 @@ efr32_executable("window_app") { defines = [] sources = [ - "${examples_plat_dir}/LEDWidget.cpp", "${examples_plat_dir}/efr32_utils.cpp", "${examples_plat_dir}/heap_4_silabs.c", "${examples_plat_dir}/init_efrPlatform.cpp", @@ -183,6 +182,10 @@ efr32_executable("window_app") { "src/main.cpp", ] + if (use_wstk_leds) { + sources += [ "${examples_plat_dir}/LEDWidget.cpp" ] + } + if (chip_build_libshell || enable_openthread_cli || use_wf200 || use_rs911x) { sources += [ "${examples_plat_dir}/uart.cpp" ] } @@ -268,7 +271,7 @@ efr32_executable("window_app") { sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ] } - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/examples/window-app/efr32/include/WindowAppImpl.h b/examples/window-app/efr32/include/WindowAppImpl.h index 8bfbe8ead0b7be..a43f68ed85f6ef 100644 --- a/examples/window-app/efr32/include/WindowAppImpl.h +++ b/examples/window-app/efr32/include/WindowAppImpl.h @@ -18,7 +18,12 @@ #pragma once #include -#include + +#ifdef ENABLE_WSTK_LEDS +#include "LEDWidget.h" +#include "sl_simple_led_instances.h" +#endif // ENABLE_WSTK_LEDS + #include #include #include @@ -79,8 +84,11 @@ class WindowAppImpl : public WindowApp void DispatchEventAttributeChange(chip::EndpointId endpoint, chip::AttributeId attribute); TaskHandle_t mHandle = nullptr; QueueHandle_t mQueue = nullptr; + +#ifdef ENABLE_WSTK_LEDS LEDWidget mStatusLED; LEDWidget mActionLED; +#endif // ENABLE_WSTK_LEDS // Get QR Code and emulate its content using NFC tag char mQRCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; diff --git a/examples/window-app/efr32/src/WindowAppImpl.cpp b/examples/window-app/efr32/src/WindowAppImpl.cpp index c4a1d3fd6762b8..7f9eeaca724f0d 100644 --- a/examples/window-app/efr32/src/WindowAppImpl.cpp +++ b/examples/window-app/efr32/src/WindowAppImpl.cpp @@ -28,7 +28,11 @@ #include #endif // QR_CODE_ENABLED #include + +#ifdef ENABLE_WSTK_LEDS #include +#endif // ENABLE_WSTK_LEDS + #include #ifdef SL_WIFI @@ -198,9 +202,11 @@ CHIP_ERROR WindowAppImpl::Init() } // Initialize LEDs +#ifdef ENABLE_WSTK_LEDS LEDWidget::InitGpio(); mStatusLED.Init(APP_STATE_LED); mActionLED.Init(APP_ACTION_LED); +#endif // ENABLE_WSTK_LEDS #ifdef DISPLAY_ENABLED slLCD.Init(); @@ -370,17 +376,21 @@ void WindowAppImpl::UpdateLEDs() Cover & cover = GetCover(); if (mResetWarning) { +#ifdef ENABLE_WSTK_LEDS mStatusLED.Set(false); mStatusLED.Blink(500); mActionLED.Set(false); mActionLED.Blink(500); +#endif // ENABLE_WSTK_LEDS } else { if (mState.isWinking) { +#ifdef ENABLE_WSTK_LEDS mStatusLED.Blink(200, 200); +#endif // ENABLE_WSTK_LEDS } else #if CHIP_ENABLE_OPENTHREAD @@ -390,10 +400,22 @@ void WindowAppImpl::UpdateLEDs() #endif { +#ifdef ENABLE_WSTK_LEDS mStatusLED.Blink(950, 50); +#endif // ENABLE_WSTK_LEDS + } + else if (mState.haveBLEConnections) + { +#ifdef ENABLE_WSTK_LEDS + mStatusLED.Blink(100, 100); +#endif // ENABLE_WSTK_LEDS + } + else + { +#ifdef ENABLE_WSTK_LEDS + mStatusLED.Blink(50, 950); +#endif // ENABLE_WSTK_LEDS } - else if (mState.haveBLEConnections) { mStatusLED.Blink(100, 100); } - else { mStatusLED.Blink(50, 950); } // Action LED NPercent100ths current; @@ -411,19 +433,27 @@ void WindowAppImpl::UpdateLEDs() if (OperationalState::Stall != cover.mLiftOpState) { +#ifdef ENABLE_WSTK_LEDS mActionLED.Blink(100); +#endif // ENABLE_WSTK_LEDS } else if (LimitStatus::IsUpOrOpen == liftLimit) { +#ifdef ENABLE_WSTK_LEDS mActionLED.Set(true); +#endif // ENABLE_WSTK_LEDS } else if (LimitStatus::IsDownOrClose == liftLimit) { +#ifdef ENABLE_WSTK_LEDS mActionLED.Set(false); +#endif // ENABLE_WSTK_LEDS } else { +#ifdef ENABLE_WSTK_LEDS mActionLED.Blink(1000); +#endif // ENABLE_WSTK_LEDS } } } @@ -472,8 +502,10 @@ void WindowAppImpl::UpdateLCD() void WindowAppImpl::OnMainLoop() { +#ifdef ENABLE_WSTK_LEDS mStatusLED.Animate(); mActionLED.Animate(); +#endif // ENABLE_WSTK_LEDS } //------------------------------------------------------------------------------ diff --git a/integrations/docker/images/chip-build-vscode/Dockerfile b/integrations/docker/images/chip-build-vscode/Dockerfile index 45d4c834df00e8..bbb1521693903e 100644 --- a/integrations/docker/images/chip-build-vscode/Dockerfile +++ b/integrations/docker/images/chip-build-vscode/Dockerfile @@ -75,7 +75,7 @@ ENV AMEBA_PATH=/opt/ameba/ambd_sdk_with_chip_non_NDA ENV ANDROID_HOME=/opt/android/sdk ENV ANDROID_NDK_HOME=/opt/android/android-ndk-r21b ENV CY_TOOLS_PATHS="/opt/ModusToolbox/tools_2.4" -ENV EFR32_BOARD=BRD4161A +ENV SILABS_BOARD=BRD4161A ENV IDF_PATH=/opt/espressif/esp-idf/ ENV IDF_TOOLS_PATH=/opt/espressif/tools ENV IMX_SDK_ROOT=/opt/fsl-imx-xwayland/5.15-kirkstone/ diff --git a/scripts/build/builders/efr32.py b/scripts/build/builders/efr32.py index d4a536a1e80ca2..34979314923751 100644 --- a/scripts/build/builders/efr32.py +++ b/scripts/build/builders/efr32.py @@ -117,7 +117,7 @@ def __init__(self, root=app.BuildRoot(root), runner=runner) self.app = app - self.extra_gn_options = ['efr32_board="%s"' % board.GnArgName()] + self.extra_gn_options = ['silabs_board="%s"' % board.GnArgName()] if enable_rpcs: self.extra_gn_options.append('is_debug=false import("//with_pw_rpc.gni")') diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt index efacf03b4af51c..ebfb4ad3070bae 100644 --- a/scripts/build/testdata/build_all_except_host.txt +++ b/scripts/build/testdata/build_all_except_host.txt @@ -200,340 +200,340 @@ gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/exa gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/ota-requestor-app/infineon/cyw30739 --args=chip_progress_logging=false {out}/cyw30739-cyw930739m2evb_01-ota-requestor-no-progress-logging # Generating efr32-brd4161a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-light # Generating efr32-brd4161a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-light-rpc # Generating efr32-brd4161a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-rpc-with-ota-requestor # Generating efr32-brd4161a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-light-with-ota-requestor # Generating efr32-brd4161a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-lock # Generating efr32-brd4161a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4161a-lock-rpc # Generating efr32-brd4161a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-rpc-with-ota-requestor # Generating efr32-brd4161a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-lock-with-ota-requestor # Generating efr32-brd4161a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-switch # Generating efr32-brd4161a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-switch-with-ota-requestor # Generating efr32-brd4161a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-unit-test # Generating efr32-brd4161a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-unit-test-with-ota-requestor # Generating efr32-brd4161a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4161A"' {out}/efr32-brd4161a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4161A"' {out}/efr32-brd4161a-window-covering # Generating efr32-brd4161a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4161A" chip_enable_ota_requestor=true' {out}/efr32-brd4161a-window-covering-with-ota-requestor # Generating efr32-brd4163a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-light # Generating efr32-brd4163a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-light-rpc # Generating efr32-brd4163a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-rpc-with-ota-requestor # Generating efr32-brd4163a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-light-with-ota-requestor # Generating efr32-brd4163a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-lock # Generating efr32-brd4163a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4163a-lock-rpc # Generating efr32-brd4163a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-rpc-with-ota-requestor # Generating efr32-brd4163a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-lock-with-ota-requestor # Generating efr32-brd4163a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-switch # Generating efr32-brd4163a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-switch-with-ota-requestor # Generating efr32-brd4163a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-unit-test # Generating efr32-brd4163a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-unit-test-with-ota-requestor # Generating efr32-brd4163a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4163A"' {out}/efr32-brd4163a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4163A"' {out}/efr32-brd4163a-window-covering # Generating efr32-brd4163a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4163A" chip_enable_ota_requestor=true' {out}/efr32-brd4163a-window-covering-with-ota-requestor # Generating efr32-brd4164a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-light # Generating efr32-brd4164a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-light-rpc # Generating efr32-brd4164a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-rpc-with-ota-requestor # Generating efr32-brd4164a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-light-with-ota-requestor # Generating efr32-brd4164a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-lock # Generating efr32-brd4164a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4164a-lock-rpc # Generating efr32-brd4164a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-rpc-with-ota-requestor # Generating efr32-brd4164a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-lock-with-ota-requestor # Generating efr32-brd4164a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-switch # Generating efr32-brd4164a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-switch-with-ota-requestor # Generating efr32-brd4164a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-unit-test # Generating efr32-brd4164a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-unit-test-with-ota-requestor # Generating efr32-brd4164a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4164A"' {out}/efr32-brd4164a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4164A"' {out}/efr32-brd4164a-window-covering # Generating efr32-brd4164a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4164A" chip_enable_ota_requestor=true' {out}/efr32-brd4164a-window-covering-with-ota-requestor # Generating efr32-brd4166a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-light # Generating efr32-brd4166a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-light-rpc # Generating efr32-brd4166a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-rpc-with-ota-requestor # Generating efr32-brd4166a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-light-with-ota-requestor # Generating efr32-brd4166a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-lock # Generating efr32-brd4166a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4166a-lock-rpc # Generating efr32-brd4166a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-rpc-with-ota-requestor # Generating efr32-brd4166a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-lock-with-ota-requestor # Generating efr32-brd4166a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-switch # Generating efr32-brd4166a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-switch-with-ota-requestor # Generating efr32-brd4166a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-unit-test # Generating efr32-brd4166a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-unit-test-with-ota-requestor # Generating efr32-brd4166a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4166A"' {out}/efr32-brd4166a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4166A"' {out}/efr32-brd4166a-window-covering # Generating efr32-brd4166a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4166A" chip_enable_ota_requestor=true' {out}/efr32-brd4166a-window-covering-with-ota-requestor # Generating efr32-brd4170a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-light # Generating efr32-brd4170a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-light-rpc # Generating efr32-brd4170a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-rpc-with-ota-requestor # Generating efr32-brd4170a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-light-with-ota-requestor # Generating efr32-brd4170a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-lock # Generating efr32-brd4170a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4170a-lock-rpc # Generating efr32-brd4170a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-rpc-with-ota-requestor # Generating efr32-brd4170a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-lock-with-ota-requestor # Generating efr32-brd4170a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-switch # Generating efr32-brd4170a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-switch-with-ota-requestor # Generating efr32-brd4170a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-unit-test # Generating efr32-brd4170a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-unit-test-with-ota-requestor # Generating efr32-brd4170a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4170A"' {out}/efr32-brd4170a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4170A"' {out}/efr32-brd4170a-window-covering # Generating efr32-brd4170a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4170A" chip_enable_ota_requestor=true' {out}/efr32-brd4170a-window-covering-with-ota-requestor # Generating efr32-brd4186a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-light # Generating efr32-brd4186a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-light-rpc # Generating efr32-brd4186a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-rpc-with-ota-requestor # Generating efr32-brd4186a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-light-with-ota-requestor # Generating efr32-brd4186a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-lock # Generating efr32-brd4186a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4186a-lock-rpc # Generating efr32-brd4186a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-rpc-with-ota-requestor # Generating efr32-brd4186a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-lock-with-ota-requestor # Generating efr32-brd4186a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-switch # Generating efr32-brd4186a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-switch-with-ota-requestor # Generating efr32-brd4186a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-unit-test # Generating efr32-brd4186a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-unit-test-with-ota-requestor # Generating efr32-brd4186a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4186A"' {out}/efr32-brd4186a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4186A"' {out}/efr32-brd4186a-window-covering # Generating efr32-brd4186a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4186A" chip_enable_ota_requestor=true' {out}/efr32-brd4186a-window-covering-with-ota-requestor # Generating efr32-brd4187a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-light # Generating efr32-brd4187a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-light-rpc # Generating efr32-brd4187a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-rpc-with-ota-requestor # Generating efr32-brd4187a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-light-with-ota-requestor # Generating efr32-brd4187a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-lock # Generating efr32-brd4187a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4187a-lock-rpc # Generating efr32-brd4187a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-rpc-with-ota-requestor # Generating efr32-brd4187a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-lock-with-ota-requestor # Generating efr32-brd4187a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-switch # Generating efr32-brd4187a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-switch-with-ota-requestor # Generating efr32-brd4187a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-unit-test # Generating efr32-brd4187a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-unit-test-with-ota-requestor # Generating efr32-brd4187a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4187A"' {out}/efr32-brd4187a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4187A"' {out}/efr32-brd4187a-window-covering # Generating efr32-brd4187a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4187A" chip_enable_ota_requestor=true' {out}/efr32-brd4187a-window-covering-with-ota-requestor # Generating efr32-brd4304a-light -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-light +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-light # Generating efr32-brd4304a-light-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-light-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-light-rpc # Generating efr32-brd4304a-light-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-rpc-with-ota-requestor # Generating efr32-brd4304a-light-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-light-with-ota-requestor # Generating efr32-brd4304a-lock -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-lock +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-lock # Generating efr32-brd4304a-lock-rpc -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-lock-rpc +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni")' {out}/efr32-brd4304a-lock-rpc # Generating efr32-brd4304a-lock-rpc-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-rpc-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A" is_debug=false import("//with_pw_rpc.gni") chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-rpc-with-ota-requestor # Generating efr32-brd4304a-lock-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-lock-with-ota-requestor # Generating efr32-brd4304a-switch -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-switch +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-switch # Generating efr32-brd4304a-switch-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-switch-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/light-switch-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-switch-with-ota-requestor # Generating efr32-brd4304a-unit-test -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-unit-test +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-unit-test # Generating efr32-brd4304a-unit-test-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-unit-test-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/src/test_driver/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-unit-test-with-ota-requestor # Generating efr32-brd4304a-window-covering -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4304A"' {out}/efr32-brd4304a-window-covering +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4304A"' {out}/efr32-brd4304a-window-covering # Generating efr32-brd4304a-window-covering-with-ota-requestor -gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=efr32_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-window-covering-with-ota-requestor +gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/window-app/efr32 '--args=silabs_board="BRD4304A" chip_enable_ota_requestor=true' {out}/efr32-brd4304a-window-covering-with-ota-requestor # Generating esp32-c3devkit-all-clusters mkdir -p {out}/esp32-c3devkit-all-clusters diff --git a/scripts/examples/gn_efr32_example.sh b/scripts/examples/gn_efr32_example.sh index 2169332984236d..4bebc12c8de996 100755 --- a/scripts/examples/gn_efr32_example.sh +++ b/scripts/examples/gn_efr32_example.sh @@ -35,7 +35,7 @@ env USE_WIFI=false SILABS_THREAD_TARGET=\""../silabs:ot-efr32-cert"\" -USAGE="./scripts/examples/gn_efr32_example.sh []" +USAGE="./scripts/examples/gn_efr32_example.sh []" if [ "$#" == "0" ]; then echo "Build script for EFR32 Matter apps @@ -48,7 +48,7 @@ if [ "$#" == "0" ]; then Desired location for the output files - + Identifier of the board for which this app is built Currently Supported : BRD4161A @@ -115,7 +115,7 @@ else OUTDIR=$2 if [ "$#" -gt "2" ]; then - EFR32_BOARD=$3 + SILABS_BOARD=$3 shift fi @@ -171,22 +171,22 @@ else esac done - if [ -z "$EFR32_BOARD" ]; then - echo "EFR32_BOARD not defined" + if [ -z "$SILABS_BOARD" ]; then + echo "SILABS_BOARD not defined" exit 1 fi - BUILD_DIR=$OUTDIR/$EFR32_BOARD + BUILD_DIR=$OUTDIR/$SILABS_BOARD echo BUILD_DIR="$BUILD_DIR" if [ "$USE_WIFI" == true ]; then - gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --dotfile="$ROOT"/build_for_wifi_gnfile.gn --args="efr32_board=\"$EFR32_BOARD\" $optArgs" "$BUILD_DIR" + gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --dotfile="$ROOT"/build_for_wifi_gnfile.gn --args="silabs_board=\"$SILABS_BOARD\" $optArgs" "$BUILD_DIR" else # thread build # if [ -z "$optArgs" ]; then - gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --args="efr32_board=\"$EFR32_BOARD\"" "$BUILD_DIR" + gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --args="silabs_board=\"$SILABS_BOARD\"" "$BUILD_DIR" else - gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --args="efr32_board=\"$EFR32_BOARD\" $optArgs" "$BUILD_DIR" + gn gen --check --fail-on-unused-args --export-compile-commands --root="$ROOT" --args="silabs_board=\"$SILABS_BOARD\" $optArgs" "$BUILD_DIR" fi fi ninja -v -C "$BUILD_DIR"/ diff --git a/scripts/flashing/efr32_firmware_utils.py b/scripts/flashing/efr32_firmware_utils.py index d04e106f894c6d..989cc97f19ca32 100755 --- a/scripts/flashing/efr32_firmware_utils.py +++ b/scripts/flashing/efr32_firmware_utils.py @@ -77,8 +77,8 @@ """, }, 'device': { - 'help': 'Device family or platform to target', - 'default': 'EFR32', + 'help': 'Device family or platform to target (EFR32 or MGM240)', + 'default': None, 'alias': ['-d'], 'argparse': { 'metavar': 'DEVICE' diff --git a/src/platform/EFR32/args.gni b/src/platform/EFR32/args.gni index 7b80e77e100190..4d61e8341d8ce0 100644 --- a/src/platform/EFR32/args.gni +++ b/src/platform/EFR32/args.gni @@ -19,7 +19,7 @@ import("//build_overrides/pigweed.gni") import("${chip_root}/examples/platform/efr32/args.gni") import("${chip_root}/src/crypto/crypto.gni") -# ARM architecture flags will be set based on efr32_family. +# ARM architecture flags will be set based on silabs_family. arm_platform_config = "${efr32_sdk_build_root}/efr32_arm.gni" mbedtls_target = "${efr32_sdk_build_root}:efr32_sdk" diff --git a/src/platform/EFR32/wifi_args.gni b/src/platform/EFR32/wifi_args.gni index 328b0c06f85f46..46a00ac6964b04 100644 --- a/src/platform/EFR32/wifi_args.gni +++ b/src/platform/EFR32/wifi_args.gni @@ -20,7 +20,7 @@ import("//build_overrides/pigweed.gni") import("${chip_root}/examples/platform/efr32/args.gni") import("${chip_root}/src/crypto/crypto.gni") -# ARM architecture flags will be set based on efr32_family. +# ARM architecture flags will be set based on silabs_family. arm_platform_config = "${efr32_sdk_build_root}/efr32_arm.gni" mbedtls_target = "${efr32_sdk_build_root}:efr32_sdk" diff --git a/src/test_driver/efr32/BUILD.gn b/src/test_driver/efr32/BUILD.gn index 1d6f87637a99db..f26103d64a7657 100644 --- a/src/test_driver/efr32/BUILD.gn +++ b/src/test_driver/efr32/BUILD.gn @@ -54,7 +54,7 @@ efr32_sdk("sdk") { ] defines = [ - "BOARD_ID=${efr32_board}", + "BOARD_ID=${silabs_board}", "EFR32_LOG_ENABLED=1", "PW_RPC_ENABLED", @@ -105,7 +105,7 @@ efr32_executable("efr32_device_tests") { include_dirs = [ "${chip_root}/examples/common/pigweed/efr32" ] - ldscript = "${examples_plat_dir}/ldscripts/${efr32_family}.ld" + ldscript = "${examples_plat_dir}/ldscripts/${silabs_family}.ld" inputs = [ ldscript ] diff --git a/third_party/openthread/platforms/efr32/BUILD.gn b/third_party/openthread/platforms/efr32/BUILD.gn index b6dba5b98d4351..89546a7f7daf1f 100644 --- a/third_party/openthread/platforms/efr32/BUILD.gn +++ b/third_party/openthread/platforms/efr32/BUILD.gn @@ -16,21 +16,21 @@ import("//build_overrides/chip.gni") import("//build_overrides/efr32_sdk.gni") import("//build_overrides/openthread.gni") -import("${efr32_sdk_build_root}/efr32_board.gni") import("${efr32_sdk_build_root}/efr32_sdk.gni") +import("${efr32_sdk_build_root}/silabs_board.gni") openthread_efr32_root = "${chip_root}/third_party/openthread/ot-efr32" config("openthread_efr32_config") { defines = [ "RADIO_CONFIG_DMP_SUPPORT=1", - "${efr32_board}=1", - "${efr32_mcu}", + "${silabs_board}=1", + "${silabs_mcu}", ] include_dirs = [ "${chip_root}/examples/platform/efr32", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}", "${openthread_efr32_root}/src/src", ] } diff --git a/third_party/silabs/BUILD.gn b/third_party/silabs/BUILD.gn index 552fbe923e352f..5ac5159b925968 100644 --- a/third_party/silabs/BUILD.gn +++ b/third_party/silabs/BUILD.gn @@ -61,14 +61,14 @@ if (use_silabs_thread_lib) { config("openthread_efr32_config") { defines = [ "RADIO_CONFIG_DMP_SUPPORT=1", - "${efr32_board}=1", - "${efr32_mcu}", + "${silabs_board}=1", + "${silabs_mcu}", "OPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE=\"openthread-core-efr32-config-check.h\"", ] include_dirs = [ "${chip_root}/examples/platform/efr32", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}", "${sl_ot_efr32_root}/src/src", "${sl_openthread_root}/src/", ] @@ -153,8 +153,8 @@ if (use_silabs_thread_lib) { public_configs += [ "${sl_openthread_root}:openthread_${XTD}_config" ] libs = [ - "${sl_ot_efr32_root}/libs/libsl_ot_stack_${XTD}_${COAP_API}${efr32_family}_gcc.a", - "${sl_ot_efr32_root}/libs/libsl_platform_${XTD}_dmp_${efr32_family}_gcc.a", + "${sl_ot_efr32_root}/libs/libsl_ot_stack_${XTD}_${COAP_API}${silabs_family}_gcc.a", + "${sl_ot_efr32_root}/libs/libsl_platform_${XTD}_dmp_${silabs_family}_gcc.a", ] } } diff --git a/third_party/silabs/efr32_arm.gni b/third_party/silabs/efr32_arm.gni index 19d26c3fd4c532..e1696309677ae2 100644 --- a/third_party/silabs/efr32_arm.gni +++ b/third_party/silabs/efr32_arm.gni @@ -12,15 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -import("efr32_board.gni") +import("silabs_board.gni") -if (efr32_family == "efr32mg12") { +if (silabs_family == "efr32mg12") { arm_arch = "armv7e-m" arm_abi = "aapcs" arm_cpu = "cortex-m4" arm_float_abi = "softfp" arm_fpu = "fpv4-sp-d16" -} else if (efr32_family == "efr32mg21" || efr32_family == "efr32mg24") { +} else if (silabs_family == "efr32mg21" || silabs_family == "efr32mg24" || + silabs_family == "mgm24") { arm_arch = "armv8-m.main+dsp" arm_abi = "aapcs" arm_cpu = "cortex-m33" diff --git a/third_party/silabs/efr32_board.gni b/third_party/silabs/efr32_board.gni deleted file mode 100644 index 3de8aa1337bc6a..00000000000000 --- a/third_party/silabs/efr32_board.gni +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright (c) 2020 Project CHIP Authors -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -declare_args() { - # EFR32 board used - efr32_board = "" -} - -if (efr32_board == "") { - efr32_board = getenv("EFR32_BOARD") -} - -assert(efr32_board != "", "efr32_board must be specified") - -# Differentiate between boards -# - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm -# - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm -# - BRD4163A / SLWSTK6000B / Dual band Wireless Starter Kit / 2.4GHz@19dBm, 868MHz@19dBm -# - BRD4164A / SLWSTK6000B / Dual band Wireless Starter Kit / 2.4GHz@19dBm, 915MHz@19dBm -# - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm -# - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, 915MHz@19dBm, 868MHz@19dBm -# - BRD4180A / SLWSTK6006A / MG21 Module / 2.4GHz@20dBm -# - BRD4186A / SLWSTK6006A / MG24 / Wireless Starter Kit / 2.4GHz@10dBm -# - BRD4187A / SLWSTK6006A / MG24 / Wireless Starter Kit / 2.4GHz@20dBm - -board_defines = [] - -if (efr32_board == "BRD4304A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P432F1024GM48" - enable_fem = true - board_defines += [ "PAL_RTCC_CLOCK_LFRCO" ] -} else if (efr32_board == "BRD4161A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P432F1024GL125" -} else if (efr32_board == "BRD4162A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P332F1024GL125" -} else if (efr32_board == "BRD4163A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P433F1024GL125" -} else if (efr32_board == "BRD4164A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P433F1024GL125" -} else if (efr32_board == "BRD4166A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P332F1024GL125" -} else if (efr32_board == "BRD4170A") { - efr32_family = "efr32mg12" - efr32_mcu = "EFR32MG12P433F1024GM68" -} else if (efr32_board == "BRD4180A") { - assert( - false, - "The board ${efr32_board} not currently supported due to RAM limitation") - efr32_family = "efr32mg21" - efr32_mcu = "EFR32MG21A020F1024IM32" -} else if (efr32_board == "BRD4186A" || efr32_board == "BRD4187A") { - print("RevA is deprecated, We suggest using BRD4186C (rev C)") - efr32_family = "efr32mg24" - efr32_mcu = "EFR32MG24A010F1536GM48" -} else if (efr32_board == "BRD4186C") { - efr32_family = "efr32mg24" - efr32_mcu = "EFR32MG24B210F1536IM48" -} else if (efr32_board == "BRD4187C") { - efr32_family = "efr32mg24" - efr32_mcu = "EFR32MG24B220F1536IM48" -} else if (efr32_board == "BRD2601B") { - efr32_family = "efr32mg24" - efr32_mcu = "EFR32MG24B310F1536IM48" -} else if (efr32_board == "BRD2703A") { - efr32_family = "efr32mg24" - efr32_mcu = "EFR32MG24B020F1536IM48" -} else { - print( - "Please provide a valid value for EFR32_BOARD env variable (currently supported BRD4304A, BRD4161A, BRD4163A, BRD4164A BRD4166A, BRD4170A, BRD4186C, BRD4187C, BRD2601B, BRD2703A)") - assert(false, "The board ${efr32_board} is unsupported") -} diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni index c9742f1f9d7f72..22fa2d0aac59b9 100644 --- a/third_party/silabs/efr32_sdk.gni +++ b/third_party/silabs/efr32_sdk.gni @@ -18,26 +18,35 @@ import("//build_overrides/jlink.gni") import("//build_overrides/mbedtls.gni") import("${chip_root}/src/lib/lib.gni") -import("efr32_board.gni") +import("silabs_board.gni") declare_args() { # Location of the efr32 SDK. efr32_sdk_root = "${chip_root}/third_party/silabs/gecko_sdk" sdk_support_root = "${chip_root}/third_party/silabs/matter_support" - #Build openthread with prebuilt silabs lib + # Build openthread with prebuilt silabs lib use_silabs_thread_lib = false enable_openthread_cli = true - kvs_max_entries = 75 + kvs_max_entries = 75 use_external_flash = true } -# Explorer Kit does not have external flash -if (efr32_board == "BRD2703A") { +# Explorer Kit and MGM240L do not have external flash +if (silabs_board == "BRD2703A" || silabs_board == "BRD4319A") { use_external_flash = false } +# Enable LEDs by default +use_wstk_leds = true + +# Board does not support LEDs and Buttons at the same time +if (silabs_board == "BRD4317A" || silabs_board == "BRD4316A" || + silabs_board == "BRD4319A") { + use_wstk_leds = false +} + assert(efr32_sdk_root != "", "efr32_sdk_root must be specified") # Defines an efr32 SDK build target. @@ -82,7 +91,6 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/CMSIS/RTOS2/Include", "${efr32_sdk_root}/platform/common/inc", "${efr32_sdk_root}/platform/driver/button/inc", - "${efr32_sdk_root}/platform/driver/leddrv/inc", "${efr32_sdk_root}/platform/emdrv/common/inc", "${efr32_sdk_root}/platform/emdrv/gpiointerrupt/inc", "${efr32_sdk_root}/platform/emdrv/dmadrv/config", @@ -142,8 +150,8 @@ template("efr32_sdk") { "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/", "${efr32_sdk_root}/util/third_party/freertos/cmsis/Include", "${efr32_sdk_root}/util/third_party/freertos/kernel/include", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/config", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/config", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen", ] # Note that we're setting the mbedTLS and PSA configuration files through a @@ -166,8 +174,8 @@ template("efr32_sdk") { "CORTEXM3", "MICRO=EMBER_MICRO_CORTEXM3_EFR32", "PLAT=EMBER_PLATFORM_CORTEXM3", - "${efr32_mcu}=1", - "${efr32_board}=1", + "${silabs_mcu}=1", + "${silabs_board}=1", "SL_SUPRESS_DEPRECATION_WARNINGS_SDK_3_1", "__HEAP_SIZE=0", "SL_CATALOG_FREERTOS_KERNEL_PRESENT=1", @@ -183,6 +191,12 @@ template("efr32_sdk") { defines += board_defines + if (use_wstk_leds) { + _include_dirs += [ "${efr32_sdk_root}/platform/driver/leddrv/inc" ] + + defines += [ "ENABLE_WSTK_LEDS" ] + } + if (defined(invoker.enable_sleepy_device)) { if (invoker.enable_sleepy_device) { defines += [ @@ -227,7 +241,7 @@ template("efr32_sdk") { ] } - if (efr32_family == "efr32mg12") { + if (silabs_family == "efr32mg12") { _include_dirs += [ "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Include", "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg1x", @@ -244,7 +258,7 @@ template("efr32_sdk") { ] defines += [ "EFR32MG12" ] - } else if (efr32_family == "efr32mg21") { + } else if (silabs_family == "efr32mg21") { _include_dirs += [ "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Include", "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x", @@ -265,7 +279,7 @@ template("efr32_sdk") { "EFR32MG21", "EFR32_SERIES2_CONFIG1_MICRO", ] - } else if (efr32_family == "efr32mg24") { + } else if (silabs_family == "efr32mg24") { _include_dirs += [ "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Include", "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x", @@ -286,7 +300,39 @@ template("efr32_sdk") { "EFR32MG24", "EFR32_SERIES2_CONFIG4_MICRO", ] + } else if (silabs_family == "mgm24") { + _include_dirs += [ + "${efr32_sdk_root}/platform/Device/SiliconLabs/MGM24/Include", + "${efr32_sdk_root}/platform/radio/rail_lib/chip/efr32/efr32xg2x", + "${efr32_sdk_root}/platform/radio/rail_lib/protocol/ble", + "${efr32_sdk_root}/platform/radio/rail_lib/protocol/ieee802154", + "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure", + "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg24", + "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/efr32xg24/config", + "${efr32_sdk_root}/platform/service/device_init/config/s2/", + ] + + libs += [ + "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG24/GCC/libapploader.a", + "${sdk_support_root}/protocol/bluetooth/lib/EFR32MG24/GCC/libbluetooth.a", + "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_multiprotocol_module_efr32xg24_gcc_release.a", + "${sdk_support_root}/platform/emdrv/nvm3/lib/libnvm3_CM33_gcc.a", + ] + + if (silabs_mcu == "MGM240PB32VNA") { + libs += [ "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_config_mgm240pb32vna_gcc.a" ] + } else if (silabs_mcu == "MGM240PB22VNA") { + libs += [ "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_config_mgm240pb22vna_gcc.a" ] + } else if (silabs_mcu == "MGM240L022RNF") { + libs += [ "${sdk_support_root}/platform/radio/rail_lib/autogen/librail_release/librail_config_mgm240l022rnf_gcc.a" ] + } + + defines += [ + "MGM24", + "EFR32_SERIES2_CONFIG4_MICRO", + ] } + if (use_wf200) { _include_dirs += [ "${efr32_sdk_root}/platform/radio/wifi/wfx_fmac_driver", @@ -307,7 +353,7 @@ template("efr32_sdk") { "-Wno-shadow", ] - if (efr32_family == "efr32mg24") { + if (silabs_family == "efr32mg24" || silabs_family == "mgm24") { cflags += [ "-mcmse" ] } @@ -348,10 +394,6 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/common/src/sl_slist.c", "${efr32_sdk_root}/platform/driver/button/src/sl_button.c", "${efr32_sdk_root}/platform/driver/button/src/sl_simple_button.c", - "${efr32_sdk_root}/platform/driver/leddrv/src/sl_led.c", - "${efr32_sdk_root}/platform/driver/leddrv/src/sl_pwm_led.c", - "${efr32_sdk_root}/platform/driver/leddrv/src/sl_simple_led.c", - "${efr32_sdk_root}/platform/driver/leddrv/src/sl_simple_rgb_pwm_led.c", "${efr32_sdk_root}/platform/emdrv/dmadrv/src/dmadrv.c", "${efr32_sdk_root}/platform/emdrv/gpiointerrupt/src/gpiointerrupt.c", "${efr32_sdk_root}/platform/emdrv/nvm3/src/nvm3_default.c", @@ -511,13 +553,22 @@ template("efr32_sdk") { "${efr32_sdk_root}/util/third_party/freertos/kernel/stream_buffer.c", "${efr32_sdk_root}/util/third_party/freertos/kernel/tasks.c", "${efr32_sdk_root}/util/third_party/freertos/kernel/timers.c", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_board_default_init.c", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_device_init_clocks.c", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_event_handler.c", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_simple_button_instances.c", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_simple_led_instances.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_board_default_init.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_device_init_clocks.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_event_handler.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_simple_button_instances.c", ] + if (use_wstk_leds) { + sources += [ + "${efr32_sdk_root}/platform/driver/leddrv/src/sl_led.c", + "${efr32_sdk_root}/platform/driver/leddrv/src/sl_pwm_led.c", + "${efr32_sdk_root}/platform/driver/leddrv/src/sl_simple_led.c", + "${efr32_sdk_root}/platform/driver/leddrv/src/sl_simple_rgb_pwm_led.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_simple_led_instances.c", + ] + } + if (defined(invoker.enable_sleepy_device)) { if (invoker.enable_sleepy_device) { sources += [ "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/SiliconLabs/tick_power_manager.c" ] @@ -543,7 +594,7 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/emlib/src/em_eusart.c", "${efr32_sdk_root}/platform/emlib/src/em_leuart.c", "${efr32_sdk_root}/platform/emlib/src/em_usart.c", - "${sdk_support_root}/matter/efr32/${efr32_family}/${efr32_board}/autogen/sl_uartdrv_init.c", + "${sdk_support_root}/matter/efr32/${silabs_family}/${silabs_board}/autogen/sl_uartdrv_init.c", ] if (defined(invoker.use_external_flash) && use_external_flash) { @@ -580,7 +631,7 @@ template("efr32_sdk") { ] } - if (efr32_family == "efr32mg12") { + if (silabs_family == "efr32mg12") { sources += [ "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Source/startup_efr32mg12p.c", "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG12P/Source/system_efr32mg12p.c", @@ -590,7 +641,7 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_lfxo_s1.c", "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM4F/port.c", ] - } else if (efr32_family == "efr32mg21") { + } else if (silabs_family == "efr32mg21") { sources += [ "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Source/startup_efr32mg21.c", "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c", @@ -629,7 +680,7 @@ template("efr32_sdk") { "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c", "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c", ] - } else if (efr32_family == "efr32mg24") { + } else if (silabs_family == "efr32mg24") { sources += [ "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Source/startup_efr32mg24.c", "${efr32_sdk_root}/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c", @@ -669,6 +720,45 @@ template("efr32_sdk") { "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c", "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c", ] + } else if (silabs_family == "mgm24") { + sources += [ + "${efr32_sdk_root}/platform/Device/SiliconLabs/MGM24/Source/startup_mgm24.c", + "${efr32_sdk_root}/platform/Device/SiliconLabs/MGM24/Source/system_mgm24.c", + "${efr32_sdk_root}/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.c", + "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_dcdc_s2.c", + "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_emu_s2.c", + "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_hfxo_mgm24.c", + "${efr32_sdk_root}/platform/service/device_init/src/sl_device_init_lfxo_s2.c", + "${efr32_sdk_root}/platform/service/hfxo_manager/src/sl_hfxo_manager_hal_s2.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_attestation.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_cipher.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_entropy.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_hash.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_key_derivation.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_key_handling.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_signature.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/se_manager/src/sl_se_manager_util.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_aes.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_mbedtls_support/src/se_jpake.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_aead.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_cipher.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_key_derivation.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_key_management.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_driver_mac.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_aead.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_cipher.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_driver_mac.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_opaque_key_derivation.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_aead.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_cipher.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_hash.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_driver_mac.c", + "${efr32_sdk_root}/util/third_party/crypto/sl_component/sl_psa_driver/src/sli_se_transparent_key_derivation.c", + "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c", + "${efr32_sdk_root}/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c", + ] } public_deps = [ diff --git a/third_party/silabs/matter_support b/third_party/silabs/matter_support index 2425fb72cacd54..48483a67a123a4 160000 --- a/third_party/silabs/matter_support +++ b/third_party/silabs/matter_support @@ -1 +1 @@ -Subproject commit 2425fb72cacd540df505f11e7de81e6270ed1c40 +Subproject commit 48483a67a123a4ecd72bbd4f4a201e49ad18e8fd diff --git a/third_party/silabs/silabs_board.gni b/third_party/silabs/silabs_board.gni new file mode 100644 index 00000000000000..b5fe904a1e9561 --- /dev/null +++ b/third_party/silabs/silabs_board.gni @@ -0,0 +1,97 @@ +# Copyright (c) 2020 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +declare_args() { + # EFR32 board used + silabs_board = "" +} + +if (silabs_board == "") { + silabs_board = getenv("SILABS_BOARD") +} + +assert(silabs_board != "", "silabs_board must be specified") + +# Differentiate between boards +# - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm +# - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm +# - BRD4163A / SLWSTK6000B / Dual band Wireless Starter Kit / 2.4GHz@19dBm, 868MHz@19dBm +# - BRD4164A / SLWSTK6000B / Dual band Wireless Starter Kit / 2.4GHz@19dBm, 915MHz@19dBm +# - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm +# - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, 915MHz@19dBm, 868MHz@19dBm +# - BRD4180A / SLWSTK6006A / MG21 Module / 2.4GHz@20dBm +# - BRD4186A / SLWSTK6006A / MG24 / Wireless Starter Kit / 2.4GHz@10dBm +# - BRD4187A / SLWSTK6006A / MG24 / Wireless Starter Kit / 2.4GHz@20dBm + +board_defines = [] + +if (silabs_board == "BRD4304A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P432F1024GM48" + enable_fem = true + board_defines += [ "PAL_RTCC_CLOCK_LFRCO" ] +} else if (silabs_board == "BRD4161A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P432F1024GL125" +} else if (silabs_board == "BRD4162A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P332F1024GL125" +} else if (silabs_board == "BRD4163A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P433F1024GL125" +} else if (silabs_board == "BRD4164A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P433F1024GL125" +} else if (silabs_board == "BRD4166A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P332F1024GL125" +} else if (silabs_board == "BRD4170A") { + silabs_family = "efr32mg12" + silabs_mcu = "EFR32MG12P433F1024GM68" +} else if (silabs_board == "BRD4180A") { + assert( + false, + "The board ${silabs_board} not currently supported due to RAM limitation") + silabs_family = "efr32mg21" + silabs_mcu = "EFR32MG21A020F1024IM32" +} else if (silabs_board == "BRD4186A" || silabs_board == "BRD4187A") { + print("RevA is deprecated, We suggest using BRD4186C (rev C)") + silabs_family = "efr32mg24" + silabs_mcu = "EFR32MG24A010F1536GM48" +} else if (silabs_board == "BRD4186C") { + silabs_family = "efr32mg24" + silabs_mcu = "EFR32MG24B210F1536IM48" +} else if (silabs_board == "BRD4187C") { + silabs_family = "efr32mg24" + silabs_mcu = "EFR32MG24B220F1536IM48" +} else if (silabs_board == "BRD2601B") { + silabs_family = "efr32mg24" + silabs_mcu = "EFR32MG24B310F1536IM48" +} else if (silabs_board == "BRD2703A") { + silabs_family = "efr32mg24" + silabs_mcu = "EFR32MG24B020F1536IM48" +} else if (silabs_board == "BRD4316A") { + silabs_family = "mgm24" + silabs_mcu = "MGM240PB22VNA" +} else if (silabs_board == "BRD4317A") { + silabs_family = "mgm24" + silabs_mcu = "MGM240PB32VNA" +} else if (silabs_board == "BRD4319A") { + silabs_family = "mgm24" + silabs_mcu = "MGM240L022RNF" +} else { + print( + "Please provide a valid value for SILABS_BOARD env variable (currently supported BRD4304A, BRD4161A, BRD4163A, BRD4164A BRD4166A, BRD4170A, BRD4186C, BRD4187C, BRD2601B, BRD2703A, BRD4317A)") + assert(false, "The board ${silabs_board} is unsupported") +}