Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/chef.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -177,9 +177,9 @@ jobs:
uses: ./.github/actions/checkout-submodules-and-bootstrap
with:
platform: telink
# - name: Update Zephyr to specific revision (for developers purpose)
# shell: bash
# run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 1f4804a19fe7ba792bfc315948043d5515e74cd2"
- name: Update Zephyr to specific revision (for developers purpose)
shell: bash
run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 0858e43f05a91d84ab2fed77f3849ff589510b24"
- name: CI Examples Telink
shell: bash
run: |
Expand Down
31 changes: 29 additions & 2 deletions .github/workflows/examples-telink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,9 @@ jobs:
with:
gh-context: ${{ toJson(github) }}

# - name: Update Zephyr version 4.1.0 (develop) to specific revision (for developers purpose)
# run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 1f4804a19fe7ba792bfc315948043d5515e74cd2"
- name: Update Zephyr version 4.1.0 (develop) to specific revision (for developers purpose)
run:
scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py https://github.com/telink-semi/zephyr.git 5a8e0e948faa5fbc0edbf1770d9e7a7d27d70999 --sdk-repo https://github.com/telink-semi/tl_ble_sdk_zephyr.git --sdk-hash f50d422d780efb73af939650ef7b8c6bf5a0b99b"

- name: Download Factory Data tools
uses: actions/download-artifact@v8
Expand Down Expand Up @@ -220,6 +221,32 @@ jobs:
- name: clean out build output (keep tools)
run: rm -rf ./out/telink*

- name: Build example Telink (tl323x) Lighting App with Factory Data, 4Mb flash
# Run test for master and all PRs
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tl3238x-light-ota-factory-data-4mb' build"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
telink tl3238x light-app-ota-factory-data-4mb \
out/telink-tl3238x-light-ota-factory-data-4mb/zephyr/zephyr.elf \
/tmp/bloat_reports/

- name: clean out build output (keep tools)
run: rm -rf ./out/telink*

- name: Build example Telink (tl323x_retention) Light Switch App with OTA, Factory Data
# Run test for master and all PRs
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tl3238x_retention-light-switch-ota-compress-lzma-factory-data' build"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
telink tl3238x_retention light-switch-app-ota-compress-lzma-factory-data \
out/telink-tl3238x_retention-light-switch-ota-compress-lzma-factory-data/zephyr/zephyr.elf \
/tmp/bloat_reports/

- name: clean out build output (keep tools)
run: rm -rf ./out/telink*

- name: Build example Telink (tl721x retention) Light Switch App with OTA (LZMA), Factory Data
# Run test for master and all PRs
run: |
Expand Down
11 changes: 9 additions & 2 deletions config/telink/app/bootloader.conf
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

# Enable this option in case if restoring the slot0 partition is expected from slot1
# partition in case if slot0 is not bootable or damaged
CONFIG_BOOT_BOOTSTRAP=y
CONFIG_BOOT_BOOTSTRAP=n

# Enable this option in case if SWAP_MOVE logic need to be used
CONFIG_BOOT_SWAP_USING_MOVE=y
Expand All @@ -27,7 +27,8 @@ CONFIG_BOOT_SWAP_USING_SCRATCH=n

# Enable this option in case if the whole slot0 image need to be validated
# With disabled option the only image magic is validated
CONFIG_BOOT_VALIDATE_SLOT0=y
CONFIG_BOOT_VALIDATE_SLOT0=n
CONFIG_BOOT_VALIDATE_SLOT0_ONCE=y

# Required for Zephyr 3.3 and replased with CONFIG_BOOT_MAX_IMG_SECTORS_AUTO in new versions
# Maximum number of image sectors supported by the bootloader.
Expand All @@ -42,4 +43,10 @@ CONFIG_BOOT_MAX_IMG_SECTORS=512
# - DEBUG, LOG_LEVEL_DBG
CONFIG_MCUBOOT_LOG_LEVEL_INF=y

# Enable support LZMA compression
CONFIG_COMPRESS_LZMA=n

CONFIG_PICOLIBC=y

# Disabling the banner is to allow cmd tool to better parse the chip ID, avoid interface.
CONFIG_BOOT_BANNER=n
6 changes: 5 additions & 1 deletion config/telink/app/bootloader_compress_lzma.conf
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ CONFIG_BOOT_UPGRADE_ONLY=y

# Enable this option in case if the whole slot0 image need to be validated
# With disabled option the only image magic is validated
CONFIG_BOOT_VALIDATE_SLOT0=y
CONFIG_BOOT_VALIDATE_SLOT0=n
CONFIG_BOOT_VALIDATE_SLOT0_ONCE=y

