Skip to content

Commit e2bb2e5

Browse files
authored
[Telink] Use common CMake parts & flash overlay selection (#32894)
1 parent dd926d2 commit e2bb2e5

File tree

49 files changed

+438
-1501
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+438
-1501
lines changed

config/telink/chip-module/CMakeLists.txt

+3-43
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2022-2023 Project CHIP Authors
2+
# Copyright (c) 2022-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -149,47 +149,7 @@ set_property(GLOBAL APPEND PROPERTY ZEPHYR_INTERFACE_LIBS chip)
149149
# Define 'chip-ota-image' target for building CHIP OTA image
150150
# ==============================================================================
151151

152-
string(REPLACE "_retention" "" BASE_BOARD ${BOARD})
153-
154-
if(${TLNK_USB_DONGLE} MATCHES y)
155-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_usb_boot.overlay")
156-
set(USB_BOOT_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_usb_boot.overlay")
157-
else()
158-
unset(USB_BOOT_DTC_OVERLAY_FILE)
159-
endif()
160-
else()
161-
unset(USB_BOOT_DTC_OVERLAY_FILE)
162-
endif()
163-
164-
if(${TLNK_MARS_BOARD} MATCHES y)
165-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_mars_boot.overlay")
166-
set(MARS_BOOT_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}_mars_boot.overlay")
167-
else()
168-
unset(MARS_BOOT_DTC_OVERLAY_FILE)
169-
endif()
170-
else()
171-
unset(MARS_CONF_OVERLAY_FILE)
172-
endif()
173-
174-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}.overlay")
175-
set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BASE_BOARD}.overlay")
176-
else()
177-
unset(GLOBAL_DTC_OVERLAY_FILE)
178-
endif()
179-
180-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
181-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
182-
message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b")
183-
else()
184-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay")
185-
message(STATUS "Flash memory size is set to: 2mb")
186-
endif()
187-
188-
if(EXISTS "${CHIP_ROOT}/config/telink/app/bootloader.conf")
189-
set(GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE "${CHIP_ROOT}/config/telink/app/bootloader.conf")
190-
else()
191-
unset(GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE)
192-
endif()
152+
include(${TELINK_COMMON}/common.cmake)
193153

194154
set(BLOCK_SIZE "1024")
195155

@@ -202,7 +162,7 @@ if (CONFIG_BOOTLOADER_MCUBOOT)
202162
add_custom_target(build_mcuboot ALL
203163
COMMAND
204164
west build -b ${BASE_BOARD} -d build_mcuboot ${ZEPHYR_BASE}/../bootloader/mcuboot/boot/zephyr
205-
-- -DOVERLAY_CONFIG=${GLOBAL_BOOTLOADER_CONF_OVERLAY_FILE} -DDTC_OVERLAY_FILE="${GLOBAL_DTC_OVERLAY_FILE};${FLASH_DTC_OVERLAY_FILE};${USB_BOOT_DTC_OVERLAY_FILE};${MARS_BOOT_DTC_OVERLAY_FILE}"
165+
-- -DOVERLAY_CONFIG=${GLOBAL_BOOT_CONF_OVERLAY_FILE} -DDTC_OVERLAY_FILE="${GLOBAL_BOOT_DTC_OVERLAY_FILE};${FLASH_DTC_OVERLAY_FILE};${USB_BOOT_DTC_OVERLAY_FILE};${MARS_BOOT_DTC_OVERLAY_FILE}"
206166
COMMAND
207167
cp ${PROJECT_BINARY_DIR}/../modules/chip-module/build_mcuboot/zephyr/zephyr.bin ${PROJECT_BINARY_DIR}/zephyr.mcuboot.bin
208168
)

config/telink/chip-module/Kconfig.defaults

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2023 Project CHIP Authors
2+
# Copyright (c) 2023-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -20,6 +20,10 @@
2020

2121
if CHIP
2222

23+
config CHIP_PROJECT_CONFIG
24+
string "Project configuration file for Matter"
25+
default "include/CHIPProjectConfig.h"
26+
2327
config LOG
2428
default y
2529

@@ -106,6 +110,8 @@ config GPIO
106110
config BT
107111
default y
108112

113+
if BT
114+
109115
config BT_PERIPHERAL
110116
default y
111117

@@ -157,6 +163,8 @@ choice B9X_BLE_CTRL_MAC_TYPE
157163
default B9X_BLE_CTRL_MAC_TYPE_RANDOM_STATIC
158164
endchoice
159165

166+
endif
167+
160168
# Board retention config
161169
if BOARD_TLSR9528A_RETENTION || BOARD_TLSR9258A_RETENTION || BOARD_TLSR9518ADK80D_RETENTION
162170
config SOC_SERIES_RISCV_TELINK_B9X_NON_RETENTION_RAM_CODE
@@ -218,6 +226,12 @@ config SETTINGS_NVS_SECTOR_COUNT
218226
config NET_L2_OPENTHREAD
219227
default y
220228

