[Bouffalolab] Refactor Bouffalolab SDK gn scripts (#24132)

* create bl_iot_sdk.gni

* update bl_iot_sdk.gni

* remove more 702 specific-name

* update bl602

* update bl602 & bl702

* update toolchain path

* fix issues for bl602

* fix parition table for bl702

* fix restyle
diff --git a/build_overrides/bouffalolab_iot_sdk.gni b/build_overrides/bouffalolab_iot_sdk.gni
index 77ab344..2a87174 100644
--- a/build_overrides/bouffalolab_iot_sdk.gni
+++ b/build_overrides/bouffalolab_iot_sdk.gni
@@ -13,11 +13,7 @@
 # limitations under the License.
 
 declare_args() {
-  # Root directory for bl602 SDK build files.
-  bl602_sdk_build_root = "//third_party/bouffalolab/bl602"
-
-  # Root directory for bl702 SDK build files.
-  bl702_sdk_build_root = "//third_party/bouffalolab/bl702"
+  bouffalolab_iot_sdk_build_root = "//third_party/bouffalolab/"
 
   bouffalolab_sdk_root = "/opt/bouffalolab_sdk"
 }
diff --git a/third_party/bouffalolab/bl702/bl702_riscv.gni b/config/bouffalolab/args.gni
similarity index 68%
copy from third_party/bouffalolab/bl702/bl702_riscv.gni
copy to config/bouffalolab/args.gni
index 2c52532..a85d0ea 100644
--- a/third_party/bouffalolab/bl702/bl702_riscv.gni
+++ b/config/bouffalolab/args.gni
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Project CHIP Authors
+# Copyright (c) 2022 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.
@@ -12,10 +12,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import("bl702_board.gni")
+# Options from standalone-chip.mk that differ from configure defaults. These
+# options are used from examples/.
 
-riscv_arch = "rv32imfc"
-riscv_abi = "ilp32f"
-#  riscv_cpu = ""
-#  riscv_float_abi = "hard"
-#  riscv_fpu = ""
+custom_toolchain =
+    "//third_party/connectedhomeip/config/bouffalolab/toolchain:riscv_gcc"
diff --git a/examples/platform/bouffalolab/common/toolchain/BUILD.gn b/config/bouffalolab/toolchain/BUILD.gn
similarity index 100%
rename from examples/platform/bouffalolab/common/toolchain/BUILD.gn
rename to config/bouffalolab/toolchain/BUILD.gn
diff --git a/examples/platform/bouffalolab/common/toolchain/riscv_toolchain.gni b/config/bouffalolab/toolchain/riscv_toolchain.gni
similarity index 100%
rename from examples/platform/bouffalolab/common/toolchain/riscv_toolchain.gni
rename to config/bouffalolab/toolchain/riscv_toolchain.gni
diff --git a/examples/build_overrides/bouffalolab_iot_sdk.gni b/examples/build_overrides/bouffalolab_iot_sdk.gni
index 1eb018a..d66989f 100644
--- a/examples/build_overrides/bouffalolab_iot_sdk.gni
+++ b/examples/build_overrides/bouffalolab_iot_sdk.gni
@@ -13,13 +13,8 @@
 # limitations under the License.
 
 declare_args() {
-  # Root directory for bl602 SDK build files.
-  bl602_sdk_build_root =
-      "//third_party/connectedhomeip/third_party/bouffalolab/bl602"
-
-  # Root directory for bl702 SDK build files.
-  bl702_sdk_build_root =
-      "//third_party/connectedhomeip/third_party/bouffalolab/bl702"
+  bouffalolab_iot_sdk_build_root =
+      "//third_party/connectedhomeip/third_party/bouffalolab"
 
   bouffalolab_sdk_root = "/opt/bouffalolab_sdk"
 }
diff --git a/examples/lighting-app/bouffalolab/bl602/BUILD.gn b/examples/lighting-app/bouffalolab/bl602/BUILD.gn
index 369b732..0b341d5 100644
--- a/examples/lighting-app/bouffalolab/bl602/BUILD.gn
+++ b/examples/lighting-app/bouffalolab/bl602/BUILD.gn
@@ -16,8 +16,8 @@
 import("//build_overrides/build.gni")
 import("//build_overrides/chip.gni")
 
-import("${bl602_sdk_build_root}/bl602_executable.gni")
-import("${bl602_sdk_build_root}/bl602_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/bl602/bl_iot_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/common/bouffalolab_executable.gni")
 import("${build_root}/config/defaults.gni")
 import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
 import("${chip_root}/src/platform/device.gni")
@@ -51,7 +51,7 @@
   baudrate = 2000000
 }
 