# Required for Zephyr 3.3 and replased with CONFIG_BOOT_MAX_IMG_SECTORS_AUTO in new versions
# Maximum number of image sectors supported by the bootloader.
Expand All @@ -45,3 +46,6 @@ CONFIG_SIZE_OPTIMIZATIONS=y
CONFIG_COMPRESS_LZMA=y

CONFIG_PICOLIBC=y

# ### Disabling the banner is to allow cmd tool to better parse the chip ID, avoid interface.
CONFIG_BOOT_BANNER=n
3 changes: 3 additions & 0 deletions config/telink/chip-module/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ matter_add_flags(-DMBEDTLS_USER_CONFIG_FILE=<${CONFIG_MBEDTLS_CFG_FILE}>)
if (CONFIG_OPENTHREAD_TELINK_LIBRARY)
set(ZEPHYR_OPENTHREAD_MODULE_DIR ${ZEPHYR_BASE}/../modules/lib/openthread_telink_lib CACHE STRING INTERNAL)
message(STATUS "OpenThread used as precompiled Telink library, path: ${ZEPHYR_OPENTHREAD_MODULE_DIR}")
else()
set(ZEPHYR_OPENTHREAD_MODULE_DIR ${ZEPHYR_BASE}/../modules/lib/openthread CACHE STRING INTERNAL)
message(STATUS "OpenThread used from source, path: ${ZEPHYR_OPENTHREAD_MODULE_DIR}")
endif()

if (CONFIG_CHIP_OPENTHREAD_CONFIG)
Expand Down
8 changes: 6 additions & 2 deletions config/telink/chip-module/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ config CHIP_DFU_OVER_BT_SMP
select MCUMGR_MGMT_NOTIFICATION_HOOKS
select MCUMGR_GRP_IMG_UPLOAD_CHECK_HOOK
select MCUMGR_GRP_IMG_STATUS_HOOKS
default y if BOARD_TL3238X || BOARD_TL3238X_RETENTION
default y if BOARD_TLSR9528A || BOARD_TLSR9528A_RETENTION
default n
help
Enables Device Firmware Upgrade over Bluetooth LE with SMP and configures
the set of options related to that feature.
Expand Down Expand Up @@ -249,8 +252,9 @@ config CHIP_USE_MARS_SENSOR
default n

config CHIP_PERSISTENT_SUBSCRIPTIONS
default n if BOARD_TL7218X_RETENTION
default y
default y if BOARD_TL3238X || BOARD_TL3238X_RETENTION
default y if BOARD_TLSR9528A || BOARD_TLSR9528A_RETENTION
default n
# selecting experimental for this feature since there is an issue with multiple controllers.
select EXPERIMENTAL

Expand Down
46 changes: 31 additions & 15 deletions config/telink/chip-module/Kconfig.defaults
Original file line number Diff line number Diff line change
Expand Up @@ -61,28 +61,29 @@ config POSIX_MAX_FDS

# Application stack size
config MAIN_STACK_SIZE
default 4864 if SOC_RISCV_TELINK_W91 || SOC_RISCV_TELINK_B91
default 3560 if PM
default 4864 if SOC_RISCV_TELINK_W91
default 3240 if PM || SOC_RISCV_TELINK_TL323X
default 4096

config INIT_STACKS
default y

config IDLE_STACK_SIZE
default 560 if PM || SOC_RISCV_TELINK_W91
default 560 if PM || SOC_RISCV_TELINK_TL323X || SOC_RISCV_TELINK_W91

config ISR_STACK_SIZE
default 800 if PM || SOC_RISCV_TELINK_W91
default 1024 if SOC_RISCV_TELINK_TL323X

config SYSTEM_WORKQUEUE_STACK_SIZE
default 1024 if PM && !SOC_RISCV_TELINK_W91
default 664 if PM && !SOC_RISCV_TELINK_W91
default 2048 if SOC_RISCV_TELINK_TL323X

config HEAP_MEM_POOL_SIZE
default 1796 if SOC_RISCV_TELINK_TL721X
default 1796 if SOC_RISCV_TELINK_TL323X || SOC_RISCV_TELINK_TL721X
default 1280

config COMMON_LIBC_MALLOC_ARENA_SIZE
default 26584 if SOC_RISCV_TELINK_TL721X
default 29448 if SOC_RISCV_TELINK_W91
default 20716

Expand All @@ -94,6 +95,7 @@ config NET_IF_UNICAST_IPV6_ADDR_COUNT
default 6

config NET_IF_MCAST_IPV6_ADDR_COUNT
default 47 if SOC_RISCV_TELINK_TL323X
default 8 if PM
default 15

Expand All @@ -103,20 +105,20 @@ config NET_IF_IPV6_PREFIX_COUNT
# Network buffers
config NET_PKT_RX_COUNT
default 16 if SOC_RISCV_TELINK_W91
default 4 if PM
default 4 if PM || SOC_RISCV_TELINK_TL323X
default 8