229+
if NET_L2_OPENTHREAD
230+
231+
config CHIP_OPENTHREAD_CONFIG
232+
string "Custom OpenThread configuration file"
233+
default "../../platform/telink/project_include/OpenThreadConfig.h"
234+
221235
choice CHIP_THREAD_DEVICE_ROLE
222236
prompt "Thread network device role"
223237
default CHIP_THREAD_DEVICE_ROLE_ROUTER
@@ -256,6 +270,8 @@ config OPENTHREAD_DEFAULT_TX_POWER
256270
default 3 if PM
257271
default 9
258272

273+
endif # NET_L2_OPENTHREAD
274+
259275
config NET_TX_STACK_SIZE
260276
default 554 if PM
261277

examples/air-quality-sensor-app/telink/CMakeLists.txt

+4-56
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2023 Project CHIP Authors
2+
# Copyright (c) 2023-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -13,70 +13,18 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16+
1617
cmake_minimum_required(VERSION 3.13.1)
1718

1819
get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH)
1920
get_filename_component(TELINK_COMMON ${CHIP_ROOT}/examples/platform/telink REALPATH)
2021
get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH)
2122

22-
set(ignoreMe "${TLNK_MARS_BOARD}")
23-
24-
if(${TLNK_MARS_BOARD} MATCHES y)
25-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.overlay")
26-
set(MARS_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.overlay")
27-
else()
28-
unset(MARS_DTC_OVERLAY_FILE)
29-
endif()
30-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.conf")
31-
set(MARS_CONF_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}_mars.conf")
32-
else()
33-
unset(MARS_CONF_OVERLAY_FILE)
34-
endif()
35-
else()
36-
unset(MARS_CONF_OVERLAY_FILE)
37-
endif()
38-
39-
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
40-
set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
41-
else()
42-
unset(LOCAL_DTC_OVERLAY_FILE)
43-
endif()
44-
45-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
46-
set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
47-
else()
48-
unset(GLOBAL_DTC_OVERLAY_FILE)
49-
endif()
50-
51-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
52-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
53-
message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b")
54-
else()
55-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay")
56-
message(STATUS "Flash memory size is set to: 2mb")
57-
endif()
58-
59-
if(DTC_OVERLAY_FILE)
60-
set(DTC_OVERLAY_FILE
61-
"${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${MARS_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}"
62-
CACHE STRING "" FORCE
63-
)
64-
else()
65-
set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${MARS_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE})
66-
endif()
67-
68-
set(CONF_FILE ${MARS_CONF_OVERLAY_FILE} prj.conf)
69-
70-
# Load NCS/Zephyr build system
71-
list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module)
72-
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
73-
74-
project(chip-telink-air-quality-sensor-example)
75-
23+
include(${TELINK_COMMON}/common.cmake)
7624
include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake)
7725
include(${CHIP_ROOT}/src/app/chip_data_model.cmake)
7826

79-
target_compile_options(app PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fpermissive>)
27+
project(chip-telink-air-quality-sensor-example)
8028

8129
target_include_directories(app PRIVATE
8230
include

examples/air-quality-sensor-app/telink/prj.conf

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2023 Project CHIP Authors
2+
# Copyright (c) 2023-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -14,18 +14,14 @@
1414
# limitations under the License.
1515
#
1616

17-
# This sample uses sample-defaults.conf to set options common for all
17+
# This sample uses Kconfig.defaults to set options common for all
1818
# samples. This file should contain only options specific for this sample
1919
# or overrides of default values.
2020

2121
# Enable CHIP
2222
CONFIG_CHIP=y
2323
CONFIG_STD_CPP17=y
2424

25-
# CHIP configuration
26-
CONFIG_CHIP_PROJECT_CONFIG="include/CHIPProjectConfig.h"
27-
CONFIG_CHIP_OPENTHREAD_CONFIG="../../platform/telink/project_include/OpenThreadConfig.h"
28-
2925
# 32774 == 0x8006 (example air-quality-sensor-app)
3026
CONFIG_CHIP_DEVICE_PRODUCT_ID=32774
3127

examples/all-clusters-app/telink/CMakeLists.txt

+4-39
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2022 Project CHIP Authors
2+
# Copyright (c) 2022-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16+
1617
cmake_minimum_required(VERSION 3.13.1)
1718

1819
get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH)
@@ -21,47 +22,11 @@ get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH)
2122
get_filename_component(ALL_CLUSTERS_COMMON_DIR ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH)
2223
get_filename_component(ENERGY_MANAGEMENT_COMMON_DIR ${CHIP_ROOT}/examples/energy-management-app/energy-management-common/ REALPATH)
2324