-bl602_sdk("sdk") {
+bl_iot_sdk("sdk") {
   include_dirs = [
     "${chip_root}/src/platform/bouffalolab/BL602",
     "${example_dir}",
@@ -66,6 +66,7 @@
     "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setupPinCode}",
     "OTA_PERIODIC_QUERY_TIMEOUT=${ota_periodic_query_timeout}",
     "CHIP_UART_BAUDRATE=${baudrate}",
+    "SYS_AOS_LOOP_ENABLE",
   ]
 
   if (chip_enable_pw_rpc) {
@@ -77,7 +78,7 @@
   }
 }
 
-bl602_executable("lighting_app") {
+bouffalolab_executable("lighting_app") {
   output_name = "chip-bl602-lighting-example.out"
 
   defines = [
@@ -85,8 +86,10 @@
     "CHIP_UART_BAUDRATE=${baudrate}",
     "BL602_ENABLE",
     "START_ENTRY=bfl_main",
+    "SYS_AOS_LOOP_ENABLE",
   ]
 
+  bl_plat_name = "bl602"
   sources = [
     "${examples_plat_dir}/route_hook/bl_route_hook.c",
     "${examples_plat_dir}/route_hook/bl_route_table.c",
@@ -195,6 +198,7 @@
     sources += [ "${examples_plat_common_dir}/plat/OTAConfig.cpp" ]
   }
 
+  cflags_c = [ "-Wno-sign-compare" ]
   ldscript = "${examples_plat_dir}/ldscripts/flash_rom.ld"
 
   ldflags = [ "-T" + rebase_path(ldscript, root_build_dir) ]
diff --git a/examples/lighting-app/bouffalolab/bl602/CHIPProjectConfig.h b/examples/lighting-app/bouffalolab/bl602/CHIPProjectConfig.h
index 22befed..9e9934c 100644
--- a/examples/lighting-app/bouffalolab/bl602/CHIPProjectConfig.h
+++ b/examples/lighting-app/bouffalolab/bl602/CHIPProjectConfig.h
@@ -144,3 +144,5 @@
 #define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512)
 
 #define CHIP_DEVICE_CONFIG_ENABLE_EXTENDED_DISCOVERY 1
+
+#define CHIP_SYSTEM_CRYPTO_HEADER_RESERVE_SIZE 128
diff --git a/examples/lighting-app/bouffalolab/bl602/args.gni b/examples/lighting-app/bouffalolab/bl602/args.gni
index 464b0c6..1a7e2dd 100644
--- a/examples/lighting-app/bouffalolab/bl602/args.gni
+++ b/examples/lighting-app/bouffalolab/bl602/args.gni
@@ -17,7 +17,7 @@
 import("${chip_root}/config/standalone/args.gni")
 import("${chip_root}/src/platform/bouffalolab/BL602/args.gni")
 
-bl602_sdk_target = get_label_info(":sdk", "label_no_toolchain")
+bl_iot_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
 pw_log_BACKEND = "${chip_root}/src/lib/support/pw_log_chip"
 pw_assert_BACKEND = "$dir_pw_assert_log"
diff --git a/examples/lighting-app/bouffalolab/bl702/BUILD.gn b/examples/lighting-app/bouffalolab/bl702/BUILD.gn
index 5872505..6582267 100644
--- a/examples/lighting-app/bouffalolab/bl702/BUILD.gn
+++ b/examples/lighting-app/bouffalolab/bl702/BUILD.gn
@@ -16,8 +16,8 @@
 import("//build_overrides/build.gni")
 import("//build_overrides/chip.gni")
 
-import("${bl702_sdk_build_root}/bl702_executable.gni")
-import("${bl702_sdk_build_root}/bl702_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/bl702/bl_iot_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/common/bouffalolab_executable.gni")
 import("${build_root}/config/defaults.gni")
 import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
 import("${chip_root}/src/platform/device.gni")
@@ -54,7 +54,7 @@
   baudrate = 2000000
 }
 
-bl702_sdk("sdk") {
+bl_iot_sdk("sdk") {
   include_dirs = [
     "${example_dir}",
     "${example_common_dir}",
@@ -88,8 +88,9 @@
   }
 }
 
-bl702_executable("lighting_app") {
+bouffalolab_executable("lighting_app") {
   output_name = "chip-bl702-lighting-example.out"
+  bl_plat_name = "bl702"
 
   defines = [
     "APP_TASK_STACK_SIZE=2044",
diff --git a/examples/lighting-app/bouffalolab/bl702/args.gni b/examples/lighting-app/bouffalolab/bl702/args.gni
index ecfb742..c76c3d0 100644
--- a/examples/lighting-app/bouffalolab/bl702/args.gni
+++ b/examples/lighting-app/bouffalolab/bl702/args.gni
@@ -17,7 +17,7 @@
 import("${chip_root}/config/standalone/args.gni")
 import("${chip_root}/src/platform/bouffalolab/BL702/args.gni")
 
-bl702_sdk_target = get_label_info(":sdk", "label_no_toolchain")
+bl_iot_sdk_target = get_label_info(":sdk", "label_no_toolchain")
 
 pw_log_BACKEND = "${chip_root}/src/lib/support/pw_log_chip"
 pw_assert_BACKEND = "$dir_pw_assert_log"
diff --git a/examples/lighting-app/bouffalolab/common/AppTask.cpp b/examples/lighting-app/bouffalolab/common/AppTask.cpp
index cae6be5..2fe2a40 100644
--- a/examples/lighting-app/bouffalolab/common/AppTask.cpp
+++ b/examples/lighting-app/bouffalolab/common/AppTask.cpp
@@ -417,7 +417,8 @@
 #if CHIP_DEVICE_CONFIG_ENABLE_WIFI
     case DeviceEventType::kWiFiConnectivityChange:
 
-        ChipLogProgress(NotSpecified, "Wi-Fi state changed\r\n", ConnectivityMgr().IsWiFiStationConnected());
+        ChipLogProgress(NotSpecified, "Wi-Fi state changed to %s.\r\n",
+                        ConnectivityMgr().IsWiFiStationConnected() ? "connected" : "disconnected");
 
         chip::app::DnssdServer::Instance().StartServer();
         NetworkCommissioning::BLWiFiDriver::GetInstance().SaveConfiguration();
diff --git a/examples/platform/bouffalolab/bl602/BUILD.gn b/examples/platform/bouffalolab/bl602/BUILD.gn
index d6ca003..8e85778 100644
--- a/examples/platform/bouffalolab/bl602/BUILD.gn
+++ b/examples/platform/bouffalolab/bl602/BUILD.gn
@@ -15,7 +15,7 @@
 import("//build_overrides/bouffalolab_iot_sdk.gni")
 import("//build_overrides/chip.gni")
 
-import("${bl602_sdk_build_root}/bl602_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/bl602/bl_iot_sdk.gni")
 
 config("chip_examples_project_config") {
   include_dirs = [ "project_include" ]
diff --git a/examples/platform/bouffalolab/bl602/FreeRTOSConfig.h b/examples/platform/bouffalolab/bl602/FreeRTOSConfig.h
index 7d85531..9637964 100644
--- a/examples/platform/bouffalolab/bl602/FreeRTOSConfig.h
+++ b/examples/platform/bouffalolab/bl602/FreeRTOSConfig.h
@@ -97,11 +97,8 @@
     1 tab == 4 spaces!
 */
 
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
 
 #include "platform.h"
 #include <stdio.h>
@@ -118,116 +115,101 @@
  * See http://www.freertos.org/a00110.html.
  *----------------------------------------------------------*/
 
-/* Tickless mode is not used. */
+#define configSUPPORT_STATIC_ALLOCATION 1
 
-/* Some of the standard demo test tasks assume a tick rate of 1KHz, even
-though that is faster than would normally be warranted by a real
-application. */
-#define configTICK_RATE_HZ (1000)
+#define configCLINT_BASE_ADDRESS CLINT_CTRL_ADDR
+#define configCLIC_TIMER_ENABLE_ADDRESS (0x02800407)
+#define configUSE_PREEMPTION 1
+#define configUSE_IDLE_HOOK 1
+#define configUSE_TICK_HOOK 0
+#ifndef configUSE_TICKLESS_IDLE
+// Maybe Compile flags is passed by command line
+#define configUSE_TICKLESS_IDLE 1
+#endif
+#define configCPU_CLOCK_HZ (10 * 1000 * 1000) /*QEMU*/
+#define configTICK_RATE_HZ ((TickType_t) 1000)
+#define configMAX_PRIORITIES (32)
+/* Creating idle task */
+/* -1  -> prvInitialiseNewTask: (subtract 1 to get top of stack) pxTopOfStack = &( pxNewTCB->pxStack[ ulStackDepth - ( uint32_t ) 1
+ * ] ); */
+/* -1  -> prvInitialiseNewTask: (subtract 1 in case not matching 8 bytes alignment) pxTopOfStack = ( StackType_t * ) ( ( (
+ * portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); */
+/* Running idle task */
+/* -12 -> prvIdleTask: addi sp, sp, -48 */
+/* -16 -> prvIdleTask.xTaskResumeAll: addi sp, sp, -64 */
+/* Here comes an interrupt after prvIdleTask.xTaskResumeAll.vTaskExitCritical */
+/* -30 -> freertos_risc_v_trap_handler: addi sp, sp, -portCONTEXT_SIZE */
+/* -34 -> portasmSAVE_ADDITIONAL_REGISTERS: addi sp, sp, -(portasmADDITIONAL_CONTEXT_SIZE * portWORD_SIZE) */
+/* Checking for stack overflow */
+/*  4  -> taskCHECK_FOR_STACK_OVERFLOW: if( ( pulStack[ 0 ] != ulCheckValue ) || ( pulStack[ 1 ] != ulCheckValue ) || ( pulStack[ 2
+ * ] != ulCheckValue ) || ( pulStack[ 3 ] != ulCheckValue ) ) */
+#define configMINIMAL_STACK_SIZE ((unsigned short) 114) /* SIZE-1-1-12-16-30-34>=4 */
+#define configTOTAL_HEAP_SIZE ((size_t) 14100)
+#define configMAX_TASK_NAME_LEN (16)
+#define configUSE_TRACE_FACILITY 1
+#define configUSE_STATS_FORMATTING_FUNCTIONS 1
+#define configUSE_16_BIT_TICKS 0
+#define configIDLE_SHOULD_YIELD 1
+#define configUSE_MUTEXES 1
+#define configQUEUE_REGISTRY_SIZE 8
+#define configCHECK_FOR_STACK_OVERFLOW 2
+#define configUSE_RECURSIVE_MUTEXES 1
+#define configUSE_MALLOC_FAILED_HOOK 1
+#define configUSE_APPLICATION_TASK_TAG 0
+#define configUSE_COUNTING_SEMAPHORES 1
+#define configGENERATE_RUN_TIME_STATS 0
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
 
-/* The full demo always has tasks to run so the tick will never be turned
-off.  The blinky demo will use the default tickless idle implementation to
-turn the tick off. */
-#define configUSE_TICKLESS_IDLE (0)
-
-/* Hook function related definitions. */
-#define configUSE_TICK_HOOK (0)
-#define configCHECK_FOR_STACK_OVERFLOW (2)
-#define configUSE_MALLOC_FAILED_HOOK (1)
-#define configUSE_IDLE_HOOK (0)
-
-#define configENERGY_MODE (sleepEM1)
-
-/* Main functions*/
-/* Run time stats gathering related definitions. */
-#define configGENERATE_RUN_TIME_STATS (0)
-
-/* Co-routine related definitions. */
-#define configUSE_CO_ROUTINES (0)
+/* Co-routine definitions. */
+#define configUSE_CO_ROUTINES 0
 #define configMAX_CO_ROUTINE_PRIORITIES (2)
 
-/* Software timer related definitions. */
-#define configUSE_TIMERS (1)
-#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 1) /* Highest priority */
-#define configTIMER_QUEUE_LENGTH (4)
+/* Software timer definitions. */
+#define configUSE_TIMERS 1
+#define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 1)
+#define configTIMER_QUEUE_LENGTH 4
 #define configTIMER_TASK_STACK_DEPTH (400)
 
-/* Cortex-M specific definitions. */
-#ifdef __NVIC_PRIO_BITS
-/* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
-#define configPRIO_BITS (__NVIC_PRIO_BITS)
-#else
-#define configPRIO_BITS 3 /* 7 priority levels */
+/* Task priorities.  Allow these to be overridden. */
+#ifndef uartPRIMARY_PRIORITY
+#define uartPRIMARY_PRIORITY (configMAX_PRIORITIES - 3)
 #endif
 
-/* The lowest interrupt priority that can be used in a call to a "set priority"
-function. */
-#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY (0x07)
-
-/* The highest interrupt priority that can be used by any interrupt service
-routine that makes calls to interrupt safe FreeRTOS API functions.  DO NOT CALL
-INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
-PRIORITY THAN THIS! (higher priorities are lower numeric values. */
-#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY (0x03)
-
-/* Interrupt priorities used by the kernel port layer itself.  These are generic
-to all Cortex-M ports, and do not rely on any particular library functions. */
-#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
-/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!
-See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
-#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
-
-/* FreeRTOS MPU specific definitions. */
-#define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS (0)
-
-#define configCPU_CLOCK_HZ (10 * 1000 * 1000)
-#define configUSE_PREEMPTION (1)
-#define configUSE_TIME_SLICING (1)
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION (1)
-#define configUSE_TICKLESS_IDLE_SIMPLE_DEBUG (1) /* See into vPortSuppressTicksAndSleep source code for explanation */
-#define configMAX_PRIORITIES (32)
-#define configMINIMAL_STACK_SIZE ((unsigned short) 112) /* Number of words to use for Idle and Timer stacks */
-#define configMAX_TASK_NAME_LEN (16)
-#define configUSE_16_BIT_TICKS (0)
-#define configIDLE_SHOULD_YIELD (1)
-#define configUSE_MUTEXES (1)
-#define configUSE_RECURSIVE_MUTEXES (1)
-#define configUSE_COUNTING_SEMAPHORES (1)
-#define configQUEUE_REGISTRY_SIZE (8)
-// #define configUSE_QUEUE_SETS (0)
-// #define configUSE_NEWLIB_REENTRANT (0)
-#define configENABLE_BACKWARD_COMPATIBILITY (1)
-#define configSUPPORT_STATIC_ALLOCATION (1)
-
 /* Optional functions - most linkers will remove unused functions anyway. */
-#define INCLUDE_vTaskPrioritySet (1)
-#define INCLUDE_uxTaskPriorityGet (1)
-#define INCLUDE_vTaskDelete (1)
-#define INCLUDE_vTaskSuspend (1)
-// #define INCLUDE_xResumeFromISR (1)
-#define INCLUDE_vTaskDelayUntil (1)
-#define INCLUDE_vTaskDelay (1)
-#define INCLUDE_xTaskGetSchedulerState (0)
-#define INCLUDE_xTaskGetCurrentTaskHandle (0)
-#define INCLUDE_uxTaskGetStackHighWaterMark (1)
-#define INCLUDE_xTaskGetIdleTaskHandle (0)
-// #define INCLUDE_xTimerGetTimerDaemonTaskHandle (1)
-// #define INCLUDE_pcTaskGetTaskName (1)
-#define INCLUDE_eTaskGetState (1)
-// #define INCLUDE_xEventGroupSetBitFromISR (1)
-#define INCLUDE_xTimerPendFunctionCall (1)
+#define INCLUDE_vTaskPrioritySet 1
+#define INCLUDE_uxTaskPriorityGet 1
+#define INCLUDE_vTaskDelete 1
+#define INCLUDE_vTaskCleanUpResources 1
+#define INCLUDE_vTaskSuspend 1
+#define INCLUDE_vTaskDelayUntil 1
+#define INCLUDE_vTaskDelay 1
+#define INCLUDE_eTaskGetState 1
+#define INCLUDE_xTimerPendFunctionCall 1
+#define INCLUDE_xTimerPendFunctionCall 1
+#define INCLUDE_uxTaskGetStackHighWaterMark 1
 
+/* Overwrite some of the stack sizes allocated to various test and demo tasks.
+Like all task stack sizes, the value is the number of words, not bytes. */
+#define bktBLOCK_TIME_TASK_STACK_SIZE 100
+#define notifyNOTIFIED_TASK_STACK_SIZE 120
+#define priSUSPENDED_RX_TASK_STACK_SIZE 90
+#define tmrTIMER_TEST_TASK_STACK_SIZE 100
+#define ebRENDESVOUS_TEST_TASK_STACK_SIZE 100
+#define ebEVENT_GROUP_SET_BITS_TEST_TASK_STACK_SIZE 115
+#define genqMUTEX_TEST_TASK_STACK_SIZE 90
+#define genqGENERIC_QUEUE_TEST_TASK_STACK_SIZE 100
+#define recmuRECURSIVE_MUTEX_TEST_TASK_STACK_SIZE 90
+
+extern void vAssertCalled(void);
 /* Stop if an assertion fails. */
 #define configASSERT(x)                                                                                                            \
     if ((x) == 0)                                                                                                                  \
     vAssertCalled()
 
-/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS
-standard names. */
-// #define vPortSVCHandler SVC_Handler
-// #define xPortPendSVHandler PendSV_Handler
-#define xPortSysTickHandler SysTick_Handler
+#if (configUSE_TICKLESS_IDLE != 0)
+#include "portmacro.h"
+extern void vApplicationSleep(TickType_t xExpectedIdleTime);
+#define portSUPPRESS_TICKS_AND_SLEEP(xExpectedIdleTime) vApplicationSleep(xExpectedIdleTime)
+#endif
 
-#ifdef __cplusplus
-}
 #endif
diff --git a/examples/platform/bouffalolab/bl602/route_hook/bl_route_hook.c b/examples/platform/bouffalolab/bl602/route_hook/bl_route_hook.c
index 230ccca..bcdbcc4 100644
--- a/examples/platform/bouffalolab/bl602/route_hook/bl_route_hook.c
+++ b/examples/platform/bouffalolab/bl602/route_hook/bl_route_hook.c
@@ -12,6 +12,7 @@
 #include "lwip/prot/ip6.h"
 #include "lwip/prot/nd6.h"
 #include "lwip/raw.h"
+#include <wifi_mgmr_ext.h>
 
 typedef struct bl_route_hook_t
 {
diff --git a/examples/platform/bouffalolab/bl702/BUILD.gn b/examples/platform/bouffalolab/bl702/BUILD.gn
index 8dc352b..df3ea0e 100644
--- a/examples/platform/bouffalolab/bl702/BUILD.gn
+++ b/examples/platform/bouffalolab/bl702/BUILD.gn
@@ -15,7 +15,7 @@
 import("//build_overrides/bouffalolab_iot_sdk.gni")
 import("//build_overrides/chip.gni")
 
-import("${bl702_sdk_build_root}/bl702_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/bl702/bl_iot_sdk.gni")
 
 config("chip_examples_project_config") {
   include_dirs = [ "project_include" ]
diff --git a/examples/platform/bouffalolab/common/plat/main.cpp b/examples/platform/bouffalolab/common/plat/main.cpp
index 29090dd..8dad0e2 100644
--- a/examples/platform/bouffalolab/common/plat/main.cpp
+++ b/examples/platform/bouffalolab/common/plat/main.cpp
@@ -31,9 +31,10 @@
 #include <lib/support/CHIPMem.h>
 #include <lib/support/CHIPPlatformMemory.h>
 
-#include <blog.h>
 extern "C" {
 
+#include <blog.h>
+
 #ifdef BL702_ENABLE
 #include <bl702_glb.h>
 #include <bl702_hbn.h>
diff --git a/scripts/build/builders/bouffalolab.py b/scripts/build/builders/bouffalolab.py
index ed22de8..52e1e4e 100644
--- a/scripts/build/builders/bouffalolab.py
+++ b/scripts/build/builders/bouffalolab.py
@@ -89,7 +89,8 @@
 
         self.argsOpt = []
         self.chip_name = bouffalo_chip
-        toolchain = os.path.join(root, '../../examples/platform/bouffalolab/common/toolchain')
+
+        toolchain = os.path.join(root, os.path.split(os.path.realpath(__file__))[0], '../../../config/bouffalolab/toolchain')
         toolchain = 'custom_toolchain="{}:riscv_gcc"'.format(toolchain)
         if toolchain:
             self.argsOpt.append(toolchain)
diff --git a/scripts/examples/gn_bouffalolab_example.sh b/scripts/examples/gn_bouffalolab_example.sh
index 7c40790..2b3725e 100755
--- a/scripts/examples/gn_bouffalolab_example.sh
+++ b/scripts/examples/gn_bouffalolab_example.sh
@@ -90,7 +90,7 @@
     baudrate=2000000
     optArgs=""
 
-    optArgs=custom_toolchain=\"$MATTER_ROOT/examples/platform/bouffalolab/common/toolchain:riscv_gcc\"
+    optArgs=custom_toolchain=\"$MATTER_ROOT/config/bouffalolab/toolchain:riscv_gcc\"
 
     shift
     shift
diff --git a/src/lwip/BUILD.gn b/src/lwip/BUILD.gn
index 54f6d44..22f56ff 100644
--- a/src/lwip/BUILD.gn
+++ b/src/lwip/BUILD.gn
@@ -107,11 +107,11 @@
     public_configs += [ "${psoc6_sdk_build_root}:psoc6_sdk_config" ]
   }
 } else if (lwip_platform == "bl702_lwip") {
-  import("//build_overrides/bl702_sdk.gni")
+  import("${bouffalolab_iot_sdk_build_root}/bl702/bl_iot_sdk.gni")
 
   group("lwip") {
     public_deps = [ ":lwip_buildconfig" ]
-    public_deps += [ "${bl702_sdk_build_root}:bl702_sdk" ]
+    public_deps += [ "${bouffalolab_iot_sdk_build_root}/bl702:bl_iot_sdk" ]
   }
 
   group("all") {
@@ -142,7 +142,7 @@
 } else if (lwip_platform == "bl602") {
   group("lwip") {
     public_deps = [ ":lwip_buildconfig" ]
-    public_deps += [ "${bl602_sdk_build_root}:bl602_sdk" ]
+    public_deps += [ "${bouffalolab_iot_sdk_build_root}/bl602:bl_iot_sdk" ]
   }
 
   group("all") {
@@ -195,9 +195,9 @@
     } else if (lwip_platform == "cyw30739") {
       public_deps += [ "${cyw30739_sdk_build_root}:cyw30739_sdk" ]
     } else if (lwip_platform == "bl602") {
-      public_deps += [ "${bl602_sdk_build_root}:bl602_sdk" ]
+      public_deps += [ "${bouffalolab_iot_sdk_build_root}/bl602:bl602_sdk" ]
     } else if (lwip_platform == "bl702") {
-      public_deps += [ "${bl702_sdk_build_root}:bl702_sdk" ]
+      public_deps += [ "${bouffalolab_iot_sdk_build_root}/bl702:bl_iot_sdk" ]
     } else if (lwip_platform == "mt793x") {
       public_deps += [ "${mt793x_sdk_build_root}:mt793x_sdk" ]
     }
diff --git a/src/platform/bouffalolab/BL602/BL602Config.cpp b/src/platform/bouffalolab/BL602/BL602Config.cpp
index 6f0d93f..140b52d 100644
--- a/src/platform/bouffalolab/BL602/BL602Config.cpp
+++ b/src/platform/bouffalolab/BL602/BL602Config.cpp
@@ -33,7 +33,6 @@
 #include <lib/support/CodeUtils.h>
 #include <lib/support/logging/CHIPLogging.h>
 
-#include <blog.h>
 #include <easyflash.h>
 #include <utils_log.h>
 
@@ -82,97 +81,69 @@
 CHIP_ERROR BL602Config::ReadConfigValue(Key key, bool & val)
 {
     CHIP_ERROR err = CHIP_NO_ERROR;
-    bool tmpVal;
-    size_t ret, valLen;
+    size_t valLen  = 0;
 
-    ret = ef_get_env_blob(key.name, &tmpVal, sizeof(tmpVal), &valLen);
-    if (ret <= 0)
+    ef_get_env_blob(key.name, &val, 1, &valLen);
+    if (0 == valLen)
     {
         err = CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND;
     }
-    SuccessOrExit(err);
 
-    val = tmpVal;
-
-exit:
     return err;
 }
 
 CHIP_ERROR BL602Config::ReadConfigValue(Key key, uint32_t & val)
 {
     CHIP_ERROR err = CHIP_NO_ERROR;
-    uint32_t tmpVal;
-    size_t ret, valLen;
+    size_t valLen  = 0;
 
-    ret = ef_get_env_blob(key.name, &tmpVal, sizeof(tmpVal), &valLen);
-    if (ret <= 0)
+    ef_get_env_blob(key.name, &val, sizeof(val), &valLen);
+    if (0 == valLen)
     {
         err = CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND;
     }
-    SuccessOrExit(err);
 
-    val = tmpVal;
-
-exit:
     return err;
 }
 
 CHIP_ERROR BL602Config::ReadConfigValue(Key key, uint64_t & val)
 {
     CHIP_ERROR err = CHIP_NO_ERROR;
-    uint64_t tmpVal;
-    size_t ret, valLen;
+    size_t valLen  = 0;
 
-    ret = ef_get_env_blob(key.name, &tmpVal, sizeof(tmpVal), &valLen);
-    if (ret <= 0)
+    ef_get_env_blob(key.name, &val, sizeof(val), &valLen);
+    if (0 == valLen)
     {
         err = CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND;
     }
-    SuccessOrExit(err);
 
-    val = tmpVal;
-exit:
     return err;
 }
 
 CHIP_ERROR BL602Config::ReadConfigValueStr(Key key, char * buf, size_t bufSize, size_t & outLen)
 {
-    CHIP_ERROR err       = CHIP_NO_ERROR;
-    char tmpVal[bufSize] = { 0 };
-    size_t ret;
+    CHIP_ERROR err = CHIP_NO_ERROR;
 
-    ret = ef_get_env_blob(key.name, tmpVal, sizeof(tmpVal) - 1, NULL);
-    if ('\0' == tmpVal[0])
+    outLen = 0;
+    ef_get_env_blob(key.name, buf, bufSize, &outLen);
+    if (0 == outLen)
     {
         err = CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND;
     }
-    SuccessOrExit(err);
 
-    outLen = ret;
-    Platform::CopyString(buf, outLen, tmpVal);
-
-exit:
     return err;
 }
 
 CHIP_ERROR BL602Config::ReadConfigValueBin(Key key, uint8_t * buf, size_t bufSize, size_t & outLen)
 {
-    CHIP_ERROR err       = CHIP_NO_ERROR;
-    char tmpVal[bufSize] = { 0 };
-    size_t ret;
-    size_t savedLen = 0;
+    CHIP_ERROR err = CHIP_NO_ERROR;
 
-    ret = ef_get_env_blob(key.name, tmpVal, sizeof(tmpVal), &savedLen);
-    if (0 == savedLen)
+    ef_get_env_blob(key.name, buf, bufSize, &outLen);
+    if (0 == outLen)
     {
         err = CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND;
     }
-    SuccessOrExit(err);
 
-    outLen = ret;
-    memcpy(buf, tmpVal, outLen);
-
-exit:
     return err;
 }
 
diff --git a/src/platform/bouffalolab/BL602/CHIPMem-Platform.cpp b/src/platform/bouffalolab/BL602/CHIPMem-Platform.cpp
index 5f1f07f..3b9b274 100644
--- a/src/platform/bouffalolab/BL602/CHIPMem-Platform.cpp
+++ b/src/platform/bouffalolab/BL602/CHIPMem-Platform.cpp
@@ -52,10 +52,10 @@
 #include <cstdio>
 #include <cstring>
 #include <stdlib.h>
+#include <utils_log.h>
 
 extern "C" {
 #include <bflb_platform.h>
-#include <blog.h>
 };
 
 #if CHIP_CONFIG_MEMORY_MGMT_PLATFORM
diff --git a/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.cpp b/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.cpp
index f207e29..5c53153 100644
--- a/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.cpp
+++ b/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.cpp
@@ -32,9 +32,9 @@
 #include <platform/internal/GenericConfigurationManagerImpl.ipp>
 
 extern "C" {
-#include <bl602_hal/hal_sys.h>
 #include <bl_efuse.h>
 #include <easyflash.h>
+#include <hal_sys.h>
 }
 
 namespace chip {
@@ -213,8 +213,6 @@
 
 void ConfigurationManagerImpl::DoFactoryReset(intptr_t arg)
 {
-    CHIP_ERROR err;
-
     ChipLogProgress(DeviceLayer, "Performing factory reset");
     ef_env_set_default();
     ChipLogProgress(DeviceLayer, "System restarting");
diff --git a/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.h b/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.h
index e4d2317..0183da4 100644
--- a/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.h
+++ b/src/platform/bouffalolab/BL602/ConfigurationManagerImpl.h
@@ -33,7 +33,6 @@
 #include <platform/internal/GenericConnectivityManagerImpl_NoBLE.h>
 #endif
 
-#include <blog.h>
 #include <platform/bouffalolab/BL602/BL602Config.h>
 
 namespace chip {
diff --git a/src/platform/bouffalolab/BL602/ConnectivityManagerImpl.cpp b/src/platform/bouffalolab/BL602/ConnectivityManagerImpl.cpp
index 02d296c..56e3ebf 100644
--- a/src/platform/bouffalolab/BL602/ConnectivityManagerImpl.cpp
+++ b/src/platform/bouffalolab/BL602/ConnectivityManagerImpl.cpp
@@ -69,7 +69,7 @@
 namespace DeviceLayer {
 
 ConnectivityManagerImpl ConnectivityManagerImpl::sInstance;
-static ConnectivityManager::WiFiStationState ConnectivityManagerImpl::mWiFiStationState =
+ConnectivityManager::WiFiStationState ConnectivityManagerImpl::mWiFiStationState =
     ConnectivityManager::kWiFiStationState_NotConnected;
 
 void ConnectivityManagerImpl::WifiStationStateChange(void)
@@ -86,8 +86,6 @@
 
 void ConnectivityManagerImpl::DriveStationState()
 {
-
-exit:
     return;
 }
 
@@ -101,7 +99,7 @@
     CHIP_ERROR err = CHIP_NO_ERROR;
 
     DeviceLayer::SystemLayer().ScheduleWork(DriveStationState, NULL);
-exit:
+
     return err;
 }
 
diff --git a/src/platform/bouffalolab/BL602/DiagnosticDataProviderImpl.cpp b/src/platform/bouffalolab/BL602/DiagnosticDataProviderImpl.cpp
index e260e75..9c97207 100644
--- a/src/platform/bouffalolab/BL602/DiagnosticDataProviderImpl.cpp
+++ b/src/platform/bouffalolab/BL602/DiagnosticDataProviderImpl.cpp
@@ -30,11 +30,11 @@
 #include <lwip/tcpip.h>
 
 extern "C" {
-#include <bl602_hal/bl_sys.h>
 #include <bl60x_fw_api.h>
+#include <bl60x_wifi_driver/bl_main.h>
+#include <bl60x_wifi_driver/wifi_mgmr.h>
 #include <bl_efuse.h>
-#include <bl_main.h>
-#include <wifi_mgmr.h>
+#include <bl_sys.h>
 #include <wifi_mgmr_ext.h>
 }
 
@@ -248,7 +248,7 @@
 
 CHIP_ERROR DiagnosticDataProviderImpl::GetWiFiSecurityType(uint8_t & securityType)
 {
-    int authmode;
+    // int authmode;
 
     // authmode     = mgmr_get_security_type();
     // securityType = MapAuthModeToSecurityType(authmode);
diff --git a/src/platform/bouffalolab/BL602/KeyValueStoreManagerImpl.cpp b/src/platform/bouffalolab/BL602/KeyValueStoreManagerImpl.cpp
index a7036b0..dc7aee8 100644
--- a/src/platform/bouffalolab/BL602/KeyValueStoreManagerImpl.cpp
+++ b/src/platform/bouffalolab/BL602/KeyValueStoreManagerImpl.cpp
@@ -47,7 +47,7 @@
     size_t outlen         = 0;
     BL602Config::Key ckey = { key };
 
-    err = BL602Config::ReadConfigValueBin(ckey, value, value_size, outlen);
+    err = BL602Config::ReadConfigValueBin(ckey, (uint8_t *) value, value_size, outlen);
     if (CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND == err)
     {
         err = CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND;
@@ -69,7 +69,7 @@
     CHIP_ERROR err        = CHIP_NO_ERROR;
     BL602Config::Key ckey = { key };
 
-    err = BL602Config::WriteConfigValueBin(ckey, value, value_size);
+    err = BL602Config::WriteConfigValueBin(ckey, (uint8_t *) value, value_size);
     if (CHIP_DEVICE_ERROR_CONFIG_NOT_FOUND == err)
     {
         err = CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND;
diff --git a/src/platform/bouffalolab/BL602/Logging.cpp b/src/platform/bouffalolab/BL602/Logging.cpp
index 872fd3c..33397bd 100644
--- a/src/platform/bouffalolab/BL602/Logging.cpp
+++ b/src/platform/bouffalolab/BL602/Logging.cpp
@@ -6,15 +6,7 @@
 #include <lib/support/logging/Constants.h>
 
 #include <stdio.h>
-
-// #ifdef LOG_LOCAL_LEVEL
-// #undef LOG_LOCAL_LEVEL
-// #endif
-// #define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE
-
-extern "C" {
-#include <blog.h>
-}
+#include <utils_log.h>
 
 #ifdef PW_RPC_ENABLED
 #include "PigweedLogger.h"
diff --git a/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.cpp b/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.cpp
index b99b4d2..7cb2bfa 100644
--- a/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.cpp
+++ b/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.cpp
@@ -16,14 +16,14 @@
  */
 
 #include <aos/yloop.h>
+#include <bl60x_wifi_driver/wifi_mgmr.h>
+#include <bl60x_wifi_driver/wifi_mgmr_api.h>
 #include <hal_wifi.h>
 #include <lib/support/CodeUtils.h>
 #include <lib/support/SafeInt.h>
+#include <lwip/tcpip.h>
 #include <platform/CHIPDeviceLayer.h>
 #include <platform/bouffalolab/BL602/NetworkCommissioningDriver.h>
-#include <tcpip.h>
-#include <wifi_mgmr.h>
-#include <wifi_mgmr_api.h>
 #include <wifi_mgmr_ext.h>
 #include <wifi_mgmr_portable.h>
 
@@ -47,7 +47,7 @@
 constexpr char blWiFiSSIDKeyName[]        = "bl-wifi-ssid";
 constexpr char blWiFiCredentialsKeyName[] = "bl-wifi-pass";
 
-static uint8_t WiFiSSIDStr[DeviceLayer::Internal::kMaxWiFiSSIDLength];
+static char WiFiSSIDStr[DeviceLayer::Internal::kMaxWiFiSSIDLength];
 static uint8_t scan_type = 0;
 } // namespace
 
@@ -184,7 +184,7 @@
     memcpy(passwd, key, keyLen);
     wifi_interface_t wifi_interface;
     wifi_interface = wifi_mgmr_sta_enable();
-    wifi_mgmr_sta_connect(wifi_interface, wifi_ssid, passwd, NULL, NULL, 0, 0);
+    wifi_mgmr_sta_connect(&wifi_interface, wifi_ssid, passwd, NULL, NULL, 0, 0);
 
     ReturnErrorOnFailure(ConnectivityMgr().SetWiFiStationMode(ConnectivityManager::kWiFiStationMode_Disabled));
 
@@ -221,7 +221,6 @@
 {
     CHIP_ERROR err          = CHIP_NO_ERROR;
     Status networkingStatus = Status::kSuccess;
-    static int save         = 0;
 
     VerifyOrExit(NetworkMatch(mStagingNetwork, networkId), networkingStatus = Status::kNetworkIDNotFound);
     VerifyOrExit(mpConnectCallback == nullptr, networkingStatus = Status::kUnknownError);
diff --git a/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.h b/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.h
index 7009029..fc08f77 100644
--- a/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.h
+++ b/src/platform/bouffalolab/BL602/NetworkCommissioningDriver.h
@@ -16,8 +16,8 @@
  */
 
 #pragma once
+#include <bl60x_wifi_driver/wifi_mgmr.h>
 #include <platform/NetworkCommissioning.h>
-#include <wifi_mgmr.h>
 
 namespace chip {
 namespace DeviceLayer {
diff --git a/src/platform/bouffalolab/BL602/NetworkCommissioningWiFiDriver.cpp b/src/platform/bouffalolab/BL602/NetworkCommissioningWiFiDriver.cpp
index c9a35fe..c469c5a 100644
--- a/src/platform/bouffalolab/BL602/NetworkCommissioningWiFiDriver.cpp
+++ b/src/platform/bouffalolab/BL602/NetworkCommissioningWiFiDriver.cpp
@@ -19,9 +19,9 @@
 #include <hal_wifi.h>
 #include <lib/support/CodeUtils.h>
 #include <lib/support/SafeInt.h>
+#include <lwip/tcpip.h>
 #include <platform/CHIPDeviceLayer.h>
 #include <platform/bouffalolab/BL602/NetworkCommissioningDriver.h>
-#include <tcpip.h>
 #include <wifi_mgmr_ext.h>
 
 #include <limits>
diff --git a/src/platform/bouffalolab/BL602/PlatformManagerImpl.cpp b/src/platform/bouffalolab/BL602/PlatformManagerImpl.cpp
index 2d1e0dc..16fad1b 100644
--- a/src/platform/bouffalolab/BL602/PlatformManagerImpl.cpp
+++ b/src/platform/bouffalolab/BL602/PlatformManagerImpl.cpp
@@ -31,14 +31,14 @@
 #include <platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp>
 
 #include <lwip/tcpip.h>
+#include <utils_log.h>
 
 #include <aos/kernel.h>
-#include <aos/yloop.h>
 #include <bl60x_fw_api.h>
 #include <bl_sec.h>
 #include <event_device.h>
 #include <hal_wifi.h>
-#include <tcpip.h>
+#include <lwip/tcpip.h>
 #include <wifi_mgmr_ext.h>
 
 extern "C" {
@@ -165,13 +165,10 @@
             chip::to_underlying(chip::app::Clusters::WiFiNetworkDiagnostics::WiFiConnectionStatus::kConnected));
     }
 }
+typedef void (*aos_event_cb)(input_event_t * event, void * private_data);
 
 void OnWiFiPlatformEvent(input_event_t * event, void * private_data)
 {
-    static char * ssid;
-    static char * password;
-    int ret;
-
     switch (event->code)
     {
     case CODE_WIFI_ON_INIT_DONE: {
@@ -223,7 +220,7 @@
 
 CHIP_ERROR PlatformManagerImpl::_InitChipStack(void)
 {
-    CHIP_ERROR err;
+    CHIP_ERROR err                 = CHIP_NO_ERROR;
     static uint8_t stack_wifi_init = 0;
     TaskHandle_t backup_eventLoopTask;
 
@@ -238,7 +235,7 @@
     if (1 == stack_wifi_init)
     {
         log_error("Wi-Fi already initialized!\r\n");
-        return;
+        return CHIP_NO_ERROR;
     }
 
     hal_wifi_start_firmware_task();
@@ -255,6 +252,7 @@
     err                  = Internal::GenericPlatformManagerImpl_FreeRTOS<PlatformManagerImpl>::_InitChipStack();
     SuccessOrExit(err);
     Internal::GenericPlatformManagerImpl_FreeRTOS<PlatformManagerImpl>::mEventLoopTask = backup_eventLoopTask;
+
 exit:
     return err;
 }
diff --git a/src/platform/bouffalolab/BL602/PlatformManagerImpl.h b/src/platform/bouffalolab/BL602/PlatformManagerImpl.h
index f515560..861e446 100644
--- a/src/platform/bouffalolab/BL602/PlatformManagerImpl.h
+++ b/src/platform/bouffalolab/BL602/PlatformManagerImpl.h
@@ -24,20 +24,12 @@
 
 #pragma once
 
+#include <aos/yloop.h>
 #include <platform/internal/GenericPlatformManagerImpl_FreeRTOS.h>
 
 namespace chip {
 namespace DeviceLayer {
 
-typedef struct
-{
-    uint32_t time;
-    uint16_t type;
-    uint16_t code;
-    unsigned long value;
-    unsigned long extra;
-} input_event_t;
-
 /**
  * Concrete implementation of the PlatformManager singleton object for the BL602 platform.
  */
diff --git a/src/platform/bouffalolab/BL602/args.gni b/src/platform/bouffalolab/BL602/args.gni
index 3842909..0f32696 100644
--- a/src/platform/bouffalolab/BL602/args.gni
+++ b/src/platform/bouffalolab/BL602/args.gni
@@ -16,9 +16,9 @@
 import("//build_overrides/chip.gni")
 import("${chip_root}/examples/platform/bouffalolab/bl602/args.gni")
 
-riscv_platform_config = "${bl602_sdk_build_root}/bl602_riscv.gni"
+riscv_platform_config = "${bouffalolab_iot_sdk_build_root}/common/rsicv.gni"
 
-mbedtls_target = "${bl602_sdk_build_root}:bl602_sdk"
+mbedtls_target = "${bouffalolab_iot_sdk_build_root}/bl602:bl_iot_sdk"
 
 chip_device_platform = "bl602"
 
diff --git a/src/platform/bouffalolab/BL602/wifi_mgmr_portable.c b/src/platform/bouffalolab/BL602/wifi_mgmr_portable.c
index 244ad2c..c41c3bc 100644
--- a/src/platform/bouffalolab/BL602/wifi_mgmr_portable.c
+++ b/src/platform/bouffalolab/BL602/wifi_mgmr_portable.c
@@ -1,16 +1,10 @@
-#include "wifi_mgmr.h"
-#include "wifi_mgmr_api.h"
+#include <bl60x_wifi_driver/wifi_mgmr.h>
+#include <bl60x_wifi_driver/wifi_mgmr_api.h>
+#include <bl60x_wifi_driver/wifi_mgmr_profile.h>
 
-#include <blog.h>
 #include <stdint.h>
 #include <string.h>
 
-BLOG_DECLARE(tcal_power)
-BLOG_DECLARE(scan)
-#define USER_UNUSED(a) ((void) (a))
-
-#define DEBUG_HEADER "[WF][SM] "
-
 int wifi_mgmr_get_bssid(uint8_t * bssid)
 {
     int i;
@@ -20,7 +14,7 @@
         bssid[i] = wifiMgmr.wifi_mgmr_stat_info.bssid[i];
     }
 
-    return;
+    return 0;
 }
 
 int wifi_mgmr_get_scan_ap_num(void)
diff --git a/src/platform/bouffalolab/BL702/BUILD.gn b/src/platform/bouffalolab/BL702/BUILD.gn
index 310c721..7fde9b5 100644
--- a/src/platform/bouffalolab/BL702/BUILD.gn
+++ b/src/platform/bouffalolab/BL702/BUILD.gn
@@ -72,10 +72,10 @@
     # needed for MTD/FTD
 
     import("//build_overrides/bouffalolab_iot_sdk.gni")
-    import("${bl702_sdk_build_root}/bl702_sdk.gni")
+    import("${bouffalolab_iot_sdk_build_root}/bl702/bl_iot_sdk.gni")
     public_deps += [
-      "${bl702_sdk_build_root}:bl702_sdk",
-      "${bl702_sdk_build_root}:mbedtls",
+      "${bouffalolab_iot_sdk_build_root}/bl702:bl_iot_sdk",
+      "${bouffalolab_iot_sdk_build_root}/bl702:mbedtls",
     ]
 
     sources += [
diff --git a/src/platform/bouffalolab/BL702/Logging.cpp b/src/platform/bouffalolab/BL702/Logging.cpp
index 24193ea..5bb986d 100644
--- a/src/platform/bouffalolab/BL702/Logging.cpp
+++ b/src/platform/bouffalolab/BL702/Logging.cpp
@@ -14,22 +14,21 @@
  *    See the License for the specific language governing permissions and
  *    limitations under the License.
  */
+#include <stdio.h>
 
 #include <platform/logging/LogV.h>
 
 #include <lib/core/CHIPConfig.h>
 #include <lib/support/logging/Constants.h>
 
-#include <stdio.h>
-
-extern "C" {
-#include <blog.h>
-}
-
 #ifdef PW_RPC_ENABLED
 #include "PigweedLogger.h"
 #endif
 
+#include <FreeRTOS.h>
+#include <task.h>
+#include <utils_log.h>
+
 namespace chip {
 namespace Logging {
 namespace Platform {
diff --git a/src/platform/bouffalolab/BL702/ThreadStackManagerImpl.cpp b/src/platform/bouffalolab/BL702/ThreadStackManagerImpl.cpp
index be9d296..0fb93c7 100644
--- a/src/platform/bouffalolab/BL702/ThreadStackManagerImpl.cpp
+++ b/src/platform/bouffalolab/BL702/ThreadStackManagerImpl.cpp
@@ -49,8 +49,13 @@
     CHIP_ERROR err = CHIP_NO_ERROR;
 
     ot_alarmInit();
+#ifdef OT_THREAD_PORT_1_3
+    otRadio_opt_t opt;
+    opt.byte = 0;
+    ot_radioInit(opt);
+#else
     ot_radioInit();
-
+#endif
     // Initialize the generic implementation base classes.
     err = GenericThreadStackManagerImpl_FreeRTOS<ThreadStackManagerImpl>::DoInit();
     SuccessOrExit(err);
@@ -73,15 +78,18 @@
 
 using namespace ::chip::DeviceLayer;
 
-ot_system_event_t ot_system_event_var;
+ot_system_event_t ot_system_event_var = OT_SYSTEM_EVENT_NONE;
 
 void otSysProcessDrivers(otInstance * aInstance)
 {
+#ifdef OT_THREAD_PORT_1_3
+    ot_system_event_t sevent = otrGetNotifyEvent();
+#else
     ot_system_event_t sevent = OT_SYSTEM_EVENT_NONE;
-
     OT_GET_NOTIFY(sevent);
+#endif
+
     ot_alarmTask(sevent);
-    // ot_uartTask(sevent);
     ot_radioTask(sevent);
 }
 
@@ -117,3 +125,51 @@
 {
     free(aPtr);
 }
+
+#ifdef OT_THREAD_PORT_1_3
+extern "C" uint32_t otrEnterCrit(void)
+{
+    if (xPortIsInsideInterrupt())
+    {
+        return taskENTER_CRITICAL_FROM_ISR();
+    }
+    else
+    {
+        taskENTER_CRITICAL();
+        return 0;
+    }
+}
+
+extern "C" void otrExitCrit(uint32_t tag)
+{
+    if (xPortIsInsideInterrupt())
+    {
+        taskEXIT_CRITICAL_FROM_ISR(tag);
+    }
+    else
+    {
+        taskEXIT_CRITICAL();
+    }
+}
+
+extern "C" ot_system_event_t otrGetNotifyEvent(void)
+{
+    ot_system_event_t sevent = OT_SYSTEM_EVENT_NONE;
+
+    taskENTER_CRITICAL();
+    sevent              = ot_system_event_var;
+    ot_system_event_var = OT_SYSTEM_EVENT_NONE;
+    taskEXIT_CRITICAL();
+
+    return sevent;
+}
+
+extern "C" void otrNotifyEvent(ot_system_event_t sevent)
+{
+    uint32_t tag        = otrEnterCrit();
+    ot_system_event_var = (ot_system_event_t)(ot_system_event_var | sevent);
+    otrExitCrit(tag);
+
+    otSysEventSignalPending();
+}
+#endif
diff --git a/src/platform/bouffalolab/BL702/args.gni b/src/platform/bouffalolab/BL702/args.gni
index 77396b3..6d7aad9 100644
--- a/src/platform/bouffalolab/BL702/args.gni
+++ b/src/platform/bouffalolab/BL702/args.gni
@@ -20,9 +20,9 @@
 
 chip_device_platform = "bl702"
 
-riscv_platform_config = "${bl702_sdk_build_root}/bl702_riscv.gni"
+riscv_platform_config = "${bouffalolab_iot_sdk_build_root}/common/rsicv.gni"
 
-mbedtls_target = "${bl702_sdk_build_root}:mbedtls"
+mbedtls_target = "${bouffalolab_iot_sdk_build_root}/bl702:mbedtls"
 
 chip_inet_config_enable_ipv4 = false
 chip_inet_config_enable_tcp_endpoint = false
@@ -37,7 +37,8 @@
     "bl702-openthread-core-bl-config-check.h"
 openthread_project_include_dirs =
     [ "${chip_root}/src/platform/bouffalolab/BL702" ]
-openthread_external_platform = "${bl702_sdk_build_root}:bl702_sdk"
+openthread_external_platform =
+    "${bouffalolab_iot_sdk_build_root}/bl702:bl_iot_sdk"
 
 pw_build_LINK_DEPS = [
   "$dir_pw_assert:impl",
diff --git a/src/platform/bouffalolab/BL702/bl702Config.cpp b/src/platform/bouffalolab/BL702/bl702Config.cpp
index d824474..a036a92 100644
--- a/src/platform/bouffalolab/BL702/bl702Config.cpp
+++ b/src/platform/bouffalolab/BL702/bl702Config.cpp
@@ -25,7 +25,6 @@
 #include <lib/support/CodeUtils.h>
 #include <lib/support/logging/CHIPLogging.h>
 
-// #include <blog.h>
 #include <easyflash.h>
 
 namespace chip {
diff --git a/third_party/bouffalolab/bl602/BUILD.gn b/third_party/bouffalolab/bl602/BUILD.gn
index 82413e6..d358e39 100644
--- a/third_party/bouffalolab/bl602/BUILD.gn
+++ b/third_party/bouffalolab/bl602/BUILD.gn
@@ -13,15 +13,15 @@
 # limitations under the License.
 
 import("//build_overrides/bouffalolab_iot_sdk.gni")
-import("${bl602_sdk_build_root}/bl602_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/bl602/bl_iot_sdk.gni")
 
 declare_args() {
-  # Build target to use for bl602 SDK. Use this to set global SDK defines.
-  bl602_sdk_target = ""
+  # Build target to use for Bouffalo Lab IOT SDK. Use this to set global SDK defines.
+  bl_iot_sdk_target = ""
 }
 
-assert(bl602_sdk_target != "", "bl602_sdk_target must be specified")
+assert(bl_iot_sdk_target != "", "bl_iot_sdk_target must be specified")
 
-group("bl602_sdk") {
-  public_deps = [ bl602_sdk_target ]
+group("bl_iot_sdk") {
+  public_deps = [ bl_iot_sdk_target ]
 }
diff --git a/third_party/bouffalolab/bl602/bl602_board.gni b/third_party/bouffalolab/bl602/bl602_board.gni
deleted file mode 100644
index 123f6ca..0000000
--- a/third_party/bouffalolab/bl602/bl602_board.gni
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2021 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() {
-  # BL602 board used
-  bl602_board = "BL-HWC-G1"
-}
-
-if (bl602_board == "") {
-  #  bl602_board = getenv("BL602_BOARD")
-  bl602_board = "BL-HWC-G1"
-}
-
-assert(bl602_board != "", "bl602_board must be specified")
-
-board_defines = []
-#  bl602_mcu = ""
-#  enable_fem = true
-#  board_defines += [ "PAL_RTCC_CLOCK_LFRCO" ]
diff --git a/third_party/bouffalolab/bl602/bl602_riscv.gni b/third_party/bouffalolab/bl602/bl602_riscv.gni
deleted file mode 100644
index 3c72c6f..0000000
--- a/third_party/bouffalolab/bl602/bl602_riscv.gni
+++ /dev/null
@@ -1,21 +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.
-
-import("bl602_board.gni")
-
-riscv_arch = "rv32imfc"
-riscv_abi = "ilp32f"
-#  riscv_cpu = ""
-#  riscv_float_abi = "hard"
-#  riscv_fpu = ""
diff --git a/third_party/bouffalolab/bl602/bl602_sdk.gni b/third_party/bouffalolab/bl602/bl602_sdk.gni
deleted file mode 100644
index fb8a661..0000000
--- a/third_party/bouffalolab/bl602/bl602_sdk.gni
+++ /dev/null
@@ -1,636 +0,0 @@
-# Copyright (c) 2021 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.
-import("//args.gni")
-import("//build_overrides/bouffalolab_iot_sdk.gni")
-import("//build_overrides/chip.gni")
-import("//build_overrides/mbedtls.gni")
-import("${chip_root}/src/lib/lib.gni")
-
-import("bl602_board.gni")
-
-declare_args() {
-  # Location of the bl602 SDK.
-  bl602_sdk_root = "${chip_root}/third_party/bouffalolab/repo"
-}
-
-assert(bl602_sdk_root != "", "bl602_sdk_root must be specified")
-
-# Defines an bl602 SDK build target.
-#
-# Parameters:
-#   bl602_sdk_root - The location of the bl602 SDK.
-#   sources - The sources files to build.
-template("bl602_sdk") {
-  if (defined(invoker.bl602_sdk_root)) {
-    bl602_sdk_root = invoker.bl602_sdk_root
-  }
-
-  assert(bl602_sdk_root != "", "bl602_sdk_root must be specified")
-
-  sdk_target_name = target_name
-
-  config("${sdk_target_name}_config") {
-    include_dirs = []
-    libs = []
-    if (defined(invoker.include_dirs)) {
-      include_dirs += invoker.include_dirs
-    }
-
-    if (defined(invoker.freertos_config)) {
-      cflags_c = [
-        "-include",
-        rebase_path("${invoker.freertos_config}", root_build_dir),
-      ]
-    }
-
-    # Treat these includes as system includes, so warnings in them are not fatal.
-    _include_dirs = [
-      "${bl602_sdk_root}",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/config",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V/chip_specific_extensions/RV32F_float_abi_single",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/panic",
-
-      "${bl602_sdk_root}/components/network/lwip/lwip-port/config",
-      "${bl602_sdk_root}/components/network/lwip/src/include",
-      "${bl602_sdk_root}/components/network/lwip/src/include/lwip",
-      "${bl602_sdk_root}/components/network/lwip/src/include/lwip/apps",
-      "${bl602_sdk_root}/components/network/lwip/lwip-port",
-      "${bl602_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
-      "${bl602_sdk_root}/components/network/lwip/lwip-port/hook",
-      "${bl602_sdk_root}/components/network/lwip_mdns",
-
-      #"${bl602_sdk_root}/components/network/lwip_mdns",
-
-      "${bl602_sdk_root}/components/platform/hosal",
-      "${bl602_sdk_root}/components/platform/hosal/include",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal",
-      "${bl602_sdk_root}/components/utils/include",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/priv_inc",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/inc/blcrypto_suite",
-
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Inc",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Device/Bouffalo/BL602/Peripherals",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/RISCV/Device/Bouffalo/BL602/Startup",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/platform_print",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/RISCV/Core/Include",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/soft_crc",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/partition",
-
-      "${bl602_sdk_root}/components/sys/bltime/include",
-
-      "${bl602_sdk_root}/components/stage/easyflash4/inc",
-      "${bl602_sdk_root}/components/sys/blmtd/include",
-      "${bl602_sdk_root}/components/stage/blfdt/inc",
-
-      "${bl602_sdk_root}/components/stage/blog",
-      "${bl602_sdk_root}/components/stage/cli/cli/include",
-      "${bl602_sdk_root}/components/utils/include",
-
-      "${chip_root}/third_party/mbedtls/repo/include",
-
-      "${bl602_sdk_root}/components/sys/bloop/bloop/include",
-      "${bl602_sdk_root}/components/sys/bloop/loopset/include",
-      "${bl602_sdk_root}/components/sys/bloop/looprt/include",
-
-      "${bl602_sdk_root}/components/fs/vfs/include",
-      "${bl602_sdk_root}/components/stage/yloop/include",
-
-      "${bl602_sdk_root}/components/network/wifi/include",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal",
-      "${bl602_sdk_root}/components/stage/yloop/include/aos",
-      "${bl602_sdk_root}/components/stage/yloop/include/aos",
-
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/include/zephyr",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/port/include",
-      "${bl602_sdk_root}/components/network/ble/blestack/src",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/include",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/include",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/include/bluetooth",
-      "${bl602_sdk_root}/components/network/ble/blecontroller/ble_inc",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/include/drivers/bluetooth",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/include/misc",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/tinycrypt/include/tinycrypt",
-
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/include",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver",
-      "${bl602_sdk_root}/components/network/dns_server/include",
-      "${bl602_sdk_root}/components/network/rfparam_adapter_tmp/rftlv",
-
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Inc",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/inc/blcrypto_suite",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/inc",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/priv_inc",
-      "${bl602_sdk_root}/components/network/wifi/modules/supplicant/src/sae",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/platform_print",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/ring_buffer",
-      "${bl602_sdk_root}/components/utils/include",
-
-      "${bl602_sdk_root}/components/stage/cli/cli/include/",
-      "${bl602_sdk_root}/components/sys/blota/include",
-      "${bl602_sdk_root}/components/utils/include/",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Inc/",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/",
-
-      #bl602 portable
-      "${chip_root}/third_party/bouffalolab/bl602/portable",
-
-      # rebase add
-      "${bl602_sdk_root}/components/network/wifi_hosal/include",
-      "${bl602_sdk_root}/components/os/bl_os_adapter/bl_os_adapter",
-      "${bl602_sdk_root}/components/os/bl_os_adapter/bl_os_adapter/include",
-      "${bl602_sdk_root}/components/os/bl_os_adapter/bl_os_adapter/include/bl_os_adapter",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/include/bl_supplicant",
-
-      # wpa_supplicant
-      "${bl602_sdk_root}/components/security/wpa_supplicant/port",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/ap",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/common",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/eap_peer",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/rsn_supp",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/utils",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/test",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/port/include",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/include",
-
-      "${bl602_sdk_root}/security/wpa_supplicant/src/",
-
-      # hosal
-      "${bl602_sdk_root}/components/platform/hosal/sec_common",
-    ]
-
-    #    if (bl602_board == "BL-HWC-G1") {
-    #      _include_dirs += [ "${bl602_sdk_root}/hardware/board/config/bl_hwc_g1" ]
-    #    }
-
-    bl_sdk_ver = getenv("BL_SDK_VER")
-    defines = [
-      "MBEDTLS_CONFIG_FILE=\"bl602-chip-mbedtls-config.h\"",
-      "__STARTUP_CLEAR_BSS",
-      "HARD_FAULT_LOG_ENABLE",
-      "RETARGET_VCOM",
-      "RETARGET_USART0",
-      "ARCH_RISCV",
-      "portasmHANDLE_INTERRUPT=interrupt_entry",
-
-      "SYS_APP_TASK_STACK_SIZE=2048",
-      "SYS_APP_TASK_PRIORITY=28",
-      "BL_SDK_VER=\"$bl_sdk_ver\"",
-
-      "SYS_BLOG_ENABLE=1",
-      "SYS_VFS_ENABLE=1",
-      "SYS_AOS_LOOP_ENABLE=1",
-      "BL602_USE_HAL_DRIVER=1",
-      "BL602=BL602",
-
-      "CFG_TXDESC=2",
-      "CFG_STA_MAX=1",
-      "CFG_CHIP_BL602",
-
-      #      "SYS_AOS_CLI_ENABLE=1",
-
-      # set CONFIG_RENDEZVOUS_MODE to RENDEZVOUS_MODE_BLE (2)
-      "CONFIG_RENDEZVOUS_MODE=2",
-
-      # bluetooth
-      "CONFIG_SET_TX_PWR",
-      "CFG_BLE_ENABLE",
-      "BFLB_BLE",
-      "CFG_BLE",
-      "CFG_SLEEP",
-      "OPTIMIZE_DATA_EVT_FLOW_FROM_CONTROLLER",
-      "CFG_BT_RESET",
-      "CFG_CON=1",
-      "CFG_BLE_TX_BUFF_DATA=2",
-
-      #      "CONFIG_BLE_TX_BUFF_DATA=2",
-      "CONFIG_BT_PERIPHERAL=1",
-      "CONFIG_BT_L2CAP_DYNAMIC_CHANNEL",
-      "CONFIG_BT_GATT_CLIENT",
-      "CONFIG_BT_CONN=1",
-      "CONFIG_BT_GATT_DIS_PNP",
-      "CONFIG_BT_GATT_DIS_SERIAL_NUMBER",
-      "CONFIG_BT_GATT_DIS_FW_REV",
-      "CONFIG_BT_GATT_DIS_HW_REV",
-      "CONFIG_BT_GATT_DIS_SW_REV",
-      "CONFIG_BT_ECC",
-      "CONFIG_BT_GATT_DYNAMIC_DB",
-      "CONFIG_BT_GATT_SERVICE_CHANGED",
-      "CONFIG_BT_KEYS_OVERWRITE_OLDEST",
-      "CONFIG_BT_KEYS_SAVE_AGING_COUNTER_ON_PAIRING",
-      "CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS",
-      "CONFIG_BT_BONDABLE",
-      "CONFIG_BT_HCI_VS_EVT_USER",
-      "CONFIG_BT_ASSERT",
-      "CONFIG_BT_SETTINGS_CCC_LAZY_LOADING",
-      "CONFIG_BT_SETTINGS_USE_PRINTK",
-      "CFG_BLE_STACK_DBG_PRINT",
-
-      #"__FILENAME__=__FILE__",
-      "__FILENAME__=\"\b\"",
-      "BL602_LOG_ENABLED=1",
-      "ENOTSUP=134",
-
-      #dump backtrace
-      "CONF_ENABLE_FRAME_PTR=1",
-      "CONF_ENABLE_FUNC_BACKTRACE_ELF=out/bl602-light/chip-bl602-lighting-example.out",
-      "CHIP_SYSTEM_CRYPTO_HEADER_RESERVE_SIZE=128",
-
-      # board defines
-      "BL_CHIP_NAME=\"BL602\"",
-
-      #include defines
-      "OS_USING_FREERTOS",
-      "BL602_MATTER_SUPPORT",
-      "PBUF_POOL_SIZE=20",
-      "TD_DIAGNOSIS_STA",
-      "CONFIG_ENABLE_IPV6_ADDR_CALLBACK",
-      "CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT",
-      "CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT",
-    ]
-
-    defines += board_defines
-
-    libs += [
-      "${bl602_sdk_root}/components/network/wifi/lib/libwifi.a",
-      "${bl602_sdk_root}/components/network/ble/blecontroller_602_m0s1/lib/libblecontroller_602_m0s1.a",
-    ]
-
-    cflags = [
-      "-include",
-      rebase_path(
-          "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/errno.h",
-          root_build_dir),
-    ]
-
-    cflags += [
-      "-Wno-maybe-uninitialized",
-      "-Wno-shadow",
-      "-Wno-error",
-      "-fcommon",
-      "-fno-jump-tables",
-    ]
-
-    cflags_cc = [ "-fpermissive" ]
-
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-
-    cflags += [ "-save-temps=obj" ]
-    cflags += [ "-Wno-maybe-uninitialized" ]
-
-    if (defined(invoker.defines)) {
-      defines += invoker.defines
-    }
-  }
-
-  source_set(sdk_target_name) {
-    sources = [
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_boot2.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_flash.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_wdt.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hosal_gpio.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hosal_ota.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_flash.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sf_cfg_ext.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sflash_ext.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_timer.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_xip_sflash_ext.c",
-      "${bl602_sdk_root}/components/stage/cli/cli/cli.c",
-      "${bl602_sdk_root}/components/stage/easyflash4/src/easyflash.c",
-      "${bl602_sdk_root}/components/stage/easyflash4/src/ef_env.c",
-      "${bl602_sdk_root}/components/stage/easyflash4/src/ef_port.c",
-      "${bl602_sdk_root}/components/stage/easyflash4/src/ef_utils.c",
-      "${bl602_sdk_root}/components/sys/blmtd/bl_mtd.c",
-      "${bl602_sdk_root}/components/sys/blota/bl_sys_ota_cli.c",
-      "${bl602_sdk_root}/components/utils/src/utils_hex.c",
-      "${bl602_sdk_root}/components/utils/src/utils_hexdump.c",
-      "${bl602_sdk_root}/components/utils/src/utils_sha256.c",
-      "${chip_root}/third_party/mbedtls/repo/library/aes.c",
-      "${chip_root}/third_party/mbedtls/repo/library/asn1parse.c",
-      "${chip_root}/third_party/mbedtls/repo/library/asn1write.c",
-      "${chip_root}/third_party/mbedtls/repo/library/bignum.c",
-      "${chip_root}/third_party/mbedtls/repo/library/ccm.c",
-      "${chip_root}/third_party/mbedtls/repo/library/cipher.c",
-      "${chip_root}/third_party/mbedtls/repo/library/cipher_wrap.c",
-      "${chip_root}/third_party/mbedtls/repo/library/constant_time.c",
-      "${chip_root}/third_party/mbedtls/repo/library/ctr_drbg.c",
-      "${chip_root}/third_party/mbedtls/repo/library/ecdh.c",
-      "${chip_root}/third_party/mbedtls/repo/library/ecdsa.c",
-      "${chip_root}/third_party/mbedtls/repo/library/ecp.c",
-      "${chip_root}/third_party/mbedtls/repo/library/ecp_curves.c",
-      "${chip_root}/third_party/mbedtls/repo/library/entropy.c",
-      "${chip_root}/third_party/mbedtls/repo/library/hkdf.c",
-      "${chip_root}/third_party/mbedtls/repo/library/hmac_drbg.c",
-      "${chip_root}/third_party/mbedtls/repo/library/md.c",
-      "${chip_root}/third_party/mbedtls/repo/library/oid.c",
-      "${chip_root}/third_party/mbedtls/repo/library/pk.c",
-      "${chip_root}/third_party/mbedtls/repo/library/pk_wrap.c",
-      "${chip_root}/third_party/mbedtls/repo/library/pkcs5.c",
-      "${chip_root}/third_party/mbedtls/repo/library/pkwrite.c",
-      "${chip_root}/third_party/mbedtls/repo/library/platform.c",
-      "${chip_root}/third_party/mbedtls/repo/library/platform_util.c",
-      "${chip_root}/third_party/mbedtls/repo/library/sha256.c",
-      "${chip_root}/third_party/mbedtls/repo/library/sha512.c",
-      "${chip_root}/third_party/mbedtls/repo/library/x509_create.c",
-      "${chip_root}/third_party/mbedtls/repo/library/x509write_csr.c",
-    ]
-
-    sources += [
-      "${bl602_sdk_root}/components/fs/vfs/device/vfs_uart.c",
-      "${bl602_sdk_root}/components/fs/vfs/src/vfs.c",
-      "${bl602_sdk_root}/components/fs/vfs/src/vfs_file.c",
-      "${bl602_sdk_root}/components/fs/vfs/src/vfs_inode.c",
-      "${bl602_sdk_root}/components/fs/vfs/src/vfs_register.c",
-      "${bl602_sdk_root}/components/libc/newlibc/stdatomic.c",
-      "${bl602_sdk_root}/components/libc/newlibc/syscalls.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper/bl_hci_wrapper.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/atomic_c.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/buf.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/dec.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/log.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/poll.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/common/work_q.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/hci_onchip/hci_driver.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/att.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/bl_host_assist.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/conn.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/crypto.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/gatt.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/hci_core.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/l2cap.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/settings.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/host/uuid.c",
-      "${bl602_sdk_root}/components/network/ble/blestack/src/port/bl_port.c",
-      "${bl602_sdk_root}/components/network/dns_server/src/dns_server.c",
-      "${bl602_sdk_root}/components/network/dns_server/src/web_server.c",
-      "${bl602_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
-      "${bl602_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/api_lib.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/api_msg.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/err.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/if_api.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/netbuf.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/netdb.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/netifapi.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/sockets.c",
-      "${bl602_sdk_root}/components/network/lwip/src/api/tcpip.c",
-      "${bl602_sdk_root}/components/network/lwip/src/apps/altcp_tls/altcp_tls_mbedtls.c",
-      "${bl602_sdk_root}/components/network/lwip/src/apps/altcp_tls/altcp_tls_mbedtls_mem.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/altcp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/altcp_alloc.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/altcp_tcp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/def.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/dns.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/inet_chksum.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/init.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ip.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/autoip.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/dhcp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/etharp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/icmp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/igmp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/ip4.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/ip4_addr.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv4/ip4_frag.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/dhcp6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/ethip6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/icmp6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/inet6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/ip6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/ip6_addr.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/ip6_frag.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/mld6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/ipv6/nd6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/mem.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/memp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/netif.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/pbuf.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/raw.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/stats.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/sys.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/tcp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/tcp_in.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/tcp_out.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/timeouts.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/udp.c",
-      "${bl602_sdk_root}/components/network/lwip/src/core/utils.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/bridgeif.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/bridgeif_fdb.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/ethernet.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/lowpan6.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/lowpan6_ble.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/lowpan6_common.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/slipif.c",
-      "${bl602_sdk_root}/components/network/lwip/src/netif/zepif.c",
-      "${bl602_sdk_root}/components/network/lwip_dhcpd/dhcp_server_raw.c",
-
-      #"${bl602_sdk_root}/components/network/lwip_mdns/mdns_server.c",
-      "${bl602_sdk_root}/components/network/sntp/sntp.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_cmds.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_irqs.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_main.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_mod_params.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_msg_rx.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_msg_tx.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_platform.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_rx.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_tx.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_utils.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/ipc_host.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/stateMachine.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_api.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_cli.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_event.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_ext.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_profile.c",
-      "${bl602_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_netif.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_chip.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_dma.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_efuse.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_gpio.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_hbn.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_irq.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_pds.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_pm.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_pwm.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_rtc.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_sec.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_sys.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_timer.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_uart.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/bl_wifi.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_board.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_boot2.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_button.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_gpio.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_hbn.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_sys.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hal_wifi.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hosal_dma.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hosal_pwm.c",
-      "${bl602_sdk_root}/components/platform/hosal/bl602_hal/hosal_uart.c",
-      "${bl602_sdk_root}/components/platform/hosal/sec_common/bl_sec_sha.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602/evb/src/boot/gcc/start.S",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602/evb/src/debug.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602/evb/src/strntoumax.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/platform_print/platform_device.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_dma.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_ef_ctrl.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_glb.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_hbn.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_efuse.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_media.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_pwm.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_romapi.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sec_eng.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_uart.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/event_groups.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/list.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/misaligned/fp_asm.S",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/misaligned/misaligned_ldst.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/panic/panic_c.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V/port.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V/portASM.S",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/MemMang/heap_5.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/queue.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/stream_buffer.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/tasks.c",
-      "${bl602_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/timers.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_aes.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_bignum.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_ecp.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_ecp_curves.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_export_fw.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_hacc.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_hacc_glue.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_hacc_secp256r1_mul.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_platform_util.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_porting.c",
-      "${bl602_sdk_root}/components/stage/blfdt/src/fdt.c",
-      "${bl602_sdk_root}/components/stage/blfdt/src/fdt_ro.c",
-      "${bl602_sdk_root}/components/stage/blog/blog.c",
-      "${bl602_sdk_root}/components/stage/yloop/src/aos_freertos.c",
-      "${bl602_sdk_root}/components/stage/yloop/src/device.c",
-      "${bl602_sdk_root}/components/stage/yloop/src/local_event.c",
-      "${bl602_sdk_root}/components/stage/yloop/src/select.c",
-      "${bl602_sdk_root}/components/stage/yloop/src/yloop.c",
-      "${bl602_sdk_root}/components/sys/bloop/bloop/src/bloop_base.c",
-      "${bl602_sdk_root}/components/sys/bloop/bloop/src/bloop_handler_sys.c",
-      "${bl602_sdk_root}/components/sys/bloop/looprt/src/looprt.c",
-      "${bl602_sdk_root}/components/sys/bloop/loopset/src/loopset_led.c",
-      "${bl602_sdk_root}/components/sys/bltime/bl_sys_time.c",
-      "${bl602_sdk_root}/components/utils/src/utils_crc.c",
-      "${bl602_sdk_root}/components/utils/src/utils_dns.c",
-      "${bl602_sdk_root}/components/utils/src/utils_hmac_sha1_fast.c",
-      "${bl602_sdk_root}/components/utils/src/utils_list.c",
-      "${bl602_sdk_root}/components/utils/src/utils_log.c",
-      "${bl602_sdk_root}/components/utils/src/utils_notifier.c",
-      "${bl602_sdk_root}/components/utils/src/utils_psk_fast.c",
-      "${bl602_sdk_root}/components/utils/src/utils_rbtree.c",
-
-      #rebase add
-      "${bl602_sdk_root}/components/network/rfparam_adapter_tmp/rftlv/phy_rftlv.c",
-      "${bl602_sdk_root}/components/network/wifi_hosal/port/wifi_hosal_bl602.c",
-      "${bl602_sdk_root}/components/network/wifi_hosal/wifi_hosal.c",
-      "${bl602_sdk_root}/components/os/bl_os_adapter/bl_os_adapter/bl_os_hal.c",
-      "${bl602_sdk_root}/components/platform/hosal/sec_common/bl_sec_aes.c",
-      "${bl602_sdk_root}/components/platform/hosal/sec_common/bl_sec_pka.c",
-      "${bl602_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_supplicant_api.c",
-      "${bl602_sdk_root}/components/utils/src/utils_getopt.c",
-      "${bl602_sdk_root}/components/utils/src/utils_string.c",
-      "${bl602_sdk_root}/components/utils/src/utils_tlv_bl.c",
-
-      #bl602 portable
-      # "${chip_root}/third_party/bouffalolab/bl602/portable/async_log.c",
-      # "${chip_root}/third_party/bouffalolab/bl602/portable/bfl_main.c",
-      # "${chip_root}/third_party/bouffalolab/bl602/portable/debug.c",
-      # "${chip_root}/third_party/bouffalolab/bl602/portable/wifi_mgmr_portable.c",
-
-      #wap_supplicant
-      "${bl602_sdk_root}/components/security/wpa_supplicant/port/os_bl.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/ap/ap_config.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/ap/wpa_auth_ie.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/ap/wpa_auth_rsn_ccmp_only.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_hostap.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wpa3.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wpa_main.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wpas_glue.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wps.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/common/sae.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/common/wpa_common.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-cbc.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-internal-bl.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-omac1.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-unwrap.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-wrap.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/crypto_internal-modexp.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/dh_group5.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/dh_groups.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/md5-internal.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/md5.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/rc4.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/sha1-internal.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/sha1-pbkdf2.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/sha1.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/sha256-internal.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/sha256-prf.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/crypto/sha256.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/eap_peer/eap_common.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/rsn_supp/pmksa_cache.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/rsn_supp/wpa.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/rsn_supp/wpa_ie.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/utils/common.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/utils/wpa_debug.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/utils/wpabuf.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_attr_build.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_attr_parse.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_attr_process.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_common.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_dev_attr.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_enrollee.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_registrar.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/src/wps/wps_validate.c",
-      "${bl602_sdk_root}/components/security/wpa_supplicant/test/test_crypto-bl.c",
-    ]
-
-    #    } else if (bl_family == "bl706") {
-    #      sources += [
-    #      ]
-    #    }
-
-    public_deps = [
-      #      "${segger_rtt_root}:segger_rtt",
-      #      "${segger_rtt_root}:segger_rtt_printf",
-      #      "${segger_rtt_root}:segger_rtt_syscalls",
-    ]
-
-    if (defined(invoker.sources)) {
-      sources += invoker.sources
-    }
-
-    public_configs = [ ":${sdk_target_name}_config" ]
-  }
-}
diff --git a/third_party/bouffalolab/bl602/bl_iot_sdk.gni b/third_party/bouffalolab/bl602/bl_iot_sdk.gni
new file mode 100644
index 0000000..f527f27
--- /dev/null
+++ b/third_party/bouffalolab/bl602/bl_iot_sdk.gni
@@ -0,0 +1,889 @@
+# Copyright (c) 2021 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.
+import("//args.gni")
+import("//build_overrides/bouffalolab_iot_sdk.gni")
+import("//build_overrides/chip.gni")
+import("//build_overrides/mbedtls.gni")
+import("${chip_root}/src/lib/lib.gni")
+
+declare_args() {
+  bl_iot_sdk_root = "${chip_root}/third_party/bouffalolab/repo"
+}
+
+assert(bl_iot_sdk_root != "", "bl_iot_sdk_root must be specified")
+
+# Defines an Bouffa Lab IOT SDK build target.
+#
+# Parameters:
+#   bl_iot_sdk_root - The location of Bouffalo Lab IOT SDK.
+#   sources - The sources files to build.
+template("bl_iot_sdk") {
+  sdk_target_name = target_name
+
+  config("${sdk_target_name}_config") {
+    defines = [
+      "__FILENAME__=strrchr(__FILE__,'/')?strrchr(__FILE__,'/')+1:__FILE__",
+      "ARCH_RISCV",
+      "BL602=BL602",
+      "BL602_USE_HAL_DRIVER=1",
+
+      "CFG_CHIP_BL602",
+
+      "MBEDTLS_CONFIG_FILE=\"bl602-chip-mbedtls-config.h\"",
+
+      #dump backtrace
+      "CONF_ENABLE_FRAME_PTR=1",
+      "CONF_ENABLE_FUNC_BACKTRACE_ELF=out/bl602-light/chip-bl602-lighting-example.out",
+    ]
+
+    include_dirs = [ "${chip_root}/third_party/mbedtls/repo/include" ]
+    if (defined(invoker.include_dirs)) {
+      include_dirs += invoker.include_dirs
+    }
+
+    if (defined(invoker.defines)) {
+      defines += invoker.defines
+    }
+
+    if (defined(invoker.freertos_config)) {
+      cflags_c = [
+        "-include",
+        rebase_path("${invoker.freertos_config}", root_build_dir),
+      ]
+    }
+  }
+
+  source_set("${sdk_target_name}_code") {
+    sources = [
+      "${chip_root}/third_party/mbedtls/repo/library/aes.c",
+      "${chip_root}/third_party/mbedtls/repo/library/asn1parse.c",
+      "${chip_root}/third_party/mbedtls/repo/library/asn1write.c",
+      "${chip_root}/third_party/mbedtls/repo/library/bignum.c",
+      "${chip_root}/third_party/mbedtls/repo/library/ccm.c",
+      "${chip_root}/third_party/mbedtls/repo/library/cipher.c",
+      "${chip_root}/third_party/mbedtls/repo/library/cipher_wrap.c",
+      "${chip_root}/third_party/mbedtls/repo/library/constant_time.c",
+      "${chip_root}/third_party/mbedtls/repo/library/ctr_drbg.c",
+      "${chip_root}/third_party/mbedtls/repo/library/ecdh.c",
+      "${chip_root}/third_party/mbedtls/repo/library/ecdsa.c",
+      "${chip_root}/third_party/mbedtls/repo/library/ecp.c",
+      "${chip_root}/third_party/mbedtls/repo/library/ecp_curves.c",
+      "${chip_root}/third_party/mbedtls/repo/library/entropy.c",
+      "${chip_root}/third_party/mbedtls/repo/library/hkdf.c",
+      "${chip_root}/third_party/mbedtls/repo/library/hmac_drbg.c",
+      "${chip_root}/third_party/mbedtls/repo/library/md.c",
+      "${chip_root}/third_party/mbedtls/repo/library/oid.c",
+      "${chip_root}/third_party/mbedtls/repo/library/pk.c",
+      "${chip_root}/third_party/mbedtls/repo/library/pk_wrap.c",
+      "${chip_root}/third_party/mbedtls/repo/library/pkcs5.c",
+      "${chip_root}/third_party/mbedtls/repo/library/pkwrite.c",
+      "${chip_root}/third_party/mbedtls/repo/library/platform.c",
+      "${chip_root}/third_party/mbedtls/repo/library/platform_util.c",
+      "${chip_root}/third_party/mbedtls/repo/library/sha256.c",
+      "${chip_root}/third_party/mbedtls/repo/library/sha512.c",
+      "${chip_root}/third_party/mbedtls/repo/library/x509_create.c",
+      "${chip_root}/third_party/mbedtls/repo/library/x509write_csr.c",
+    ]
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [ ":${sdk_target_name}_config" ]
+  }
+
+  source_set("${sdk_target_name}_soc") {
+    defines = [ "BL602_MATTER_SUPPORT" ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602/evb/src/boot/gcc/start.S",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602/evb/src/debug.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602/evb/src/strntoumax.c",
+    ]
+    cflags_c = [ "-Wno-format-truncation" ]
+  }
+
+  config("${sdk_target_name}_config_BSP_Driver") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/RISCV/Device/Bouffalo/BL602/Startup",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/RISCV/Core/Include",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Device/Bouffalo/BL602/Peripherals",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Inc",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/platform_print",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/soft_crc",
+    ]
+  }
+
+  source_set("${sdk_target_name}_BSP_Driver") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/ring_buffer",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/partition",
+    ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/Common/platform_print/platform_device.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_acomp.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_adc.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_aon.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_common.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_common_ext.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_dac.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_dma.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_ef_ctrl.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_glb.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_hbn.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_i2c.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_ir.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_l1c.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_efuse.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_flash.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_media.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_pds.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_pwm.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_romapi.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sdu.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sec_dbg.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sec_eng.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sf_cfg.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sf_cfg_ext.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sf_ctrl.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sflash.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_sflash_ext.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_spi.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_timer.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_tzc_sec.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_uart.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_xip_sflash.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_xip_sflash_ext.c",
+    ]
+
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_BSP_Driver",
+    ]
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-unused-variable",
+    ]
+  }
+
+  config("${sdk_target_name}_config_freertos") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/config",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/panic",
+    ]
+  }
+
+  source_set("${sdk_target_name}_bl602_freertos") {
+    defines = [ "portasmHANDLE_INTERRUPT=interrupt_entry" ]
+    include_dirs = [ "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V/chip_specific_extensions/RV32F_float_abi_single" ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/event_groups.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/list.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/misaligned/fp_asm.S",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/misaligned/misaligned_ldst.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/panic/panic_c.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V/port.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/GCC/RISC-V/portASM.S",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/portable/MemMang/heap_5.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/queue.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/stream_buffer.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/tasks.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl602/freertos_riscv_ram/timers.c",
+    ]
+
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-old-style-declaration",
+    ]
+
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_freertos",
+    ]
+  }
+
+  config("${sdk_target_name}_config_hosal") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/hosal/include",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/include",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common",
+    ]
+
+    cflags_cc = [ "-Wno-literal-suffix" ]
+  }
+
+  source_set("${sdk_target_name}_hosal") {
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_adc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_boot2.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_chip.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_cks.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_clocktree.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_dac_audio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_dma.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_efuse.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_flash.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_gpio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_gpio_cli.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_hbn.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_i2c.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_ir.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_irq.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_pds.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_pm.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_pwm.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_rtc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_sec.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_sys.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_sys_cli.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_timer.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_uart.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_wdt.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_wdt_cli.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/bl_wifi.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_board.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_boot2.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_button.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_gpio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_hbn.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_hbnram.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_hwtimer.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_ir.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_pds.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_sys.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hal_wifi.c",
+
+      #     hosal_adc.c is included by the code in wifi module
+      #      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_adc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_dac.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_dma.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_efuse.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_flash.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_gpio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_i2c.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_ota.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_pwm.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_rng.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_rtc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_spi.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_timer.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_uart.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl602_hal/hosal_wdg.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_aes.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_common.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_pka.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_sha.c",
+    ]
+
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-shadow",
+      "-Wno-unused-but-set-variable",
+      "-Wno-old-style-declaration",
+      "-Wno-stringop-overflow",
+      "-Wno-format-truncation",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_wifi",
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_stage",
+      ":${sdk_target_name}_config_sys",
+      ":${sdk_target_name}_config_fs",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_hosal",
+    ]
+  }
+
+  config("${sdk_target_name}_config_fs") {
+    include_dirs = [ "${bl_iot_sdk_root}/components/fs/vfs/include" ]
+  }
+
+  source_set("${sdk_target_name}_fs") {
+    sources = [
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_adc.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_gpio.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_pwm.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_spi.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_uart.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_file.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_inode.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_register.c",
+    ]
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-builtin-declaration-mismatch",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_stage",
+      ":${sdk_target_name}_config_fs",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_fs",
+    ]
+  }
+
+  source_set("${sdk_target_name}_libc") {
+    sources = [
+      "${bl_iot_sdk_root}/components/libc/newlibc/assert.c",
+      "${bl_iot_sdk_root}/components/libc/newlibc/stdatomic.c",
+      "${bl_iot_sdk_root}/components/libc/newlibc/syscalls.c",
+    ]
+    cflags_c = [ "-Wno-builtin-declaration-mismatch" ]
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [ ":${sdk_target_name}_config" ]
+  }
+
+  config("${sdk_target_name}_config_stage") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/stage/easyflash4/inc",
+      "${bl_iot_sdk_root}/components/stage/yloop/include",
+      "${bl_iot_sdk_root}/components/stage/blog",
+      "${bl_iot_sdk_root}/components/stage/yloop/include/aos",
+      "${bl_iot_sdk_root}/components/stage/blfdt/inc",
+      "${bl_iot_sdk_root}/components/stage/cli/cli/include",
+    ]
+  }
+
+  source_set("${sdk_target_name}_stage") {
+    sources = [
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_addresses.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_empty_tree.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_overlay.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_ro.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_rw.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_strerror.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_sw.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_wip.c",
+      "${bl_iot_sdk_root}/components/stage/blog/blog.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/easyflash.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_env.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_port.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_utils.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/aos_freertos.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/device.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/local_event.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/select.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/yloop.c",
+    ]
+    cflags_c = [ "-Wno-sign-compare" ]
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_freertos",
+      ":${sdk_target_name}_config_fs",
+      ":${sdk_target_name}_config_sys",
+      ":${sdk_target_name}_config_utils",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_stage",
+    ]
+  }
+
+  config("${sdk_target_name}_config_sys") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/sys/bloop/bloop/include",
+      "${bl_iot_sdk_root}/components/sys/bloop/looprt/include",
+      "${bl_iot_sdk_root}/components/sys/bloop/loopset/include",
+      "${bl_iot_sdk_root}/components/sys/blmtd/include",
+    ]
+  }
+
+  source_set("${sdk_target_name}_sys") {
+    include_dirs = [ "${bl_iot_sdk_root}/components/sys/bltime/include" ]
+    sources = [
+      "${bl_iot_sdk_root}/components/sys/blmtd/bl_mtd.c",
+      "${bl_iot_sdk_root}/components/sys/bltime/bl_sys_time.c",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_sys",
+    ]
+  }
+
+  config("${sdk_target_name}_config_utils") {
+    include_dirs = [ "${bl_iot_sdk_root}/components/utils/include/" ]
+  }
+
+  source_set("${sdk_target_name}_utils") {
+    sources = [
+      "${bl_iot_sdk_root}/components/utils/src/utils_base64.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_crc.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_dns.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_fec.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_getopt.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_hex.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_hexdump.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_hmac_sha1_fast.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_list.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_log.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_memp.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_notifier.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_psk_fast.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_rbtree.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_sha256.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_string.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_time.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_tlv_bl.c",
+    ]
+
+    cflags_c = [
+      "-Wno-shadow",
+      "-Wno-sign-compare",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_utils",
+    ]
+  }
+
+  config("${sdk_target_name}_ble_config") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/ble/blecontroller/ble_inc",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include/bluetooth",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include/drivers/bluetooth",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include/zephyr",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/port/include",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host",
+    ]
+
+    defines = [
+      "BFLB_BLE",
+      "CONFIG_SET_TX_PWR",
+      "CFG_CON=1",
+      "CFG_BLE",
+      "CFG_SLEEP",
+      "CFG_BT_RESET",
+      "CONFIG_BT_PERIPHERAL=1",
+      "CFG_BLE_TX_BUFF_DATA=2",
+      "CONFIG_BT_GATT_DYNAMIC_DB",
+      "CONFIG_BT_GATT_SERVICE_CHANGED",
+      "CONFIG_BT_SETTINGS_CCC_LAZY_LOADING",
+      "CONFIG_BT_KEYS_OVERWRITE_OLDEST",
+      "CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS",
+      "CONFIG_BT_BONDABLE",
+      "CONFIG_BT_ASSERT",
+      "CFG_BLE_STACK_DBG_PRINT",
+    ]
+
+    cflags_cc = [ "-Wno-conversion" ]
+  }
+
+  source_set("${sdk_target_name}_ble") {
+    defines = [
+      "CONFIG_BT_L2CAP_DYNAMIC_CHANNEL",
+      "CONFIG_BT_GATT_CLIENT",
+      "CONFIG_BT_CONN=1",
+      "CONFIG_BT_GATT_DIS_PNP",
+      "CONFIG_BT_GATT_DIS_SERIAL_NUMBER",
+      "CONFIG_BT_GATT_DIS_FW_REV",
+      "CONFIG_BT_GATT_DIS_HW_REV",
+      "CONFIG_BT_GATT_DIS_SW_REV",
+      "CONFIG_BT_ECC",
+      "CONFIG_BT_KEYS_SAVE_AGING_COUNTER_ON_PAIRING",
+      "CONFIG_BT_HCI_VS_EVT_USER",
+      "CONFIG_BT_SETTINGS_USE_PRINTK",
+    ]
+
+    libs = [ "${bl_iot_sdk_root}/components/network/ble/blecontroller_602_m0s1/lib/libblecontroller_602_m0s1.a" ]
+
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/tinycrypt/include/tinycrypt",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include/misc",
+    ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper/bl_hci_wrapper.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/atomic_c.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/buf.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/dec.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/log.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/poll.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/work_q.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/hci_onchip/hci_driver.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/att.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/bl_host_assist.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/conn.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/crypto.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/gatt.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/hci_core.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/l2cap.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/settings.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/uuid.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/port/bl_port.c",
+    ]
+
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_freertos",
+      ":${sdk_target_name}_config_utils",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_ble_config",
+    ]
+
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-unused-but-set-variable",
+      "-Wno-misleading-indentation",
+      "-Wno-format",
+      "-Wno-format-nonliteral",
+      "-Wno-format-security",
+      "-Wno-unused-function",
+      "-Wno-incompatible-pointer-types",
+      "-Wno-discarded-qualifiers",
+    ]
+  }
+
+  config("${sdk_target_name}_config_blcrypto_suite") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/inc",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/inc/blcrypto_suite",
+    ]
+  }
+
+  source_set("${sdk_target_name}_blcrypto_suite") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/priv_inc",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/priv_inc",
+    ]
+    sources = [
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_aes.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_bignum.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_ecp.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_ecp_curves.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_export_fw.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_hacc.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_hacc_glue.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_hacc_secp256r1_mul.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_platform_util.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_porting.c",
+      "${bl_iot_sdk_root}/components/security/blcrypto_suite/src/blcrypto_suite_supplicant_api.c",
+    ]
+
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_blcrypto_suite",
+    ]
+  }
+
+  config("${sdk_target_name}_config_wifi") {
+    defines = [
+      "CFG_TXDESC=2",
+      "CFG_STA_MAX=1",
+      "BL_CHIP_NAME=\"BL602\"",
+      "TD_DIAGNOSIS_STA",
+      "OS_USING_FREERTOS",
+    ]
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/os/bl_os_adapter/bl_os_adapter/include",
+      "${bl_iot_sdk_root}/components/os/bl_os_adapter/bl_os_adapter/include/bl_os_adapter",
+      "${bl_iot_sdk_root}/components/network/wifi/include",
+      "${bl_iot_sdk_root}/components/network/wifi_hosal/include",
+      "${bl_iot_sdk_root}/components/network/wifi_manager",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/include",
+    ]
+
+    cflags_c = [ "-Wno-sign-compare" ]
+    cflags_cc = [ "-Wno-sign-compare" ]
+  }
+
+  source_set("${sdk_target_name}_wifi") {
+    defines = [ "BL602_MATTER_SUPPORT" ]
+
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/os/bl_os_adapter/bl_os_adapter",
+      "${bl_iot_sdk_root}/components/network/dns_server/include",
+      "${bl_iot_sdk_root}/components/network/dns_server/include",
+      "${bl_iot_sdk_root}/components/network/rfparam_adapter_tmp/rftlv",
+      "${bl_iot_sdk_root}/components/network/wifi/modules/supplicant/src/sae",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/include",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/include/bl_supplicant",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/port",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/ap",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/common",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/eap_peer",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/rsn_supp",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/test",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/port/include",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/utils",
+    ]
+
+    sources = [ "${bl_iot_sdk_root}/components/os/bl_os_adapter/bl_os_adapter/bl_os_hal.c" ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/rfparam_adapter_tmp/rftlv/phy_rftlv.c",
+      "${bl_iot_sdk_root}/components/network/wifi_hosal/port/wifi_hosal_bl602.c",
+      "${bl_iot_sdk_root}/components/network/wifi_hosal/wifi_hosal.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_cmds.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_irqs.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_main.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_mod_params.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_msg_rx.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_msg_tx.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_platform.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_rx.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_tx.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/bl_utils.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/ipc_host.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/stateMachine.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_api.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_cli.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_event.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_ext.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_mgmr_profile.c",
+      "${bl_iot_sdk_root}/components/network/wifi_manager/bl60x_wifi_driver/wifi_netif.c",
+
+      #wap_supplicant
+      "${bl_iot_sdk_root}/components/network/dns_server/src/dns_server.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/port/os_bl.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/ap/ap_config.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/ap/wpa_auth_ie.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/ap/wpa_auth_rsn_ccmp_only.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_hostap.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wpa3.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wpa_main.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wpas_glue.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/bl_supplicant/bl_wps.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/common/sae.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/common/wpa_common.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-cbc.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-internal-bl.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-omac1.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-unwrap.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/aes-wrap.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/crypto_internal-modexp.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/dh_group5.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/dh_groups.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/md5-internal.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/md5.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/rc4.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/sha1-internal.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/sha1-pbkdf2.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/sha1.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/sha256-internal.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/sha256-prf.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/crypto/sha256.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/eap_peer/eap_common.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/rsn_supp/pmksa_cache.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/rsn_supp/wpa.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/rsn_supp/wpa_ie.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/utils/common.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/utils/wpa_debug.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/utils/wpabuf.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_attr_build.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_attr_parse.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_attr_process.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_common.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_dev_attr.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_enrollee.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_registrar.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/src/wps/wps_validate.c",
+      "${bl_iot_sdk_root}/components/security/wpa_supplicant/test/test_crypto-bl.c",
+    ]
+
+    libs = [ "${bl_iot_sdk_root}/components/network/wifi/lib/libwifi.a" ]
+
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_stage",
+      ":${sdk_target_name}_config_lwip",
+      ":${sdk_target_name}_config_blcrypto_suite",
+      ":${sdk_target_name}_config_freertos",
+      ":${sdk_target_name}_config_utils",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_wifi",
+    ]
+
+    deps = [ ":${sdk_target_name}_hosal" ]
+
+    cflags_c = [
+      "-Wno-unused-function",
+      "-Wno-shadow",
+      "-Wno-old-style-declaration",
+      "-Wno-incompatible-pointer-types",
+      "-Wno-format-security",
+      "-Wno-format-nonliteral",
+      "-Wno-unused-but-set-variable",
+      "-Wno-unused-variable",
+      "-fcommon",
+    ]
+  }
+
+  config("${sdk_target_name}_config_lwip") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/config",
+      "${bl_iot_sdk_root}/components/network/lwip/src/include",
+      "${bl_iot_sdk_root}/components/network/lwip/src/include/lwip/apps",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/hook",
+    ]
+
+    defines = [
+      "LWIP_IPV6=1",
+      "LWIP_IPV4=1",
+      "LWIP_IPV6_DHCP6=1",
+      "LWIP_IPV6_SCOPES=0",
+      "LWIP_AUTOIP=1",
+      "LWIP_IPV6_MLD=1",
+      "LWIP_ND6_RDNSS_MAX_DNS_SERVERS=1",
+      "PBUF_POOL_SIZE=20",
+      "PBUF_POOL_BUFSIZE=(1280+150)",
+      "CONFIG_ENABLE_IPV6_ADDR_CALLBACK",
+      "CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT",
+      "CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT",
+    ]
+  }
+
+  source_set("${sdk_target_name}_lwip") {
+    sources = [
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c",
+    ]
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/bridgeif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/bridgeif_fdb.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/ethernet.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/slipif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/zepif.c",
+    ]
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/def.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/dns.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/inet_chksum.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/init.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ip.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/mem.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/memp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/netif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/pbuf.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/raw.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/stats.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/sys.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp_in.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp_out.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/timeouts.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/udp.c",
+    ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/autoip.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/dhcp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/etharp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/icmp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/igmp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4_addr.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4_frag.c",
+    ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/dhcp6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ethip6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/icmp6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/inet6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_addr.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_frag.c",
+
+      #"${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_route_table.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/mld6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/nd6.c",
+    ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/api_lib.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/api_msg.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/err.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/if_api.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/netbuf.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/netifapi.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/sockets.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/tcpip.c",
+    ]
+    sources +=
+        [ "${bl_iot_sdk_root}/components/network/lwip/src/apps/mdns/mdns.c" ]
+    sources +=
+        [ "${bl_iot_sdk_root}/components/network/lwip_dhcpd/dhcp_server_raw.c" ]
+
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_lwip",
+    ]
+  }
+
+  group(sdk_target_name) {
+    public_deps = [
+      ":${sdk_target_name}_BSP_Driver",
+      ":${sdk_target_name}_bl602_freertos",
+      ":${sdk_target_name}_blcrypto_suite",
+      ":${sdk_target_name}_ble",
+      ":${sdk_target_name}_code",
+      ":${sdk_target_name}_fs",
+      ":${sdk_target_name}_hosal",
+      ":${sdk_target_name}_libc",
+      ":${sdk_target_name}_lwip",
+      ":${sdk_target_name}_soc",
+      ":${sdk_target_name}_stage",
+      ":${sdk_target_name}_sys",
+      ":${sdk_target_name}_utils",
+      ":${sdk_target_name}_wifi",
+    ]
+  }
+}
diff --git a/third_party/bouffalolab/bl702/BUILD.gn b/third_party/bouffalolab/bl702/BUILD.gn
index 9842ba2..3fe1578 100644
--- a/third_party/bouffalolab/bl702/BUILD.gn
+++ b/third_party/bouffalolab/bl702/BUILD.gn
@@ -14,14 +14,14 @@
 
 import("//build_overrides/bouffalolab_iot_sdk.gni")
 import("//build_overrides/openthread.gni")