config NET_PKT_TX_COUNT
default 16 if SOC_RISCV_TELINK_W91
default 4 if PM
default 4 if PM || SOC_RISCV_TELINK_TL323X
default 8

config NET_BUF_RX_COUNT
default 12 if PM && !SOC_RISCV_TELINK_W91
default 12 if (PM && !SOC_RISCV_TELINK_W91) || SOC_RISCV_TELINK_TL323X
default 32

config NET_BUF_TX_COUNT
default 12 if PM && !SOC_RISCV_TELINK_W91
default 12 if (PM && !SOC_RISCV_TELINK_W91) || SOC_RISCV_TELINK_TL323X
default 32

config GPIO
Expand Down Expand Up @@ -164,12 +166,15 @@ config BT_MAX_CONN
default 1

config BT_L2CAP_TX_MTU
default 103 if SOC_RISCV_TELINK_TL323X
default 247

config BT_BUF_ACL_RX_SIZE
default 107 if SOC_RISCV_TELINK_TL323X
default 251

config BT_BUF_ACL_TX_SIZE
default 107 if SOC_RISCV_TELINK_TL323X
default 251

config BT_BUF_EVT_RX_COUNT
Expand All @@ -196,6 +201,7 @@ if SOC_RISCV_TELINK_B9X || SOC_RISCV_TELINK_TLX

config TL_BLE_CTRL_THREAD_STACK_SIZE
default 1536 if SOC_RISCV_TELINK_TL721X
default 1536 if SOC_RISCV_TELINK_TL323X
default 712

config TL_BLE_CTRL_MASTER_MAX_NUM
Expand Down Expand Up @@ -229,12 +235,12 @@ config PWM

endif

if BOARD_TL7218X_RETENTION
if BOARD_TL7218X_RETENTION || BOARD_TL3238X_RETENTION || BOARD_TL3238X
config SOC_SERIES_RISCV_TELINK_TLX_NON_RETENTION_RAM_CODE
default n if PM

config TELINK_TLX_MATTER_RETENTION_LAYOUT
default y if PM
default y if PM || BOARD_TL3238X

config PWM
default n if PM
Expand All @@ -243,7 +249,7 @@ endif

# Board non-retention config
if BOARD_TLSR9118BDK40D || BOARD_TLSR9118BDK40D_V1 || \
BOARD_TLSR9528A || BOARD_TLSR9518ADK80D || BOARD_TL7218X
BOARD_TLSR9528A || BOARD_TLSR9518ADK80D || BOARD_TL3238X || BOARD_TL7218X
config PWM
default y
endif
Expand Down Expand Up @@ -290,6 +296,7 @@ config NVS_LOOKUP_CACHE
default y

config NVS_LOOKUP_CACHE_SIZE
default 400 if SOC_RISCV_TELINK_TL323X
default 2048 if !PM || SOC_RISCV_TELINK_W91

# Set multiplicator of Name Value Storage (NVS) as 1 to reach NVS sector size 4KB
Expand Down Expand Up @@ -341,14 +348,18 @@ config OPENTHREAD_CSMABACKOFF_OPTIMIZATION

config IEEE802154_TLX_OPTIMIZATION
bool "Optimize 802.15.4 RF performance for TLX SoCs"
default y if PM && SOC_RISCV_TELINK_TL323X
default n
help
Improve RF performance in IEEE 802.15.4 communication on TLX SoCs.

config OPENTHREAD_THREAD_STACK_SIZE
default 2400 if PM
default 4096 if SOC_RISCV_TELINK_TL323X

config OPENTHREAD_RADIO_WORKQUEUE_STACK_SIZE
default 2048 if PM && SOC_RISCV_TELINK_TL323X
default 608 if SOC_RISCV_TELINK_TL323X
default 640

config OPENTHREAD_SLAAC
Expand All @@ -357,11 +368,15 @@ config OPENTHREAD_SLAAC
config OPENTHREAD_MANUAL_START
default y

# 6 is the max rf level by Vant
config OPENTHREAD_DEFAULT_TX_POWER
default 3 if PM
default 6 if PM && SOC_RISCV_TELINK_TL721X
default 3 if PM && SOC_RISCV_TELINK_TL323X
default 11 if SOC_RISCV_TELINK_TL323X
default 9

config OPENTHREAD_IP6_MAX_EXT_MCAST_ADDRS
default 40 if SOC_RISCV_TELINK_TL323X
default 2 if PM
default 8

Expand All @@ -375,11 +390,12 @@ endif # NET_L2_OPENTHREAD