24-
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
25-
set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
26-
else()
27-
unset(LOCAL_DTC_OVERLAY_FILE)
28-
endif()
29-
30-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
31-
set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
32-
else()
33-
unset(GLOBAL_DTC_OVERLAY_FILE)
34-
endif()
35-
36-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
37-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
38-
message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b")
39-
else()
40-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay")
41-
message(STATUS "Flash memory size is set to: 2mb")
42-
endif()
43-
44-
if(DTC_OVERLAY_FILE)
45-
set(DTC_OVERLAY_FILE
46-
"${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}"
47-
CACHE STRING "" FORCE
48-
)
49-
else()
50-
set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE})
51-
endif()
52-
53-
set(CONF_FILE prj.conf)
54-
55-
# Load NCS/Zephyr build system
56-
list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module)
57-
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
58-
59-
project(chip-telink-all-clusters-app-example)
60-
25+
include(${TELINK_COMMON}/common.cmake)
6126
include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake)
6227
include(${CHIP_ROOT}/src/app/chip_data_model.cmake)
6328

64-
target_compile_options(app PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fpermissive>)
29+
project(chip-telink-all-clusters-app-example)
6530

6631
target_include_directories(app PRIVATE
6732
include

examples/all-clusters-app/telink/prj.conf

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2022-2023 Project CHIP Authors
2+
# Copyright (c) 2022-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -14,18 +14,14 @@
1414
# limitations under the License.
1515
#
1616

17-
# This sample uses sample-defaults.conf to set options common for all
17+
# This sample uses Kconfig.defaults to set options common for all
1818
# samples. This file should contain only options specific for this sample
1919
# or overrides of default values.
2020

2121
# Enable CHIP
2222
CONFIG_CHIP=y
2323
CONFIG_STD_CPP17=y
2424

25-
# CHIP configuration
26-
CONFIG_CHIP_PROJECT_CONFIG="include/CHIPProjectConfig.h"
27-
CONFIG_CHIP_OPENTHREAD_CONFIG="../../platform/telink/project_include/OpenThreadConfig.h"
28-
2925
# CHIP PID: 32769 == 0x8001 (all-clusters-app)
3026
CONFIG_CHIP_DEVICE_PRODUCT_ID=32769
3127

examples/all-clusters-minimal-app/telink/CMakeLists.txt

+4-39
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2022 Project CHIP Authors
2+
# Copyright (c) 2022-2024 Project CHIP Authors
33
#
44
# Licensed under the Apache License, Version 2.0 (the "License");
55
# you may not use this file except in compliance with the License.
@@ -13,54 +13,19 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16+
1617
cmake_minimum_required(VERSION 3.13.1)
1718

1819
get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/third_party/connectedhomeip REALPATH)
1920
get_filename_component(TELINK_COMMON ${CHIP_ROOT}/examples/platform/telink REALPATH)
2021
get_filename_component(GEN_DIR ${CHIP_ROOT}/zzz_generated/ REALPATH)
2122
get_filename_component(ALL_CLUSTERS_COMMON_DIR ${CHIP_ROOT}/examples/all-clusters-app/all-clusters-common REALPATH)
2223

23-
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
24-
set(LOCAL_DTC_OVERLAY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD}.overlay")
25-
else()
26-
unset(LOCAL_DTC_OVERLAY_FILE)
27-
endif()
28-
29-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
30-
set(GLOBAL_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${BOARD}.overlay")
31-
else()
32-
unset(GLOBAL_DTC_OVERLAY_FILE)
33-
endif()
34-
35-
if(EXISTS "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
36-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/${FLASH_SIZE}_flash.overlay")
37-
message(STATUS "Flash memory size is set to: " ${FLASH_SIZE} "b")
38-
else()
39-
set(FLASH_DTC_OVERLAY_FILE "${CHIP_ROOT}/src/platform/telink/2m_flash.overlay")
40-
message(STATUS "Flash memory size is set to: 2mb")
41-
endif()
42-
43-
if(DTC_OVERLAY_FILE)
44-
set(DTC_OVERLAY_FILE
45-
"${DTC_OVERLAY_FILE} ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE}"
46-
CACHE STRING "" FORCE
47-
)
48-
else()
49-
set(DTC_OVERLAY_FILE ${GLOBAL_DTC_OVERLAY_FILE} ${FLASH_DTC_OVERLAY_FILE} ${LOCAL_DTC_OVERLAY_FILE})
50-
endif()
51-
52-
set(CONF_FILE prj.conf)
53-
54-
# Load NCS/Zephyr build system
55-
list(APPEND ZEPHYR_EXTRA_MODULES ${CHIP_ROOT}/config/telink/chip-module)
56-
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
57-
58-
project(chip-telink-all-clusters-minimal-app-example)
59-
24+
include(${TELINK_COMMON}/common.cmake)
6025
include(${CHIP_ROOT}/config/telink/app/enable-gnu-std.cmake)
6126
include(${CHIP_ROOT}/src/app/chip_data_model.cmake)
6227

63-
target_compile_options(app PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fpermissive>)
28+
project(chip-telink-all-clusters-minimal-app-example)
6429

6530
target_include_directories(app PRIVATE
6631
include

0 commit comments

Comments
 (0)