Skip to content

Commit c9f73c7

Browse files
axelnxpdleach02
authored andcommitted
zephyr: rw61x: rework cpu2 monolithic handling
To simplify how coexistence between BLE and 15.4 works, we decided to choose the cpu2 firmware based on which SoC is used. If RW612 is used, then we use the combo firmware. If RW610 is used, then we use the ble only firmware. MONOLITHIC_BT and MONOLITHIC_IEEE802154 configs have been combined into a single one: MONOLITHIC_NBR. We also unify the fw array symbol to `fw_cpu2` and make it transparent to the connectivity_framework by using the preprocessor. Signed-off-by: Axel Le Bourhis <[email protected]>
1 parent 328dcad commit c9f73c7

File tree

3 files changed

+23
-32
lines changed

3 files changed

+23
-32
lines changed

mcux/middleware/mcux-sdk-middleware-connectivity-framework/connectivity_framework.cmake

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,19 @@ if(CONFIG_SOC_SERIES_RW6XX)
1919

2020
zephyr_compile_definitions(gPlatformDisableVendorSpecificInit=1U)
2121

22-
if (CONFIG_NXP_MONOLITHIC_WIFI OR CONFIG_NXP_MONOLITHIC_BT OR CONFIG_NXP_MONOLITHIC_IEEE802154)
23-
zephyr_compile_definitions(gPlatformMonolithicApp_d=1U)
24-
25-
zephyr_compile_definitions_ifndef(CONFIG_NXP_MONOLITHIC_BT
26-
BLE_FW_ADDRESS=0U)
22+
if (CONFIG_NXP_MONOLITHIC_WIFI OR CONFIG_NXP_MONOLITHIC_NBU)
23+
zephyr_compile_definitions(
24+
gPlatformMonolithicApp_d=1U
25+
fw_cpu2_ble=fw_cpu2
26+
fw_cpu2_combo=fw_cpu2
27+
)
28+
29+
zephyr_compile_definitions_ifndef(CONFIG_NXP_MONOLITHIC_NBU
30+
BLE_FW_ADDRESS=0U
31+
COMBO_FW_ADDRESS=0U)
2732

2833
zephyr_compile_definitions_ifndef(CONFIG_NXP_MONOLITHIC_WIFI
2934
WIFI_FW_ADDRESS=0U)
30-
31-
zephyr_compile_definitions_ifndef(CONFIG_NXP_MONOLITHIC_IEEE802154
32-
COMBO_FW_ADDRESS=0U)
3335
endif()
3436
endif()
3537

zephyr/src/rw61x/CMakeLists.txt

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
if(CONFIG_NXP_MONOLITHIC_WIFI OR CONFIG_NXP_MONOLITHIC_BT OR CONFIG_NXP_MONOLITHIC_IEEE802154)
1+
if(CONFIG_NXP_MONOLITHIC_WIFI OR CONFIG_NXP_MONOLITHIC_NBU)
22
set(hal_blobs_dir ${ZEPHYR_HAL_NXP_MODULE_DIR}/zephyr/blobs/rw61x)
33

44
set(signed_binary_blobs_list)
@@ -14,21 +14,15 @@ if(CONFIG_NXP_MONOLITHIC_WIFI OR CONFIG_NXP_MONOLITHIC_BT OR CONFIG_NXP_MONOLITH
1414

1515
zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/rw61x_cpu1.c)
1616
endif()
17-
if(CONFIG_NXP_MONOLITHIC_IEEE802154)
18-
list(APPEND output_includes_list ${ZEPHYR_BINARY_DIR}/include/generated/rw61x_combo_fw.bin.inc)
19-
20-
set(signed_binary_blob_name rw61x_sb_combo_a2.bin)
21-
22-
list(APPEND signed_binary_blobs_list ${hal_blobs_dir}/${signed_binary_blob_name})
23-
24-
zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/rw61x_cpu2.c)
25-
elseif(CONFIG_NXP_MONOLITHIC_BT)
26-
list(APPEND output_includes_list ${ZEPHYR_BINARY_DIR}/include/generated/rw61x_ble_fw.bin.inc)
27-
28-
set(signed_binary_blob_name rw61x_sb_ble_a2.bin)
17+
if(CONFIG_NXP_MONOLITHIC_NBU)
18+
if(CONFIG_SOC_RW612)
19+
set(signed_binary_blob_name rw61x_sb_combo_a2.bin)
20+
else()
21+
set(signed_binary_blob_name rw61x_sb_ble_a2.bin)
22+
endif()
23+
list(APPEND output_includes_list ${ZEPHYR_BINARY_DIR}/include/generated/rw61x_cpu2_fw.bin.inc)
2924

3025
list(APPEND signed_binary_blobs_list ${hal_blobs_dir}/${signed_binary_blob_name})
31-
3226
zephyr_library_sources(${CMAKE_CURRENT_LIST_DIR}/rw61x_cpu2.c)
3327
endif()
3428

zephyr/src/rw61x/rw61x_cpu2.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,9 @@
99

1010
#include <stdint.h>
1111

12-
#if defined(CONFIG_NXP_MONOLITHIC_IEEE802154)
13-
__attribute__ ((__section__(".fw_cpu2_combo"), used))
14-
const uint8_t fw_cpu2_combo[] = {
15-
#include <rw61x_combo_fw.bin.inc>
12+
#if defined(CONFIG_NXP_MONOLITHIC_NBU)
13+
__attribute__ ((__section__(".fw_cpu2"), used))
14+
const uint8_t fw_cpu2[] = {
15+
#include <rw61x_cpu2_fw.bin.inc>
1616
};
17-
#elif defined(CONFIG_NXP_MONOLITHIC_BT)
18-
__attribute__ ((__section__(".fw_cpu2_ble"), used))
19-
const uint8_t fw_cpu2_ble[] = {
20-
#include <rw61x_ble_fw.bin.inc>
21-
};
22-
#endif
17+
#endif

0 commit comments

Comments
 (0)