-import("${bl702_sdk_build_root}/bl702_sdk.gni")
+import("${bouffalolab_iot_sdk_build_root}/bl702/bl_iot_sdk.gni")
 
 declare_args() {
-  # Build target to use for bl702 SDK. Use this to set global SDK defines.
-  bl702_sdk_target = ""
+  # Build target to use for Bouffalo Lab IOT SDK. Use this to set global SDK defines.
+  bl_iot_sdk_target = ""
 }
 
-assert(bl702_sdk_target != "", "bl702_sdk_target must be specified")
+assert(bl_iot_sdk_target != "", "bl_iot_sdk_target must be specified")
 
 config("bl702_mbedtls_config") {
   defines = [ "MBEDTLS_CONFIG_FILE=\"bl702-chip-mbedtls-config.h\"" ]
@@ -32,6 +32,6 @@
   include_dirs = [ "${chip_root}/src/platform/bouffalolab/BL702" ]
 }
 
-group("bl702_sdk") {
-  public_deps = [ bl702_sdk_target ]
+group("bl_iot_sdk") {
+  public_deps = [ bl_iot_sdk_target ]
 }
diff --git a/third_party/bouffalolab/bl702/bl702_executable.gni b/third_party/bouffalolab/bl702/bl702_executable.gni
deleted file mode 100644
index e50120b..0000000
--- a/third_party/bouffalolab/bl702/bl702_executable.gni
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (c) 2021 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.
-
-import("//build_overrides/build.gni")
-import("//build_overrides/chip.gni")
-
-import("//build_overrides/bouffalolab_iot_sdk.gni")
-import("${build_root}/toolchain/flashable_executable.gni")
-
-template("bl702_executable") {
-  output_base_name = get_path_info(invoker.output_name, "name")
-
-  objcopy_image_name = output_base_name + ".bin"
-  objcopy_image_format = "binary"
-
-  objcopy = "riscv64-unknown-elf-objcopy"
-  if ("linux" == host_os) {
-    objcopy = "${bouffalolab_sdk_root}/toolchain/riscv/Linux/bin/riscv64-unknown-elf-objcopy"
-  } else if ("mac" == host_os || "darwin" == host_os) {
-    objcopy = "${bouffalolab_sdk_root}/toolchain/riscv/Darwin/bin/riscv64-unknown-elf-objcopy"
-  }
-
-  # Copy flashing dependencies to the output directory so that the output
-  # is collectively self-contained; this allows flashing to work reliably
-  # even if the build and flashing steps take place on different machines
-  # or in different containers.
-  flashing_runtime_target = target_name + ".flashing_runtime"
-  flashing_script_inputs = [
-    "${chip_root}/scripts/flashing/bouffalolab_firmware_utils.py",
-    "${chip_root}/scripts/flashing/firmware_utils.py",
-
-    "${chip_root}/examples/platform/bouffalolab/bl702/flash_config/partition_cfg_2M.toml",
-  ]
-  copy(flashing_runtime_target) {
-    sources = flashing_script_inputs
-    outputs = [ "${root_out_dir}/{{source_file_part}}" ]
-  }
-
-  flashing_script_generator =
-      "${chip_root}/scripts/flashing/gen_flashing_script.py"
-  flashing_script_name = output_base_name + ".flash.py"
-  flashing_options = [ "bouffalolab" ]
-  flashing_options += [ "--chipname" ]
-  flashing_options += [ "bl702" ]
-  flashing_options += [ "--xtal" ]
-  flashing_options += [ "32M" ]
-  flashing_options += [ "--pt" ]
-  flashing_options +=
-      [ rebase_path("partition_cfg_2M.toml", root_out_dir, root_out_dir) ]
-  flashing_options += [ "--ota" ]
-  flashing_options += [ "ota_images/" ]
-
-  # set 2000000 baudrate for image download by default
-  flashing_options += [ "--baudrate" ]
-  flashing_options += [ "2000000" ]
-
-  flashable_executable(target_name) {
-    forward_variables_from(invoker, "*")
-    data_deps = [ ":${flashing_runtime_target}" ]
-  }
-}
diff --git a/third_party/bouffalolab/bl702/bl702_sdk.gni b/third_party/bouffalolab/bl702/bl702_sdk.gni
deleted file mode 100644
index ebc4981..0000000
--- a/third_party/bouffalolab/bl702/bl702_sdk.gni
+++ /dev/null
@@ -1,821 +0,0 @@
-# Copyright (c) 2021 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.
-
-import("//args.gni")
-import("//build_overrides/bouffalolab_iot_sdk.gni")
-import("//build_overrides/chip.gni")
-import("//build_overrides/mbedtls.gni")
-import("//build_overrides/openthread.gni")
-import("${chip_root}/src/lib/lib.gni")
-import("bl702_board.gni")
-
-import("${mbedtls_root}/mbedtls.gni")
-
-declare_args() {
-  # Location of the bl702 SDK.
-  bl702_sdk_root = "${chip_root}/third_party/bouffalolab/repo"
-
-  enable_zigbee = false
-
-  enable_cdc_module = false
-}
-
-assert(bl702_sdk_root != "", "bl702_sdk_root must be specified")
-
-# Defines an bl702 SDK build target.
-#
-# Parameters:
-#   bl702_sdk_root - The location of the bl702 SDK.
-#   sources - The sources files to build.
-template("bl702_sdk") {
-  sdk_target_name = target_name
-
-  if (defined(invoker.bl702_sdk_root)) {
-    bl702_sdk_root = invoker.bl702_sdk_root
-  }
-
-  if (defined(invoker.enable_zigbee)) {
-    enable_zigbee = invoker.enable_zigbee
-  }
-
-  if (defined(invoker.enable_cdc_module)) {
-    enable_cdc_module = invoker.enable_cdc_module
-  }
-
-  config("${sdk_target_name}_config") {
-    include_dirs = []
-    if (defined(invoker.include_dirs)) {
-      include_dirs += invoker.include_dirs
-    }
-
-    defines = [
-      "CONFIG_RENDEZVOUS_MODE=2",
-      "CONFIG_ENABLE_PW_RPC=0",
-      "__FILENAME__=strrchr(__FILE__,'/')?strrchr(__FILE__,'/')+1:__FILE__",
-      "OT_FREERTOS_ENABLE=1",
-    ]
-
-    if (defined(invoker.defines)) {
-      defines += invoker.defines
-    }
-  }
-
-  config("${sdk_target_name}_plat_config") {
-    _include_dirs = [
-      "${bl702_sdk_root}",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/config",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/chip_specific_extensions/RV32F_float_abi_single",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/panic",
-
-      "${bl702_sdk_root}/components/sys/blmtd/include",
-      "${bl702_sdk_root}/components/utils/include/",
-
-      "${bl702_sdk_root}/components/stage/yloop/include",
-      "${bl702_sdk_root}/components/stage/blfdt/inc",
-      "${bl702_sdk_root}/components/stage/blog/",
-      "${bl702_sdk_root}/components/stage/cli/cli/include",
-      "${bl702_sdk_root}/components/stage/coredump/inc",
-      "${bl702_sdk_root}/components/stage/easyflash4/inc",
-
-      "${bl702_sdk_root}/components/fs/vfs/include",
-
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Board",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/risc-v/Core/Include",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/regs",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/startup",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/inc",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/soft_crc",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/misc",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/ring_buffer",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/device",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/list",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/memheap",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Common/platform",
-
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/include",
-      "${bl702_sdk_root}/components/platform/hosal/include",
-      "${bl702_sdk_root}/components/platform/hosal/sec_common",
-    ]
-
-    defines = [
-      "ARCH_RISCV",
-      "bl706_iot=1",
-    ]
-
-    defines += board_defines
-
-    cflags = []
-    cflags_c = []
-    if (defined(invoker.freertos_config)) {
-      cflags_c += [
-        "-include",
-        rebase_path("${invoker.freertos_config}", root_build_dir),
-      ]
-    }
-
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-
-    if (defined(invoker.defines)) {
-      defines += invoker.defines
-    }
-  }
-
-  source_set("${sdk_target_name}_drv") {
-    defines = [
-      "BFLB_USE_ROM_DRIVER=1",
-      "BFLB_USE_HAL_DRIVER=1",
-      "CFG_USE_XTAL32K=1",
-      "CFG_BLE_ENABLE=1",
-      "BL702",
-    ]
-
-    include_dirs =
-        [ "${bl702_sdk_root}/components/network/ble/blecontroller/ble_inc/" ]
-
-    sources = [
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_adc.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_boot2.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_chip.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_cks.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_dma.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_efuse.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_flash.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_gpio.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_hbn.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_irq.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_pds.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_psram.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_pwm.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_rtc.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_sec.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_sys.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_timer.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_uart.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_wdt.c",
-
-      # "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_sec_aes.c",
-      # "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_sec_sha.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_wireless.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_board.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_boot2.c",
-
-      # "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_tcal.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_button.c",
-
-      # "${bl702_sdk_root}/components/platform/hosal/bl702_hal/bl_emac.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_gpio.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_hbn.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_hwtimer.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_pds.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_sys.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_adc.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_dac.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_dma.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_flash.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_gpio.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_i2c.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_ota.c",
-
-      # "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_spi.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_pwm.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_rng.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_rtc.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_timer.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_uart.c",
-      "${bl702_sdk_root}/components/platform/hosal/bl702_hal/hosal_wdg.c",
-
-      #"${bl702_sdk_root}/components/platform/hosal/bl702_hal/hal_uart.c",
-    ]
-
-    sources += [
-      "${bl702_sdk_root}/components/platform/hosal/sec_common/bl_sec_aes.c",
-      "${bl702_sdk_root}/components/platform/hosal/sec_common/bl_sec_pka.c",
-
-      #"${bl702_sdk_root}/components/platform/hosal/sec_common/bl_sec_sha.c",
-    ]
-
-    libs = [ "${bl702_sdk_root}/components/platform/soc/bl702/bl702_rf/lib/libbl702_rf.a" ]
-
-    cflags_c = [
-      "-Wno-unused-variable",
-      "-Wno-enum-conversion",
-      "-Wno-sign-compare",
-      "-Wno-old-style-declaration",
-      "-Wno-stringop-overflow",
-      "-Wno-format-truncation",
-    ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-    ]
-  }
-
-  source_set("${sdk_target_name}_app") {
-    sources = []
-    if (defined(invoker.sources)) {
-      sources += invoker.sources
-    }
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-    ]
-  }
-
-  source_set("${sdk_target_name}_cdc") {
-    include_dirs = [
-      "${bl702_sdk_root}/components/fs/vfs/include",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Inc",
-    ]
-
-    defines = [
-      "BFLB_USE_ROM_DRIVER=1",
-      "BFLB_USE_HAL_DRIVER=1",
-    ]
-
-    sources = [
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/bl702_hal_pcd.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/bl702_usb_cdc.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usb_device.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_cdc.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_cdc_if.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_conf.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_core.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_ctlreq.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_desc.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_ioreq.c",
-    ]
-
-    cflags_c = [ "-Wno-sign-compare" ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-    ]
-  }
-
-  source_set("${sdk_target_name}_bflb_platform") {
-    defines = [
-      "BFLB_USE_ROM_DRIVER=1",
-      "BFLB_USE_HAL_DRIVER=1",
-    ]
-
-    include_dirs = [ "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/hal_drv/inc" ]
-
-    sources = [
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_acomp.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_adc.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_aon.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_cam.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_clock.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_common.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_dac.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_dma.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_ef_ctrl.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_glb.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_hbn.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2c.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2s.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_ir.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_l1c.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_mjpeg.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_pds.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_psram.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_pwm.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_qdec.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_romapi.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sec_dbg.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sec_eng.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_cfg.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_cfg_ext.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_ctrl.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sflash.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sflash_ext.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_spi.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_timer.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_uart.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_usb.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_xip_sflash.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_xip_sflash_ext.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/misc/misc.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/ring_buffer/ring_buffer.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/soft_crc/softcrc.c",
-    ]
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-    ]
-    cflags_c = [
-      "-Wno-sign-compare",
-      "-Wno-unused-variable",
-    ]
-  }
-
-  source_set("${sdk_target_name}_plat") {
-    defines = [
-      "portasmHANDLE_INTERRUPT=interrupt_entry",
-      "CFG_CPP_ENABLE=1",
-      "BL_SDK_VER=\"1.0\"",
-      "BFLB_USE_ROM_DRIVER=1",
-      "BFLB_USE_HAL_DRIVER=1",
-    ]
-
-    sources = [
-      "${bl702_sdk_root}/components/libc/newlibc/assert.c",
-      "${bl702_sdk_root}/components/libc/newlibc/stdatomic.c",
-      "${bl702_sdk_root}/components/libc/newlibc/syscalls.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702/evb/src/boot/gcc/start.S",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702/evb/src/debug.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702/evb/src/strntoumax.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702/evb/src/vprint.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/event_groups.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/list.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/misaligned/fp_asm.S",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/misaligned/misaligned_ldst.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/panic/panic_c.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/port.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/portASM.S",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/MemMang/heap_5.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/MemMang/heap_5_psram.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/queue.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/stream_buffer.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/tasks.c",
-      "${bl702_sdk_root}/components/platform/soc/bl702/bl702_freertos/timers.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_addresses.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_empty_tree.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_overlay.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_ro.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_rw.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_strerror.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_sw.c",
-      "${bl702_sdk_root}/components/stage/blfdt/src/fdt_wip.c",
-      "${bl702_sdk_root}/components/stage/blog/blog.c",
-      "${bl702_sdk_root}/components/stage/easyflash4/src/easyflash.c",
-      "${bl702_sdk_root}/components/stage/easyflash4/src/ef_env.c",
-      "${bl702_sdk_root}/components/stage/easyflash4/src/ef_port.c",
-      "${bl702_sdk_root}/components/stage/easyflash4/src/ef_utils.c",
-      "${bl702_sdk_root}/components/sys/blmtd/bl_mtd.c",
-      "${bl702_sdk_root}/components/utils/src/utils_list.c",
-      "${bl702_sdk_root}/components/utils/src/utils_log.c",
-      "${bl702_sdk_root}/components/utils/src/utils_string.c",
-    ]
-
-    cflags_c = [
-      "-Wno-old-style-declaration",
-      "-Wno-enum-conversion",
-      "-Wno-sign-compare",
-    ]
-    cflags_c += [
-      "-Wno-builtin-declaration-mismatch",
-      "-Wno-format-truncation",
-    ]
-
-    sources += [
-      "${bl702_sdk_root}/components/fs/vfs/device/vfs_adc.c",
-      "${bl702_sdk_root}/components/fs/vfs/device/vfs_gpio.c",
-      "${bl702_sdk_root}/components/fs/vfs/device/vfs_pwm.c",
-      "${bl702_sdk_root}/components/fs/vfs/device/vfs_spi.c",
-      "${bl702_sdk_root}/components/fs/vfs/device/vfs_uart.c",
-      "${bl702_sdk_root}/components/fs/vfs/src/vfs.c",
-      "${bl702_sdk_root}/components/fs/vfs/src/vfs_file.c",
-      "${bl702_sdk_root}/components/fs/vfs/src/vfs_inode.c",
-      "${bl702_sdk_root}/components/fs/vfs/src/vfs_register.c",
-      "${bl702_sdk_root}/components/stage/yloop/src/aos_freertos.c",
-      "${bl702_sdk_root}/components/stage/yloop/src/device.c",
-      "${bl702_sdk_root}/components/stage/yloop/src/local_event.c",
-      "${bl702_sdk_root}/components/stage/yloop/src/select.c",
-      "${bl702_sdk_root}/components/stage/yloop/src/yloop.c",
-      "${bl702_sdk_root}/components/utils/src/utils_base64.c",
-      "${bl702_sdk_root}/components/utils/src/utils_crc.c",
-      "${bl702_sdk_root}/components/utils/src/utils_dns.c",
-      "${bl702_sdk_root}/components/utils/src/utils_fec.c",
-      "${bl702_sdk_root}/components/utils/src/utils_getopt.c",
-      "${bl702_sdk_root}/components/utils/src/utils_hex.c",
-      "${bl702_sdk_root}/components/utils/src/utils_hexdump.c",
-      "${bl702_sdk_root}/components/utils/src/utils_hmac_sha1_fast.c",
-      "${bl702_sdk_root}/components/utils/src/utils_memp.c",
-      "${bl702_sdk_root}/components/utils/src/utils_notifier.c",
-      "${bl702_sdk_root}/components/utils/src/utils_psk_fast.c",
-      "${bl702_sdk_root}/components/utils/src/utils_rbtree.c",
-      "${bl702_sdk_root}/components/utils/src/utils_sha256.c",
-      "${bl702_sdk_root}/components/utils/src/utils_time.c",
-      "${bl702_sdk_root}/components/utils/src/utils_tlv_bl.c",
-    ]
-
-    cflags_c += [ "-Wno-shadow" ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-    ]
-  }
-
-  config("${sdk_target_name}_ble_config") {
-    _include_dirs = [
-      "${bl702_sdk_root}/components/network/ble/blestack/src/include",
-      "${bl702_sdk_root}/components/network/ble/blestack/src",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/include",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/include/misc",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/include/zephyr",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/port/include",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/include/bluetooth",
-      "${bl702_sdk_root}/components/network/ble/blecontroller/ble_inc",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/include/drivers/bluetooth",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host",
-    ]
-
-    defines = [
-      "CONFIG_SET_TX_PWR",
-      "CFG_BLE_ENABLE",
-      "BFLB_BLE",
-      "CFG_BLE",
-      "CFG_SLEEP",
-      "OPTIMIZE_DATA_EVT_FLOW_FROM_CONTROLLER",
-      "CFG_BT_RESET",
-      "CFG_CON=1",
-      "CFG_BLE_TX_BUFF_DATA=2",
-      "CONFIG_BT_PERIPHERAL=1",
-      "CONFIG_BT_L2CAP_DYNAMIC_CHANNEL",
-      "CONFIG_BT_GATT_CLIENT",
-      "CONFIG_BT_CONN=1",
-      "CONFIG_BT_GATT_DIS_PNP",
-      "CONFIG_BT_GATT_DIS_SERIAL_NUMBER",
-      "CONFIG_BT_GATT_DIS_FW_REV",
-      "CONFIG_BT_GATT_DIS_HW_REV",
-      "CONFIG_BT_GATT_DIS_SW_REV",
-      "CONFIG_BT_ECC",
-      "CONFIG_BT_GATT_DYNAMIC_DB",
-      "CONFIG_BT_GATT_SERVICE_CHANGED",
-      "CONFIG_BT_KEYS_OVERWRITE_OLDEST",
-      "CONFIG_BT_KEYS_SAVE_AGING_COUNTER_ON_PAIRING",
-      "CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS",
-      "CONFIG_BT_BONDABLE",
-      "CONFIG_BT_HCI_VS_EVT_USER",
-      "CONFIG_BT_ASSERT",
-      "CONFIG_BT_SETTINGS_CCC_LAZY_LOADING",
-      "CONFIG_BT_SETTINGS_USE_PRINTK",
-      "CFG_BLE_STACK_DBG_PRINT",
-    ]
-
-    cflags = []
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-  }
-
-  source_set("${sdk_target_name}_ble") {
-    defines = [ "BL702=1" ]
-
-    include_dirs = [
-      "${bl702_sdk_root}/components/network/ble/blestack/src/include",
-      "${bl702_sdk_root}/components/network/ble/blecontroller/ble_inc",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/include/drivers/bluetooth",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/tinycrypt/include/tinycrypt",
-    ]
-
-    sources = [
-      "${bl702_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper/bl_hci_wrapper.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/atomic_c.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/buf.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/dec.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/log.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/poll.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/common/work_q.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/hci_onchip/hci_driver.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/att.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/bl_host_assist.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/conn.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/crypto.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/gatt.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/hci_core.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/l2cap.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/settings.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/host/uuid.c",
-      "${bl702_sdk_root}/components/network/ble/blestack/src/port/bl_port.c",
-    ]
-
-    libs = [ "${bl702_sdk_root}/components/network/ble/blecontroller_702_std/lib/libblecontroller_702_std.a" ]
-
-    configs += [ ":${sdk_target_name}_plat_config" ]
-    public_configs = [ ":${sdk_target_name}_ble_config" ]
-
-    cflags_c = [
-      "-Wno-sign-compare",
-      "-Wno-unused-but-set-variable",
-      "-Wno-misleading-indentation",
-      "-Wno-format",
-      "-Wno-format-nonliteral",
-      "-Wno-format-security",
-      "-Wno-unused-function",
-      "-Wno-incompatible-pointer-types",
-      "-Wno-discarded-qualifiers",
-    ]
-  }
-
-  config("${sdk_target_name}_otport_config") {
-    _include_dirs = [
-      "${chip_root}/platform/bl702",
-      "${chip_root}/third_party/openthread/repo/src/core",
-      "${chip_root}/third_party/openthread/repo/examples/platforms",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/include",
-    ]
-
-    cflags = []
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-  }
-
-  source_set("${sdk_target_name}_otport") {
-    import("//build_overrides/openthread.gni")
-
-    include_dirs = [
-      "${bl702_sdk_root}/components/network/lmac154/include",
-      "${openthread_root}/examples/platforms/utils/",
-      "${openthread_root}/examples",
-    ]
-
-    sources = [
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_alarm.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_diag.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_entropy.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_logging.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_misc.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_radio.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_settings.c",
-      "${bl702_sdk_root}/components/network/thread/openthread_port/ot_uart.c",
-
-      # "${bl702_sdk_root}/components/network/thread/openthread_port/ot_system.c",
-      # "${bl702_sdk_root}/components/network/thread/openthread_port/ot_freertos.c",
-      # "${bl702_sdk_root}/components/network/thread/openthread_port/ot_memory.c"
-    ]
-
-    libs = [ "${bl702_sdk_root}/components/network/lmac154/lib/liblmac154.a" ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-      ":${sdk_target_name}_otport_config",
-    ]
-
-    public_deps = [
-      ":${sdk_target_name}_plat",
-      "${bl702_sdk_build_root}:mbedtls",
-      "${chip_root}/third_party/openthread/platforms:libopenthread-platform-utils",
-      "${openthread_root}/src/core:libopenthread_core_headers",
-    ]
-  }
-
-  config("${sdk_target_name}_lwip_port_config") {
-    _include_dirs = [
-      "${bl702_sdk_root}/components/network/lwip/lwip-port",
-      "${bl702_sdk_root}/components/network/lwip/lwip-port/config",
-      "${bl702_sdk_root}/components/stage/virt_net/include",
-      "${bl702_sdk_root}/components/stage/throughput/bl702/inc",
-    ]
-
-    defines = [
-      "TCPIP_THREAD_PRIO=24",
-      "CFG_ETHERNET_ENABLE=1",
-    ]
-
-    cflags = []
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-
-    cflags += [
-      "-Wno-conversion",
-      "-Wno-unused-function",
-    ]
-  }
-
-  source_set("${sdk_target_name}_lwip_port") {
-    defines = [
-      "SPI_WIFI_RXBUFF_IN_PSRAM=1",
-      "VIRT_NET_SPI_RX_TASK_PRIORITY=25",
-    ]
-
-    #    include_dirs = [
-    #      "${bl702_sdk_root}/components/network/lwip/lwip-port/arch",
-    #      "${bl702_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
-    #      "${bl702_sdk_root}/components/stage/throughput"
-    #    ]
-
-    #    sources = [
-    #      "${bl702_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
-    #      "${bl702_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c"
-    #    ]
-
-    #    sources += [
-    #      "${bl702_sdk_root}/components/stage/throughput/bl702/src/tp_spi_master.c",
-    #    ]
-    #    sources += [
-    #      "${bl702_sdk_root}/components/stage/virt_net/src/virt_net.c",
-    #      "${bl702_sdk_root}/components/stage/virt_net/src/virt_net_spi.c",
-    #    ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-      ":${sdk_target_name}_lwip_port_config",
-      ":${sdk_target_name}_lwip_config",
-    ]
-
-    cflags = [ "-Wno-sign-compare" ]
-  }
-
-  config("${sdk_target_name}_lwip_config") {
-    _include_dirs = [
-      "${bl702_sdk_root}/components/network/lwip/src/include",
-      # "${bl702_sdk_root}/components/network/lwip_mdns",
-    ]
-
-    defines = [
-      "LWIP_IPV6=1",
-      "LWIP_IPV4=1",
-      "LWIP_IPV6_DHCP6=1",
-      "LWIP_IPV6_SCOPES=0",
-      "PBUF_POOL_SIZE=12",
-      "PBUF_POOL_BUFSIZE=(1280+150)",
-    ]
-
-    cflags = []
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-  }
-
-  source_set("${sdk_target_name}_lwip") {
-    sources = [
-      "${bl702_sdk_root}/components/network/lwip/src/api/api_lib.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/api_msg.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/err.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/if_api.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/netbuf.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/netifapi.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/sockets.c",
-      "${bl702_sdk_root}/components/network/lwip/src/api/tcpip.c",
-    ]
-
-    sources += [
-      "${bl702_sdk_root}/components/network/lwip/src/apps/altcp_tls/altcp_tls_mbedtls.c",
-      "${bl702_sdk_root}/components/network/lwip/src/apps/altcp_tls/altcp_tls_mbedtls_mem.c",
-    ]
-
-    sources += [
-      "${bl702_sdk_root}/components/network/lwip/src/core/def.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/dns.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/inet_chksum.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/init.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ip.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/mem.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/memp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/netif.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/pbuf.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/raw.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/stats.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/sys.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/tcp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/tcp_in.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/tcp_out.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/timeouts.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/udp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/include/lwip/priv/api_msg.h",
-      "${bl702_sdk_root}/components/network/lwip/src/include/lwip/priv/memp_std.h",
-      "${bl702_sdk_root}/components/network/lwip/src/include/lwip/priv/nd6_priv.h",
-    ]
-
-    sources += [
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/autoip.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/dhcp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/etharp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/icmp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/igmp.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/ip4.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/ip4_addr.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv4/ip4_frag.c",
-    ]
-
-    sources += [
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/dhcp6.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/ethip6.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/icmp6.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/inet6.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/ip6.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/ip6_addr.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/ip6_frag.c",
-
-      #"${bl702_sdk_root}/components/network/lwip/src/core/ipv6/ip6_route_table.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/mld6.c",
-      "${bl702_sdk_root}/components/network/lwip/src/core/ipv6/nd6.c",
-    ]
-
-    sources +=
-        [ "${bl702_sdk_root}/components/network/lwip/src/netif/slipif.c" ]
-    sources +=
-        [ "${bl702_sdk_root}/components/network/lwip/src/netif/bridgeif.c" ]
-    sources +=
-        [ "${bl702_sdk_root}/components/network/lwip/src/netif/bridgeif_fdb.c" ]
-    sources +=
-        [ "${bl702_sdk_root}/components/network/lwip/src/netif/ethernet.c" ]
-    sources += [ "${bl702_sdk_root}/components/network/lwip/src/netif/zepif.c" ]
-
-    sources +=
-        [ "${bl702_sdk_root}/components/network/lwip/src/apps/mdns/mdns.c" ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-      ":${sdk_target_name}_lwip_port_config",
-      ":${sdk_target_name}_lwip_config",
-    ]
-  }
-
-  config("${sdk_target_name}_zigbee_config") {
-    _include_dirs = [
-      "${bl702_sdk_root}/components/network/zigbee/zbstack/",
-      "${bl702_sdk_root}/components/network/zigbee/zbstack/include",
-      "${bl702_sdk_root}/components/network/zigbee/zbstack/include/core",
-      "${bl702_sdk_root}/components/network/zigbee/zbstack/include/zcl",
-      "${bl702_sdk_root}/components/network/zigbee/zbcli/",
-    ]
-
-    defines = [ "CFG_ZIGBEE_TOUCHLINK=1" ]
-
-    cflags = []
-    foreach(include_dir, _include_dirs) {
-      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
-    }
-  }
-
-  source_set("${sdk_target_name}_zigbee") {
-    #sources = [ "${bl702_sdk_root}/components/network/zigbee/zbcli/zb_stack_cli.c" ]
-
-    libs = [
-      "${bl702_sdk_root}/components/network/zigbee/zbstack/lib/libzbstack.a",
-      "${bl702_sdk_root}/components/network/zigbee/zbstack/lib/libzbstackex.a",
-    ]
-
-    public_configs = [
-      ":${sdk_target_name}_config",
-      ":${sdk_target_name}_plat_config",
-      ":${sdk_target_name}_zigbee_config",
-    ]
-    ldflags = [ "-Wl,--defsym=__LD_CONFIG_FLASH_SIZE=0x100000" ]
-    cflags = [
-      "-Wno-implicit-function-declaration",
-      "-Wno-incompatible-pointer-types",
-      "-Wno-unused-variable",
-    ]
-  }
-
-  group(sdk_target_name) {
-    public_deps = [
-      ":${sdk_target_name}_bflb_platform",
-      ":${sdk_target_name}_ble",
-      ":${sdk_target_name}_drv",
-      ":${sdk_target_name}_plat",
-    ]
-
-    if (chip_enable_openthread) {
-      public_deps += [ ":${sdk_target_name}_otport" ]
-    }
-
-    if (chip_enable_wifi) {
-      public_deps += [ ":${sdk_target_name}_lwip_port" ]
-      public_deps += [ ":${sdk_target_name}_lwip" ]
-    }
-
-    if (enable_zigbee) {
-      public_deps += [ ":${sdk_target_name}_zigbee" ]
-    }
-
-    if (enable_cdc_module) {
-      public_deps += [ ":${sdk_target_name}_cdc" ]
-    }
-
-    public_deps += [ ":${sdk_target_name}_app" ]
-  }
-}
diff --git a/third_party/bouffalolab/bl702/bl_iot_sdk.gni b/third_party/bouffalolab/bl702/bl_iot_sdk.gni
new file mode 100644
index 0000000..9e96105
--- /dev/null
+++ b/third_party/bouffalolab/bl702/bl_iot_sdk.gni
@@ -0,0 +1,826 @@
+# Copyright (c) 2021 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.
+import("//args.gni")
+import("//build_overrides/bouffalolab_iot_sdk.gni")
+import("//build_overrides/chip.gni")
+import("//build_overrides/mbedtls.gni")
+import("//build_overrides/openthread.gni")
+import("${chip_root}/src/lib/lib.gni")
+
+import("${mbedtls_root}/mbedtls.gni")
+
+declare_args() {
+  bl_iot_sdk_root = "${chip_root}/third_party/bouffalolab/repo"
+
+  enable_cdc_module = false
+
+  thread_port_1_3 = false
+}
+
+assert(bl_iot_sdk_root != "", "bl_iot_sdk_root must be specified")
+
+# Defines an Bouffa Lab IOT SDK build target.
+#
+# Parameters:
+#   bl_iot_sdk_root - The location of Bouffalo Lab IOT SDK.
+#   sources - The sources files to build.
+template("bl_iot_sdk") {
+  sdk_target_name = target_name
+
+  if (defined(invoker.enable_zigbee)) {
+    enable_zigbee = invoker.enable_zigbee
+  }
+
+  if (defined(invoker.enable_cdc_module)) {
+    enable_cdc_module = invoker.enable_cdc_module
+  }
+
+  config("${sdk_target_name}_config") {
+    defines = [
+      "__FILENAME__=strrchr(__FILE__,'/')?strrchr(__FILE__,'/')+1:__FILE__",
+      "ARCH_RISCV",
+      "BL702=BL702",
+      "BFLB_USE_ROM_DRIVER=1",
+      "BFLB_USE_HAL_DRIVER=1",
+    ]
+
+    include_dirs = []
+    if (defined(invoker.include_dirs)) {
+      include_dirs += invoker.include_dirs
+    }
+
+    if (defined(invoker.defines)) {
+      defines += invoker.defines
+    }
+
+    if (defined(invoker.freertos_config)) {
+      cflags_c = [
+        "-include",
+        rebase_path("${invoker.freertos_config}", root_build_dir),
+      ]
+    }
+  }
+
+  config("${sdk_target_name}_config_soc") {
+    include_dirs =
+        [ "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_rf/include" ]
+  }
+
+  source_set("${sdk_target_name}_soc") {
+    defines = [ "CFG_CPP_ENABLE" ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/boot/gcc/start.S",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/debug.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/strntoumax.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702/evb/src/vprint.c",
+    ]
+
+    libs = [ "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_rf/lib/libbl702_rf.a" ]
+
+    cflags_c = [ "-Wno-format-truncation" ]
+  }
+
+  config("${sdk_target_name}_config_BSP_Driver") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/inc",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/regs",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/startup",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/risc-v/Core/Include",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/soft_crc",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/MCU_Common/misc",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Common/platform/",
+    ]
+
+    defines = [ "bl706_iot" ]
+  }
+
+  source_set("${sdk_target_name}_BSP_Driver") {
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_acomp.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_adc.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_aon.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_cam.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_clock.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_common.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_dac.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_dma.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_ef_ctrl.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_emac.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_glb.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_hbn.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2c.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2c_gpio_sim.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_i2s.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_ir.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_kys.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_l1c.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_mjpeg.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_pds.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_psram.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_pwm.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_qdec.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_romapi.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sec_dbg.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sec_eng.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_cfg.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_cfg_ext.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sf_ctrl.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sflash.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_sflash_ext.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_spi.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_timer.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_uart.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_usb.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_xip_sflash.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_std/BSP_Driver/std_drv/src/bl702_xip_sflash_ext.c",
+    ]
+
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_BSP_Driver",
+    ]
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-unused-variable",
+    ]
+  }
+
+  config("${sdk_target_name}_config_freertos") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/config",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/panic",
+    ]
+  }
+
+  source_set("${sdk_target_name}_bl702_freertos") {
+    defines = [ "portasmHANDLE_INTERRUPT=interrupt_entry" ]
+    include_dirs = [ "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/chip_specific_extensions/RV32F_float_abi_single" ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/event_groups.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/list.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/misaligned/fp_asm.S",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/misaligned/misaligned_ldst.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/panic/panic_c.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/port.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/GCC/RISC-V/portASM.S",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/MemMang/heap_5.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/portable/MemMang/heap_5_psram.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/queue.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/stream_buffer.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/tasks.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_freertos/timers.c",
+    ]
+
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-old-style-declaration",
+    ]
+
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_freertos",
+    ]
+  }
+
+  source_set("${sdk_target_name}_bl702_usb_cdc") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/fs/vfs/include",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Inc",
+    ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/bl702_hal_pcd.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/bl702_usb_cdc.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usb_device.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_cdc.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_cdc_if.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_conf.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_core.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_ctlreq.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_desc.c",
+      "${bl_iot_sdk_root}/components/platform/soc/bl702/bl702_usb_cdc/Src/usbd_ioreq.c",
+    ]
+
+    cflags_c = [ "-Wno-sign-compare" ]
+
+    public_configs = [ ":${sdk_target_name}_config" ]
+  }
+
+  config("${sdk_target_name}_config_hosal") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/platform/hosal/include",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/include",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common",
+    ]
+
+    cflags_cc = [ "-Wno-literal-suffix" ]
+  }
+
+  source_set("${sdk_target_name}_hosal") {
+    defines = [ "CFG_USE_XTAL32K=1" ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_adc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_boot2.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_chip.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_cks.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_dma.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_efuse.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_emac.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_flash.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_gpio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_hbn.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_ir.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_irq.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_pds.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_psram.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_pwm.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_rtc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_sec.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_sys.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_timer.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_uart.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_wdt.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/bl_wireless.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_board.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_boot2.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_button.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_gpio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_hbn.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_hwtimer.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_pds.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_sys.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hal_tcal.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_adc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_dac.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_dma.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_flash.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_gpio.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_i2c.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_ota.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_pwm.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_rng.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_rtc.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_spi.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_timer.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_uart.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/bl702_hal/hosal_wdg.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_aes.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_common.c",
+      "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_pka.c",
+
+      # need update bl_sec_sha.c to fix compile error
+      # "${bl_iot_sdk_root}/components/platform/hosal/sec_common/bl_sec_sha.c",
+    ]
+
+    cflags_c = [
+      "-Wno-unused-variable",
+      "-Wno-sign-compare",
+      "-Wno-enum-conversion",
+      "-Wno-old-style-declaration",
+      "-Wno-stringop-overflow",
+      "-Wno-format-truncation",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_soc",
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_stage",
+      ":${sdk_target_name}_config_sys",
+      ":${sdk_target_name}_config_fs",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_hosal",
+    ]
+  }
+
+  config("${sdk_target_name}_config_fs") {
+    include_dirs = [ "${bl_iot_sdk_root}/components/fs/vfs/include" ]
+  }
+
+  source_set("${sdk_target_name}_fs") {
+    sources = [
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_adc.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_gpio.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_pwm.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_spi.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/device/vfs_uart.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_file.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_inode.c",
+      "${bl_iot_sdk_root}/components/fs/vfs/src/vfs_register.c",
+    ]
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-builtin-declaration-mismatch",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_stage",
+      ":${sdk_target_name}_config_fs",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_fs",
+    ]
+  }
+
+  source_set("${sdk_target_name}_libc") {
+    sources = [
+      "${bl_iot_sdk_root}/components/libc/newlibc/assert.c",
+      "${bl_iot_sdk_root}/components/libc/newlibc/stdatomic.c",
+      "${bl_iot_sdk_root}/components/libc/newlibc/syscalls.c",
+    ]
+    cflags_c = [ "-Wno-builtin-declaration-mismatch" ]
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [ ":${sdk_target_name}_config" ]
+  }
+
+  config("${sdk_target_name}_config_stage") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/stage/easyflash4/inc",
+      "${bl_iot_sdk_root}/components/stage/yloop/include",
+      "${bl_iot_sdk_root}/components/stage/blog",
+      "${bl_iot_sdk_root}/components/stage/yloop/include/aos",
+      "${bl_iot_sdk_root}/components/stage/blfdt/inc",
+      "${bl_iot_sdk_root}/components/stage/cli/cli/include",
+    ]
+  }
+
+  source_set("${sdk_target_name}_stage") {
+    sources = [
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_addresses.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_empty_tree.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_overlay.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_ro.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_rw.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_strerror.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_sw.c",
+      "${bl_iot_sdk_root}/components/stage/blfdt/src/fdt_wip.c",
+      "${bl_iot_sdk_root}/components/stage/blog/blog.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/easyflash.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_env.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_port.c",
+      "${bl_iot_sdk_root}/components/stage/easyflash4/src/ef_utils.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/aos_freertos.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/device.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/local_event.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/select.c",
+      "${bl_iot_sdk_root}/components/stage/yloop/src/yloop.c",
+    ]
+    cflags_c = [ "-Wno-sign-compare" ]
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_freertos",
+      ":${sdk_target_name}_config_fs",
+      ":${sdk_target_name}_config_sys",
+      ":${sdk_target_name}_config_utils",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_stage",
+    ]
+  }
+
+  config("${sdk_target_name}_config_sys") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/sys/bloop/bloop/include",
+      "${bl_iot_sdk_root}/components/sys/bloop/looprt/include",
+      "${bl_iot_sdk_root}/components/sys/bloop/loopset/include",
+      "${bl_iot_sdk_root}/components/sys/blmtd/include",
+    ]
+  }
+
+  source_set("${sdk_target_name}_sys") {
+    include_dirs = [ "${bl_iot_sdk_root}/components/sys/bltime/include" ]
+    sources = [
+      "${bl_iot_sdk_root}/components/sys/blmtd/bl_mtd.c",
+      "${bl_iot_sdk_root}/components/sys/bltime/bl_sys_time.c",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_sys",
+    ]
+  }
+
+  config("${sdk_target_name}_config_utils") {
+    include_dirs = [ "${bl_iot_sdk_root}/components/utils/include/" ]
+  }
+
+  source_set("${sdk_target_name}_utils") {
+    sources = [
+      "${bl_iot_sdk_root}/components/utils/src/utils_base64.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_crc.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_dns.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_fec.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_getopt.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_hex.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_hexdump.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_hmac_sha1_fast.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_list.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_log.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_memp.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_notifier.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_psk_fast.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_rbtree.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_sha256.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_string.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_time.c",
+      "${bl_iot_sdk_root}/components/utils/src/utils_tlv_bl.c",
+    ]
+
+    cflags_c = [
+      "-Wno-shadow",
+      "-Wno-sign-compare",
+    ]
+    configs += [
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_utils",
+    ]
+  }
+
+  config("${sdk_target_name}_ble_config") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/ble/blecontroller/ble_inc",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include/bluetooth",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/include/drivers/bluetooth",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include/zephyr",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/port/include",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host",
+    ]
+
+    defines = [
+      "BFLB_BLE",
+      "CONFIG_SET_TX_PWR",
+      "CFG_CON=1",
+      "CFG_BLE",
+      "CFG_SLEEP",
+      "CFG_BT_RESET",
+      "CONFIG_BT_PERIPHERAL=1",
+      "CFG_BLE_TX_BUFF_DATA=2",
+      "CONFIG_BT_GATT_DYNAMIC_DB",
+      "CONFIG_BT_GATT_SERVICE_CHANGED",
+      "CONFIG_BT_SETTINGS_CCC_LAZY_LOADING",
+      "CONFIG_BT_KEYS_OVERWRITE_OLDEST",
+      "CONFIG_BT_GAP_PERIPHERAL_PREF_PARAMS",
+      "CONFIG_BT_BONDABLE",
+      "CONFIG_BT_ASSERT",
+      "CFG_BLE_STACK_DBG_PRINT",
+    ]
+
+    cflags_cc = [ "-Wno-conversion" ]
+  }
+
+  source_set("${sdk_target_name}_ble") {
+    defines = [
+      "CONFIG_BT_L2CAP_DYNAMIC_CHANNEL",
+      "CONFIG_BT_GATT_CLIENT",
+      "CONFIG_BT_CONN=1",
+      "CONFIG_BT_GATT_DIS_PNP",
+      "CONFIG_BT_GATT_DIS_SERIAL_NUMBER",
+      "CONFIG_BT_GATT_DIS_FW_REV",
+      "CONFIG_BT_GATT_DIS_HW_REV",
+      "CONFIG_BT_GATT_DIS_SW_REV",
+      "CONFIG_BT_ECC",
+      "CONFIG_BT_KEYS_SAVE_AGING_COUNTER_ON_PAIRING",
+      "CONFIG_BT_HCI_VS_EVT_USER",
+      "CONFIG_BT_SETTINGS_USE_PRINTK",
+    ]
+
+    libs = [ "${bl_iot_sdk_root}/components/network/ble/blecontroller_702_std/lib/libblecontroller_702_std.a" ]
+
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/tinycrypt/include/tinycrypt",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/include/misc",
+    ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/bl_hci_wrapper/bl_hci_wrapper.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/atomic_c.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/buf.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/dec.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/log.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/poll.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/common/work_q.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/hci_onchip/hci_driver.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/att.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/bl_host_assist.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/conn.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/crypto.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/gatt.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/hci_core.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/l2cap.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/settings.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/host/uuid.c",
+      "${bl_iot_sdk_root}/components/network/ble/blestack/src/port/bl_port.c",
+    ]
+
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_freertos",
+      ":${sdk_target_name}_config_utils",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_ble_config",
+    ]
+
+    cflags_c = [
+      "-Wno-sign-compare",
+      "-Wno-unused-but-set-variable",
+      "-Wno-misleading-indentation",
+      "-Wno-format",
+      "-Wno-format-nonliteral",
+      "-Wno-format-security",
+      "-Wno-unused-function",
+      "-Wno-incompatible-pointer-types",
+      "-Wno-discarded-qualifiers",
+    ]
+  }
+
+  config("${sdk_target_name}_config_openthread_port") {
+    defines = [ "OT_FREERTOS_ENABLE=1" ]
+    if (thread_port_1_3) {
+      defines += [ "OT_THREAD_PORT_1_3" ]
+    }
+
+    include_dirs = [
+      "${chip_root}/platform/bl702",
+      "${chip_root}/third_party/openthread/repo/src/core",
+      "${chip_root}/third_party/openthread/repo/examples/platforms",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/include",
+    ]
+
+    if (thread_port_1_3) {
+      include_dirs += [
+        "${bl_iot_sdk_root}/components/network/thread/openthread_utils/include",
+      ]
+    }
+  }
+
+  source_set("${sdk_target_name}_openthread") {
+    import("//build_overrides/openthread.gni")
+
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/lmac154/include",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port",
+      "${openthread_root}/examples/platforms/utils/",
+      "${openthread_root}/examples",
+    ]
+
+    sources = [
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_alarm.c",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_diag.c",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_entropy.c",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_logging.c",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_misc.c",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_radio.c",
+      "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_settings.c",
+    ]
+
+    libs = [ "${bl_iot_sdk_root}/components/network/lmac154/lib/liblmac154.a" ]
+
+    if (thread_port_1_3) {
+      sources += [ "${bl_iot_sdk_root}/components/network/thread/openthread_port/ot_linkmetric.c" ]
+      libs += [ "${bl_iot_sdk_root}/components/network/thread/openthread_utils/lib/libopenthread_utils.a" ]
+    }
+
+    configs += [
+      ":${sdk_target_name}_config_BSP_Driver",
+      ":${sdk_target_name}_config_utils",
+      ":${sdk_target_name}_config_hosal",
+      ":${sdk_target_name}_config_stage",
+      ":${sdk_target_name}_config_freertos",
+    ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_openthread_port",
+    ]
+
+    public_deps = [
+      "${bouffalolab_iot_sdk_build_root}/bl702:mbedtls",
+      "${chip_root}/third_party/openthread/platforms:libopenthread-platform-utils",
+      "${openthread_root}/src/core:libopenthread_core_headers",
+    ]
+  }
+
+  config("${sdk_target_name}_config_lwip_port") {
+    _include_dirs = [
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/config",
+      "${bl_iot_sdk_root}/components/stage/virt_net/include",
+      "${bl_iot_sdk_root}/components/stage/throughput/bl702/inc",
+    ]
+
+    defines = [
+      "TCPIP_THREAD_PRIO=24",
+      "CFG_ETHERNET_ENABLE=1",
+    ]
+
+    cflags = []
+    foreach(include_dir, _include_dirs) {
+      cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ]
+    }
+
+    cflags += [
+      "-Wno-conversion",
+      "-Wno-unused-function",
+    ]
+  }
+
+  source_set("${sdk_target_name}_lwip_port") {
+    defines = [
+      "SPI_WIFI_RXBUFF_IN_PSRAM=1",
+      "VIRT_NET_SPI_RX_TASK_PRIORITY=25",
+    ]
+
+    #    include_dirs = [
+    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/arch",
+    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
+    #      "${bl_iot_sdk_root}/components/stage/throughput"
+    #    ]
+
+    #    sources = [
+    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
+    #      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c"
+    #    ]
+
+    #    sources += [
+    #      "${bl_iot_sdk_root}/components/stage/throughput/bl702/src/tp_spi_master.c",
+    #    ]
+    #    sources += [
+    #      "${bl_iot_sdk_root}/components/stage/virt_net/src/virt_net.c",
+    #      "${bl_iot_sdk_root}/components/stage/virt_net/src/virt_net_spi.c",
+    #    ]
+
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_lwip_port",
+      ":${sdk_target_name}_config_lwip",
+    ]
+
+    cflags = [ "-Wno-sign-compare" ]
+  }
+
+  config("${sdk_target_name}_config_lwip") {
+    include_dirs = [
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/config",
+      "${bl_iot_sdk_root}/components/network/lwip/src/include",
+      "${bl_iot_sdk_root}/components/network/lwip/src/include/lwip/apps",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/hook",
+    ]
+
+    defines = [
+      "LWIP_IPV6=1",
+      "LWIP_IPV4=1",
+      "LWIP_IPV6_DHCP6=1",
+      "LWIP_IPV6_SCOPES=0",
+      "PBUF_POOL_SIZE=20",
+      "PBUF_POOL_BUFSIZE=(1280+150)",
+    ]
+  }
+
+  source_set("${sdk_target_name}_lwip") {
+    sources = [
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/ethernetif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/lwip-port/FreeRTOS/sys_arch.c",
+    ]
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/bridgeif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/bridgeif_fdb.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/ethernet.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/slipif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/netif/zepif.c",
+    ]
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/def.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/dns.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/inet_chksum.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/init.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ip.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/mem.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/memp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/netif.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/pbuf.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/raw.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/stats.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/sys.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp_in.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/tcp_out.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/timeouts.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/udp.c",
+    ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/autoip.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/dhcp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/etharp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/icmp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/igmp.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4_addr.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv4/ip4_frag.c",
+    ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/dhcp6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ethip6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/icmp6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/inet6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_addr.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_frag.c",
+
+      #"${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/ip6_route_table.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/mld6.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/core/ipv6/nd6.c",
+    ]
+
+    sources += [
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/api_lib.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/api_msg.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/err.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/if_api.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/netbuf.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/netifapi.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/sockets.c",
+      "${bl_iot_sdk_root}/components/network/lwip/src/api/tcpip.c",
+    ]
+    sources +=
+        [ "${bl_iot_sdk_root}/components/network/lwip/src/apps/mdns/mdns.c" ]
+
+    configs += [ ":${sdk_target_name}_config_freertos" ]
+    public_configs = [
+      ":${sdk_target_name}_config",
+      ":${sdk_target_name}_config_lwip",
+    ]
+  }
+
+  group(sdk_target_name) {
+    public_deps = [
+      ":${sdk_target_name}_BSP_Driver",
+      ":${sdk_target_name}_bl702_freertos",
+      ":${sdk_target_name}_ble",
+      ":${sdk_target_name}_fs",
+      ":${sdk_target_name}_hosal",
+      ":${sdk_target_name}_libc",
+      ":${sdk_target_name}_soc",
+      ":${sdk_target_name}_stage",
+      ":${sdk_target_name}_sys",
+      ":${sdk_target_name}_utils",
+    ]
+
+    if (chip_enable_openthread) {
+      public_deps += [ ":${sdk_target_name}_openthread" ]
+    }
+
+    if (chip_enable_wifi) {
+      public_deps += [ ":${sdk_target_name}_lwip_port" ]
+      public_deps += [ ":${sdk_target_name}_lwip" ]
+    }
+
+    if (enable_cdc_module) {
+      public_deps += [ ":${sdk_target_name}_bl702_usb_cdc" ]
+    }
+  }
+}
diff --git a/third_party/bouffalolab/bl702/bl702_board.gni b/third_party/bouffalolab/common/bouffalolab_board.gni
similarity index 78%
rename from third_party/bouffalolab/bl702/bl702_board.gni
rename to third_party/bouffalolab/common/bouffalolab_board.gni
index 5aa17fd..c21e839 100644
--- a/third_party/bouffalolab/bl702/bl702_board.gni
+++ b/third_party/bouffalolab/common/bouffalolab_board.gni
@@ -13,14 +13,13 @@
 # limitations under the License.
 
 declare_args() {
-  # BL602 board used
-  bl702_board = "BL-IOT-DVK"
+  bouffalolab_bard = "BL-IOT-DVK"
 }
 
