Skip to content

Commit 4f2849b

Browse files
wqx6shgutte
authored andcommitted
esp32: update esp_rcp_update version to 1.2.0 (project-chip#35114)
* esp32: update esp_rcp_update version to 1.2.0 * change for ESP32ThreadInit * fix compile error when lwip ipv6 address number > 8
1 parent 4b64e46 commit 4f2849b

File tree

9 files changed

+19
-121
lines changed

9 files changed

+19
-121
lines changed

config/esp32/components/chip/idf_component.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ dependencies:
2727
- if: "target != esp32h2"
2828

2929
espressif/esp_rcp_update:
30-
version: "1.0.3"
30+
version: "1.2.0"
3131
rules:
3232
- if: "idf_version >=5.0"
3333

examples/platform/esp32/common/Esp32ThreadInit.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ void ESPOpenThreadInit()
4242
.host_config = ESP_OPENTHREAD_DEFAULT_HOST_CONFIG(),
4343
.port_config = ESP_OPENTHREAD_DEFAULT_PORT_CONFIG(),
4444
};
45-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
45+
#if defined(CONFIG_OPENTHREAD_BORDER_ROUTER) && defined(CONFIG_AUTO_UPDATE_RCP)
4646
esp_vfs_spiffs_conf_t rcp_fw_conf = {
4747
.base_path = "/rcp_fw", .partition_label = "rcp_fw", .max_files = 10, .format_if_mount_failed = false
4848
};
@@ -53,7 +53,7 @@ void ESPOpenThreadInit()
5353
}
5454
esp_rcp_update_config_t rcp_update_config = ESP_OPENTHREAD_RCP_UPDATE_CONFIG();
5555
openthread_init_br_rcp(&rcp_update_config);
56-
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER
56+
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER && CONFIG_AUTO_UPDATE_RCP
5757
set_openthread_platform_config(&config);
5858

5959
if (ThreadStackMgr().InitThreadStack() != CHIP_NO_ERROR)

examples/platform/esp32/common/Esp32ThreadInit.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
.storage_partition_name = "nvs", .netif_queue_size = 10, .task_queue_size = 10, \
8585
}
8686

87-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
87+
#if defined(CONFIG_OPENTHREAD_BORDER_ROUTER) && defined(CONFIG_AUTO_UPDATE_RCP)
8888
#include <esp_rcp_update.h>
8989
#define RCP_FIRMWARE_DIR "/spiffs/ot_rcp"
9090

@@ -93,7 +93,7 @@
9393
.rcp_type = RCP_TYPE_ESP32H2_UART, .uart_rx_pin = 17, .uart_tx_pin = 18, .uart_port = 1, .uart_baudrate = 115200, \
9494
.reset_pin = 7, .boot_pin = 8, .update_baudrate = 460800, .firmware_dir = "/rcp_fw/ot_rcp", .target_chip = ESP32H2_CHIP, \
9595
}
96-
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER
96+
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER && CONFIG_AUTO_UPDATE_RCP
9797

9898
#endif // CONFIG_OPENTHREAD_ENABLED
9999

examples/thread-br-app/esp32/create_ota_image.py

-92
This file was deleted.

examples/thread-br-app/esp32/main/CMakeLists.txt