config NET_TX_STACK_SIZE
default 1200 if SOC_RISCV_TELINK_W91
default 600 if PM
default 600 if PM || SOC_RISCV_TELINK_TL323X

config NET_RX_STACK_SIZE
default 2048 if SOC_RISCV_TELINK_W91
default 664 if PM
default 2048 if SOC_RISCV_TELINK_TL323X

# Disable certain parts of Zephyr IPv6 stack
config NET_IPV6_NBR_CACHE
Expand Down
5 changes: 5 additions & 0 deletions examples/contact-sensor-app/telink/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,8 @@ if(CONFIG_OPENTHREAD_SNTP_CLIENT)
target_sources(app PRIVATE
${TELINK_COMMON}/util/src/ThreadTimeSync.cpp)
endif()

if(CONFIG_MCUMGR_TRANSPORT_BT)
zephyr_library_link_libraries(MCUBOOT_BOOTUTIL)
target_sources(app PRIVATE ${TELINK_COMMON}/util/src/DFUOverSMP.cpp)
endif()
17 changes: 17 additions & 0 deletions examples/contact-sensor-app/telink/boards/tl3238x_retention.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Disable Matter OTA DFU
CONFIG_CHIP_OTA_REQUESTOR=y
CONFIG_CHIP_DFU_OVER_BT_SMP=y
CONFIG_CHIP_DFU_OVER_BT_SMP_BUILD=y

# Enable ADC
CONFIG_ADC=y

#compress ota
CONFIG_COMPRESS_LZMA=y
CONFIG_LZMA=y

#matter switch mode
# config NORMAL_MODE 0 independent matter mode
# ACTION_DUAL_MODE 1 matter action switch mode ,such as by button
# AUTO_SWITCH_DUAL_MODE 2 matter auto-switch mode ,such as by scan QR code.
CONFIG_DUAL_MODE=1
12 changes: 11 additions & 1 deletion examples/contact-sensor-app/telink/prj.conf
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ CONFIG_BT_DEVICE_NAME="TelinkSensor"

# Disable Matter OTA DFU
CONFIG_CHIP_OTA_REQUESTOR=n
CONFIG_CHIP_DFU_OVER_BT_SMP=n
CONFIG_CHIP_DFU_OVER_BT_SMP_BUILD=n

CONFIG_CHIP_DEVICE_SOFTWARE_VERSION=1

# Disable CHIP shell support
Expand All @@ -39,6 +42,13 @@ CONFIG_CHIP_LIB_SHELL=n
CONFIG_CHIP_FACTORY_DATA=n
CONFIG_CHIP_FACTORY_DATA_BUILD=n
CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=n

CONFIG_CHIP_CERTIFICATION_DECLARATION_STORAGE=n
# CONFIG_CHIP_DEVICE_DISCRIMINATOR=0xF00
# Enable Power Management
CONFIG_PM=y

#ICD SETTING INFO
CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL=7500
CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL=200
CONFIG_CHIP_ICD_ACTIVE_MODE_THRESHOLD=300
CONFIG_CHIP_ICD_IDLE_MODE_DURATION=900
17 changes: 17 additions & 0 deletions examples/light-switch-app/telink/boards/tl3238x_retention.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Disable Matter OTA DFU
CONFIG_CHIP_OTA_REQUESTOR=y
CONFIG_CHIP_DFU_OVER_BT_SMP=y
CONFIG_CHIP_DFU_OVER_BT_SMP_BUILD=y

# Enable ADC
CONFIG_ADC=y

#compress ota
CONFIG_LZMA=y
CONFIG_COMPRESS_LZMA=y

#matter switch mode
# config NORMAL_MODE 0 independent matter mode
# ACTION_DUAL_MODE 1 matter action switch mode ,such as by button
# AUTO_SWITCH_DUAL_MODE 2 matter auto-switch mode ,such as by scan QR code.
CONFIG_DUAL_MODE=1
8 changes: 7 additions & 1 deletion examples/light-switch-app/telink/prj.conf
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@ CONFIG_CHIP_FACTORY_DATA=n
CONFIG_CHIP_FACTORY_DATA_BUILD=n
CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWARE=n
CONFIG_CHIP_CERTIFICATION_DECLARATION_STORAGE=n

# CONFIG_CHIP_DEVICE_DISCRIMINATOR=0xF00
# Enable Power Management
CONFIG_PM=y

#ICD SETTING INFO
CONFIG_CHIP_ICD_SLOW_POLL_INTERVAL=7500
CONFIG_CHIP_ICD_FAST_POLLING_INTERVAL=200
CONFIG_CHIP_ICD_ACTIVE_MODE_THRESHOLD=300
CONFIG_CHIP_ICD_IDLE_MODE_DURATION=900
Loading
Loading