-if (bl702_board == "") {
-  bl702_board = "BL-IOT-DVK"
+if (bouffalolab_bard == "") {
+  bouffalolab_bard = "BL-IOT-DVK"
 }
 
-assert(bl702_board != "", "bl702_board must be specified")
+assert(bouffalolab_bard != "", "bouffalolab_bard must be specified")
 
 board_defines = []
diff --git a/third_party/bouffalolab/bl602/bl602_executable.gni b/third_party/bouffalolab/common/bouffalolab_executable.gni
similarity index 80%
rename from third_party/bouffalolab/bl602/bl602_executable.gni
rename to third_party/bouffalolab/common/bouffalolab_executable.gni
index 5c327b0..54f4c03 100644
--- a/third_party/bouffalolab/bl602/bl602_executable.gni
+++ b/third_party/bouffalolab/common/bouffalolab_executable.gni
@@ -18,7 +18,7 @@
 import("//build_overrides/bouffalolab_iot_sdk.gni")
 import("${build_root}/toolchain/flashable_executable.gni")
 
-template("bl602_executable") {
+template("bouffalolab_executable") {
   output_base_name = get_path_info(invoker.output_name, "name")
 
   objcopy_image_name = output_base_name + ".bin"
@@ -40,9 +40,13 @@
     "${chip_root}/scripts/flashing/bouffalolab_firmware_utils.py",
     "${chip_root}/scripts/flashing/firmware_utils.py",
 
-    "${chip_root}/examples/platform/bouffalolab/bl602/flash_config/partition_cfg_2M.toml",
-    "${chip_root}/examples/platform/bouffalolab/bl602/flash_config/partition_cfg_4M.toml",
+    "${chip_root}/examples/platform/bouffalolab/${invoker.bl_plat_name}/flash_config/partition_cfg_2M.toml",
   ]
+
+  if (invoker.bl_plat_name == "bl602") {
+    flashing_script_inputs += [ "${chip_root}/examples/platform/bouffalolab/${invoker.bl_plat_name}/flash_config/partition_cfg_4M.toml" ]
+  }
+
   copy(flashing_runtime_target) {
     sources = flashing_script_inputs
     outputs = [ "${root_out_dir}/{{source_file_part}}" ]
@@ -53,12 +57,16 @@
   flashing_script_name = output_base_name + ".flash.py"
   flashing_options = [ "bouffalolab" ]
   flashing_options += [ "--chipname" ]
-  flashing_options += [ "bl602" ]
+  flashing_options += [ "${invoker.bl_plat_name}" ]
   flashing_options += [ "--xtal" ]
-  flashing_options += [ "40M" ]
-  flashing_options += [ "--pt" ]
+  if (invoker.bl_plat_name == "bl602") {
+    flashing_options += [ "40M" ]
+  } else if (invoker.bl_plat_name == "bl702") {
+    flashing_options += [ "32M" ]
+  }
 
-  if (invoker.board == "BL602-IOT-DVK-3S") {
+  flashing_options += [ "--pt" ]
+  if (invoker.board == "BL602-IOT-DVK-3S" || invoker.bl_plat_name == "bl702") {
     flashing_options +=
         [ rebase_path("partition_cfg_2M.toml", root_out_dir, root_out_dir) ]
   } else {
diff --git a/third_party/bouffalolab/bl702/bl702_riscv.gni b/third_party/bouffalolab/common/rsicv.gni
similarity index 95%
rename from third_party/bouffalolab/bl702/bl702_riscv.gni
rename to third_party/bouffalolab/common/rsicv.gni
index 2c52532..dc75aaa 100644
--- a/third_party/bouffalolab/bl702/bl702_riscv.gni
+++ b/third_party/bouffalolab/common/rsicv.gni
@@ -12,8 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import("bl702_board.gni")
-
 riscv_arch = "rv32imfc"
 riscv_abi = "ilp32f"
 #  riscv_cpu = ""
diff --git a/third_party/bouffalolab/repo b/third_party/bouffalolab/repo
index ae0622d..abf04dc 160000
--- a/third_party/bouffalolab/repo
+++ b/third_party/bouffalolab/repo
@@ -1 +1 @@
-Subproject commit ae0622d85476ed838ebc3efde9743c376bc9f96d
+Subproject commit abf04dcdc4ce5f94c57b6150d6ba52a22b700880