-10
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,6 @@ idf_component_register(PRIV_INCLUDE_DIRS
6161

6262
get_filename_component(CHIP_ROOT ${CMAKE_SOURCE_DIR}/third_party/connectedhomeip REALPATH)
6363

64-
idf_build_get_property(python PYTHON)
65-
add_custom_target(rcp_image_generation ALL
66-
COMMAND ${python} ${CMAKE_CURRENT_SOURCE_DIR}/../create_ota_image.py
67-
--rcp-build-dir $ENV{IDF_PATH}/examples/openthread/ot_rcp/build
68-
--target-file ${CMAKE_CURRENT_BINARY_DIR}/spiffs_image/ot_rcp_0/rcp_image
69-
)
70-
spiffs_create_partition_image(rcp_fw ${CMAKE_CURRENT_BINARY_DIR}/spiffs_image FLASH_IN_PROJECT
71-
DEPENDS rcp_image_generation)
72-
73-
7464
include("${CHIP_ROOT}/build/chip/esp32/esp32_codegen.cmake")
7565

7666
chip_app_component_codegen("${CHIP_ROOT}/examples/thread-br-app/thread-br-common/thread-br-app.matter")

examples/thread-br-app/esp32/sdkconfig.defaults

+4-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
4141
# LWIP
4242
CONFIG_LWIP_IPV6_FORWARD=y
4343
CONFIG_LWIP_IPV6_AUTOCONFIG=y
44-
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
44+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=12
4545
CONFIG_LWIP_MULTICAST_PING=y
4646
CONFIG_LWIP_NETIF_STATUS_CALLBACK=y
4747
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
@@ -67,6 +67,9 @@ CONFIG_OPENTHREAD_DNS_CLIENT=n
6767
CONFIG_OPENTHREAD_BORDER_ROUTER=y
6868
CONFIG_THREAD_NETWORK_COMMISSIONING_DRIVER=n
6969

70+
# Auto update RCP firmware
71+
CONFIG_AUTO_UPDATE_RCP=y
72+
7073
# Use platform mDNS
7174
CONFIG_USE_MINIMAL_MDNS=n
7275

src/platform/ESP32/DiagnosticDataProviderImpl.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ CHIP_ERROR DiagnosticDataProviderImpl::GetNetworkInterfaces(NetworkInterface **
206206
esp_netif_t * netif = esp_netif_next(NULL);
207207
NetworkInterface * head = NULL;
208208
uint8_t ipv6_addr_count = 0;
209-
esp_ip6_addr_t ip6_addr[kMaxIPv6AddrCount];
209+
esp_ip6_addr_t ip6_addr[LWIP_IPV6_NUM_ADDRESSES];
210210
if (netif == NULL)
211211
{
212212
ChipLogError(DeviceLayer, "Failed to get network interfaces");
@@ -253,7 +253,6 @@ CHIP_ERROR DiagnosticDataProviderImpl::GetNetworkInterfaces(NetworkInterface **
253253
#endif // !defined(CONFIG_DISABLE_IPV4)
254254

255255
static_assert(kMaxIPv6AddrCount <= UINT8_MAX, "Count might not fit in ipv6_addr_count");
256-
static_assert(ArraySize(ip6_addr) >= LWIP_IPV6_NUM_ADDRESSES, "Not enough space for our addresses.");
257256
auto addr_count = esp_netif_get_all_ip6(ifa, ip6_addr);
258257
if (addr_count < 0)
259258
{

src/platform/ESP32/OpenthreadLauncher.cpp

+6-8
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ static void ot_task_worker(void * context)
138138
vTaskDelete(NULL);
139139
}
140140

141-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
141+
#if defined(CONFIG_OPENTHREAD_BORDER_ROUTER) && defined(CONFIG_AUTO_UPDATE_RCP)
142142

143143
static constexpr size_t kRcpVersionMaxSize = 100;
144144
static const char * TAG = "RCP_UPDATE";
@@ -183,16 +183,14 @@ static void try_update_ot_rcp(const esp_openthread_platform_config_t * config)
183183
esp_restart();
184184
}
185185
}
186-
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER
187186

188187
static void rcp_failure_handler(void)
189188
{
190-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
191189
esp_rcp_mark_image_unusable();
192190
try_update_ot_rcp(s_platform_config);
193-
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER
194191
esp_rcp_reset();
195192
}
193+
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER && CONFIG_AUTO_UPDATE_RCP
196194

197195
esp_err_t set_openthread_platform_config(esp_openthread_platform_config_t * config)
198196
{
@@ -208,7 +206,7 @@ esp_err_t set_openthread_platform_config(esp_openthread_platform_config_t * conf
208206
return ESP_OK;
209207
}
210208

211-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
209+
#if defined(CONFIG_OPENTHREAD_BORDER_ROUTER) && defined(CONFIG_AUTO_UPDATE_RCP)
212210
esp_err_t openthread_init_br_rcp(const esp_rcp_update_config_t * update_config)
213211
{
214212
esp_err_t err = ESP_OK;
@@ -219,7 +217,7 @@ esp_err_t openthread_init_br_rcp(const esp_rcp_update_config_t * update_config)
219217
esp_openthread_register_rcp_failure_handler(rcp_failure_handler);
220218
return err;
221219
}
222-
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER
220+
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER && CONFIG_AUTO_UPDATE_RCP
223221

224222
esp_err_t openthread_init_stack(void)
225223
{
@@ -236,9 +234,9 @@ esp_err_t openthread_init_stack(void)
236234
assert(s_platform_config);
237235
// Initialize the OpenThread stack
238236
ESP_ERROR_CHECK(esp_openthread_init(s_platform_config));
239-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
237+
#if defined(CONFIG_OPENTHREAD_BORDER_ROUTER) && defined(CONFIG_AUTO_UPDATE_RCP)
240238
try_update_ot_rcp(s_platform_config);
241-
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER
239+
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER && CONFIG_AUTO_UPDATE_RCP
242240
#ifdef CONFIG_OPENTHREAD_CLI
243241
esp_openthread_matter_cli_init();
244242
cli_command_transmit_task();

src/platform/ESP32/OpenthreadLauncher.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919

2020
#include <esp_err.h>
2121
#include <esp_openthread_types.h>
22-
#include <esp_rcp_update.h>
2322
#include <lib/core/CHIPError.h>
2423
#include <memory>
2524

26-
#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER
25+
#if defined(CONFIG_OPENTHREAD_BORDER_ROUTER) && defined(CONFIG_AUTO_UPDATE_RCP)
26+
#include <esp_rcp_update.h>
2727
esp_err_t openthread_init_br_rcp(const esp_rcp_update_config_t * update_config);
28-
#endif
28+
#endif // CONFIG_OPENTHREAD_BORDER_ROUTER && CONFIG_AUTO_UPDATE_RCP
2929
esp_err_t set_openthread_platform_config(esp_openthread_platform_config_t * config);
3030
esp_err_t openthread_init_stack(void);
3131
esp_err_t openthread_launch_task(void);

0 commit comments

Comments
 (0)