|
1 | | -# Copyright (c) 2024 STMicroelectronics |
| 1 | +# Copyright (c) 2025 STMicroelectronics |
2 | 2 | # |
3 | 3 | # SPDX-License-Identifier: Apache-2.0 |
4 | | - |
5 | 4 | zephyr_include_directories(Common/WPAN/Interfaces) |
6 | 5 | zephyr_include_directories(Common/WPAN/Modules) |
7 | 6 | zephyr_include_directories(Common/WPAN/Modules/Flash) |
8 | 7 | zephyr_include_directories(Common/WPAN/Modules/RTDebug) |
9 | 8 | zephyr_include_directories(Common/WPAN/Modules/Log) |
| 9 | +if(CONFIG_IEEE802154_STM32WBA) |
| 10 | + zephyr_include_directories(Common/WPAN/Modules/BasicAES) |
| 11 | +endif() |
10 | 12 | zephyr_include_directories(Utilities/misc) |
11 | 13 | zephyr_include_directories(Utilities/tim_serv) |
12 | 14 | zephyr_include_directories(Utilities/trace/adv_trace) |
13 | 15 | zephyr_include_directories(STM32_WPAN) |
14 | 16 |
|
15 | | - |
16 | 17 | zephyr_sources(Common/WPAN/Modules/Log/log_module.c) |
17 | 18 | zephyr_sources(Common/WPAN/Interfaces/hw_pka.c) |
18 | 19 | zephyr_sources(Common/WPAN/Interfaces/hw_pka_p256.c) |
19 | 20 | zephyr_sources(Common/WPAN/Modules/RTDebug/RTDebug.c) |
20 | 21 |
|
21 | | - |
22 | 22 | if(CONFIG_FLASH) |
23 | 23 | zephyr_sources(Common/WPAN/Modules/Flash/flash_manager.c) |
24 | 24 | zephyr_sources(Common/WPAN/Modules/Flash/flash_driver.c) |
25 | 25 | zephyr_sources(Common/WPAN/Modules/stm_list.c) |
26 | 26 | zephyr_sources(Common/WPAN/Modules/Flash/rf_timing_synchro.c) |
27 | 27 | endif() |
28 | 28 |
|
| 29 | +if(CONFIG_IEEE802154_STM32WBA) |
| 30 | + zephyr_sources(Common/WPAN/Modules/BasicAES/baes_ccm.c) |
| 31 | + zephyr_sources(Common/WPAN/Modules/BasicAES/baes_cmac.c) |
| 32 | + zephyr_sources(Common/WPAN/Modules/BasicAES/baes_ecb.c) |
| 33 | +endif() |
| 34 | + |
29 | 35 | set(STM32WBA_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../zephyr/blobs/stm32wba/lib) |
30 | 36 |
|
31 | 37 | # select the type of BLE library |
32 | | -if (CONFIG_BT_EXT_ADV |
33 | | - OR (CONFIG_BT_PER_ADV OR CONFIG_BT_PER_ADV_SYNC) |
34 | | - OR CONFIG_BT_SCA_UPDATE |
35 | | - OR (CONFIG_BT_DF_CTE_RX_AOA OR CONFIG_BT_CTLR_DF_ANT_SWITCH_RX OR CONFIG_BT_CTLR_DF_ANT_SWITCH_TX OR CONFIG_BT_DF_CTE_TX_AOD) |
36 | | - OR (CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER OR CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER OR CONFIG_BT_CTLR_SYNC_PERIODIC) |
37 | | - OR CONFIG_BT_ISO_UNICAST |
38 | | - OR CONFIG_BT_ISO_BROADCASTER |
39 | | - OR CONFIG_BT_ISO_SYNC_RECEIVER |
40 | | - OR CONFIG_BT_TRANSMIT_POWER_CONTROL |
41 | | - OR CONFIG_BT_SUBRATING |
42 | | - OR CONFIG_BT_CTLR_ADV_PERIODIC_ADI_SUPPORT |
43 | | - OR CONFIG_BT_EXT_ADV_CODING_SELECTION) |
44 | | - message(STATUS "link layer FULL lib selected") |
45 | | - set(BLE_LIB_TYPE "BLE_LIB_FULL") |
46 | | -else() |
47 | | - message(STATUS "link layer BASIC lib selected") |
48 | | - set(BLE_LIB_TYPE "BLE_LIB_BASIC") |
49 | | -endif() |
| 38 | +if(CONFIG_BT_STM32WBA) |
| 39 | + if(CONFIG_BT_EXT_ADV |
| 40 | + OR (CONFIG_BT_PER_ADV OR CONFIG_BT_PER_ADV_SYNC) |
| 41 | + OR CONFIG_BT_SCA_UPDATE |
| 42 | + OR (CONFIG_BT_DF_CTE_RX_AOA OR CONFIG_BT_CTLR_DF_ANT_SWITCH_RX OR CONFIG_BT_CTLR_DF_ANT_SWITCH_TX OR CONFIG_BT_DF_CTE_TX_AOD) |
| 43 | + OR (CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER OR CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER OR CONFIG_BT_CTLR_SYNC_PERIODIC) |
| 44 | + OR CONFIG_BT_ISO_UNICAST |
| 45 | + OR CONFIG_BT_ISO_BROADCASTER |
| 46 | + OR CONFIG_BT_ISO_SYNC_RECEIVER |
| 47 | + OR CONFIG_BT_TRANSMIT_POWER_CONTROL |
| 48 | + OR CONFIG_BT_SUBRATING |
| 49 | + OR CONFIG_BT_CTLR_ADV_PERIODIC_ADI_SUPPORT |
| 50 | + OR CONFIG_BT_EXT_ADV_CODING_SELECTION) |
| 51 | + message(STATUS "link layer FULL lib selected") |
| 52 | + set(BLE_LIB_TYPE "BLE_LIB_FULL") |
| 53 | + else() |
| 54 | + message(STATUS "link layer BASIC lib selected") |
| 55 | + set(BLE_LIB_TYPE "BLE_LIB_BASIC") |
| 56 | + endif() |
50 | 57 |
|
51 | | -set(STM32WBA_BLE_LIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/STM32_WPAN/ble/stack) |
| 58 | + set(STM32WBA_BLE_LIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/STM32_WPAN/ble/stack) |
52 | 59 |
|
53 | | -add_library(stm32wba_ble_lib STATIC IMPORTED GLOBAL) |
| 60 | + add_library(stm32wba_ble_lib STATIC IMPORTED GLOBAL) |
54 | 61 |
|
55 | | -add_dependencies( |
56 | | - stm32wba_ble_lib |
57 | | - stm32wba_ll_lib |
58 | | -) |
59 | | -if (BLE_LIB_TYPE STREQUAL "BLE_LIB_BASIC") |
60 | | - set_target_properties( |
61 | | - stm32wba_ble_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_LIB_DIR}/stm32wba_ble_stack_llobasic.a |
62 | | - ) |
63 | | -elseif (BLE_LIB_TYPE STREQUAL "BLE_LIB_FULL") |
64 | | - set_target_properties( |
65 | | - stm32wba_ble_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_LIB_DIR}/stm32wba_ble_stack_llo.a |
| 62 | + add_dependencies( |
| 63 | + stm32wba_ble_lib |
| 64 | + stm32wba_ll_lib |
66 | 65 | ) |
67 | | -endif() |
| 66 | + if(BLE_LIB_TYPE STREQUAL "BLE_LIB_BASIC") |
| 67 | + set_target_properties( |
| 68 | + stm32wba_ble_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_LIB_DIR}/stm32wba_ble_stack_llobasic.a |
| 69 | + ) |
| 70 | + elseif(BLE_LIB_TYPE STREQUAL "BLE_LIB_FULL") |
| 71 | + set_target_properties( |
| 72 | + stm32wba_ble_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_LIB_DIR}/stm32wba_ble_stack_llo.a |
| 73 | + ) |
| 74 | + endif() |
68 | 75 |
|
69 | | -# Setting the right Cube define according to the Zephyr configuration |
70 | | -if(NOT CONFIG_BT_STM32WBA_USE_TEMP_BASED_CALIB) |
71 | | - zephyr_compile_definitions( -DUSE_TEMPERATURE_BASED_RADIO_CALIBRATION=0 ) |
72 | | -endif() |
| 76 | + # Setting the right Cube define according to the Zephyr configuration |
| 77 | + if(NOT CONFIG_BT_STM32WBA_USE_TEMP_BASED_CALIB) |
| 78 | + zephyr_compile_definitions( -DUSE_TEMPERATURE_BASED_RADIO_CALIBRATION=0 ) |
| 79 | + endif() |
73 | 80 |
|
74 | | -# Using the selected version of ble lib |
75 | | -set_target_properties(stm32wba_ble_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${STM32WBA_BLE_LIB_INCLUDE_DIR}) |
| 81 | + # Using the selected version of ble lib |
| 82 | + set_target_properties(stm32wba_ble_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${STM32WBA_BLE_LIB_INCLUDE_DIR}) |
76 | 83 |
|
77 | | -target_link_libraries(app PUBLIC stm32wba_ble_lib) |
| 84 | + target_link_libraries(app PUBLIC stm32wba_ble_lib) |
| 85 | +endif() |
78 | 86 |
|
79 | 87 | # Selecting the proper version of link layer lib |
80 | | -# Checking all the soc variants and not simply relying on board name |
81 | | -if(CONFIG_SOC_STM32WBA65XX) |
82 | | - message(STATUS "STM32WBA6 link layer lib selected") |
83 | | - if (BLE_LIB_TYPE STREQUAL "BLE_LIB_BASIC") |
84 | | - set(LL_LIB "WBA6_LinkLayer_BLE_Basic_lib.a") |
85 | | - elseif (BLE_LIB_TYPE STREQUAL "BLE_LIB_FULL") |
86 | | - set(LL_LIB "WBA6_LinkLayer_BLE_Full_lib.a") |
| 88 | +if(CONFIG_BT_STM32WBA) |
| 89 | + # Checking all the soc variants and not simply relying on board name |
| 90 | + if(CONFIG_SOC_STM32WBA65XX) |
| 91 | + message(STATUS "STM32WBA6 link layer lib selected") |
| 92 | + if (BLE_LIB_TYPE STREQUAL "BLE_LIB_BASIC") |
| 93 | + set(LL_LIB "WBA6_LinkLayer_BLE_Basic_lib.a") |
| 94 | + elseif (BLE_LIB_TYPE STREQUAL "BLE_LIB_FULL") |
| 95 | + set(LL_LIB "WBA6_LinkLayer_BLE_Full_lib.a") |
| 96 | + endif() |
87 | 97 | endif() |
88 | | -endif() |
89 | 98 |
|
90 | | -if(CONFIG_SOC_STM32WBA55XX OR SOC_STM32WBA52XX) |
91 | | - message(STATUS "STM32WBA5 link layer lib selected") |
92 | | - if (BLE_LIB_TYPE STREQUAL "BLE_LIB_BASIC") |
93 | | - set(LL_LIB "LinkLayer_BLE_Basic_lib.a") |
94 | | - elseif (BLE_LIB_TYPE STREQUAL "BLE_LIB_FULL") |
95 | | - set(LL_LIB "LinkLayer_BLE_Full_lib.a") |
| 99 | + if(CONFIG_SOC_STM32WBA55XX OR SOC_STM32WBA52XX) |
| 100 | + message(STATUS "STM32WBA5 link layer lib selected") |
| 101 | + if (BLE_LIB_TYPE STREQUAL "BLE_LIB_BASIC") |
| 102 | + set(LL_LIB "LinkLayer_BLE_Basic_lib.a") |
| 103 | + elseif (BLE_LIB_TYPE STREQUAL "BLE_LIB_FULL") |
| 104 | + set(LL_LIB "LinkLayer_BLE_Full_lib.a") |
| 105 | + endif() |
| 106 | + endif() |
| 107 | +elseif(CONFIG_IEEE802154_STM32WBA) |
| 108 | + if(CONFIG_SOC_STM32WBA65XX) |
| 109 | + if(CONFIG_OPENTHREAD) |
| 110 | + message(STATUS "WBA6_LinkLayer_Thread_lib_Zephyr.a lib selected") |
| 111 | + set(LL_LIB "WBA6_LinkLayer_Thread_lib_Zephyr.a") |
| 112 | + else() |
| 113 | + message(STATUS "WBA6_LinkLayer15_4_Zephyr.a lib selected") |
| 114 | + set(LL_LIB "WBA6_LinkLayer15_4_Zephyr.a") |
| 115 | + endif() |
96 | 116 | endif() |
97 | 117 | endif() |
98 | 118 |
|
99 | | -add_library(stm32wba_ll_lib STATIC IMPORTED GLOBAL) |
100 | | -set(STM32WBA_LL_LIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/STM32_WPAN/link_layer/ll_cmd_lib) |
101 | | -set_target_properties(stm32wba_ll_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_LIB_DIR}/${LL_LIB}) |
102 | | -set_target_properties(stm32wba_ll_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${STM32WBA_LL_LIB_INCLUDE_DIR}) |
103 | | -target_link_libraries(app PUBLIC stm32wba_ll_lib) |
| 119 | +if(CONFIG_BT_STM32WBA OR CONFIG_IEEE802154_STM32WBA) |
| 120 | + add_library(stm32wba_ll_lib STATIC IMPORTED GLOBAL) |
| 121 | + set(STM32WBA_LL_LIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/STM32_WPAN/link_layer/ll_cmd_lib) |
| 122 | + set_target_properties(stm32wba_ll_lib PROPERTIES IMPORTED_LOCATION ${STM32WBA_LIB_DIR}/${LL_LIB}) |
| 123 | + set_target_properties(stm32wba_ll_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${STM32WBA_LL_LIB_INCLUDE_DIR}) |
| 124 | + target_link_libraries(app PUBLIC stm32wba_ll_lib) |
| 125 | +endif() |
104 | 126 |
|
105 | 127 | add_subdirectory(STM32_WPAN) |
106 | 128 |
|
107 | 129 | add_subdirectory_ifdef(CONFIG_BT_STM32WBA ble) |
| 130 | +add_subdirectory_ifdef(CONFIG_IEEE802154_STM32WBA IEEE802154) |
0 commit comments