Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into remove-needed-issuer
Browse files Browse the repository at this point in the history
  • Loading branch information
tcarmelveilleux committed Nov 30, 2021
2 parents 9d5506d + 46fbb06 commit 49ecf0c
Show file tree
Hide file tree
Showing 420 changed files with 18,883 additions and 25,596 deletions.
18 changes: 18 additions & 0 deletions .github/.wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ aarch
abcdef
abfb
ABI
AES
DMM
ECDH
ECDSA
SHA
ABIs
ables
accessor
Expand Down Expand Up @@ -51,6 +56,7 @@ armeabi
ARMmbed
armv
asdk
AssertionError
ASYNC
att
attId
Expand Down Expand Up @@ -387,6 +393,7 @@ FOTA
FreeRTOS
FreeRTOSConfig
fsl
fstab
fsync
fullclean
gcloud
Expand Down Expand Up @@ -542,6 +549,7 @@ lightin
LightingColor
LightingState
LinkSoftwareAndDocumentationPack
LinuxOTARequestorDriver
LocalConfigDisabled
localhost
localstatedir
Expand Down Expand Up @@ -694,9 +702,13 @@ optionsMask
optionsOverride
orgs
OTA
OTADownloader
OTAImageProcessorDriver
OTAProviderIpAddress
OTAProviderNodeId
OTAProviderSerialPort
OTARequestor
OTARequestorDriver
OTARequesterImpl
OTARequestorSerialPort
OTBR
Expand Down Expand Up @@ -768,6 +780,7 @@ PyFunction
pylint
PyObject
PyRun
pytest
QEMU
Qorvo
QPG
Expand All @@ -781,6 +794,7 @@ qvCHIP
RADVD
raspberryPi
RasPi
rAv
RCP
ReadConfigValue
readelf
Expand Down Expand Up @@ -851,7 +865,10 @@ SERIALDEVICE
SerialNumber
ServiceId
SetDns
SetImageProcessorDelegate
SetOtaRequestorDriver
SetpointRaiseLower
SetRequestorInstance
SetUpPINCode
SetupQRCode
sexualized
Expand All @@ -866,6 +883,7 @@ SLAAC
SLTB
SLWSTK
SmartThings
smoketest
SMP
socat
socio
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker_img.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
fail-fast: false
matrix:
# TODO: Enables "-crosscompile" and "-vscode" images
img: ["", "-android", "-cirque", "-efr32", "-esp32", "-esp32-qemu", "-infineon", "-k32w", "-mbed-os", "-nrf-platform", "-telink", "-tizen"]
img: ["", "-android", "-cirque", "-doxygen", "-efr32", "-esp32", "-esp32-qemu", "-infineon", "-k32w", "-mbed-os", "-nrf-platform", "-telink", "-tizen"]
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/doxygen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ jobs:
timeout-minutes: 5

runs-on: ubuntu-20.04
container:
image: connectedhomeip/chip-build-doxygen:0.5.30

if: github.actor != 'restyled-io[bot]'

steps:
Expand Down
11 changes: 9 additions & 2 deletions .github/workflows/examples-infineon.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ concurrency:
jobs:
infineon:
name: Infineon examples building
timeout-minutes: 30
timeout-minutes: 60

runs-on: ubuntu-latest
if: github.actor != 'restyled-io[bot]'
Expand Down Expand Up @@ -72,7 +72,14 @@ jobs:
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
p6 default all-clusters-app \
out/infineon-p6-all-clusters/chip-p6-clusters-example.out
- name: Build lighting-app example
timeout-minutes: 10
run: |
scripts/run_in_build_env.sh \
"scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-light' build"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
p6 default light-app \
out/infineon-p6-light/chip-p6-lighting-example.out
- name: Uploading Size Reports
uses: actions/upload-artifact@v2
if: ${{ !env.ACT }}
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,10 @@ jobs:
timeout-minutes: 30
run: |
./scripts/run_in_build_env.sh \
"./scripts/tests/run_test_suite.py run \
--iterations 2 \
"./scripts/tests/run_test_suite.py \
--chip-tool ./out/debug/standalone/chip-tool \
run \
--iterations 2 \
--all-clusters-app ./out/debug/standalone/chip-all-clusters-app \
--tv-app ./out/debug/standalone/chip-tv-app \
"
Expand All @@ -115,12 +116,14 @@ jobs:

strategy:
matrix:
type: [tsan]
type: [tsan, asan]
eventloop: [eventloop_same, eventloop_separate]
env:
USE_SEPARATE_EVENTLOOP: ${{ matrix.eventloop == 'eventloop_separate' }}
USE_TSAN: ${{ matrix.type == 'tsan' }}

USE_ASAN: ${{ matrix.type == 'asan' }}

if: github.actor != 'restyled-io[bot]'
runs-on: macos-latest

Expand Down Expand Up @@ -159,11 +162,11 @@ jobs:
- name: Run Build Test Server
timeout-minutes: 10
run: |
scripts/examples/gn_build_example.sh examples/all-clusters-app/linux out/debug/standalone/ chip_config_network_layer_ble=false is_tsan=${USE_TSAN}
scripts/examples/gn_build_example.sh examples/all-clusters-app/linux out/debug/standalone/ chip_config_network_layer_ble=false is_tsan=${USE_TSAN} is_asan=${USE_ASAN}
- name: Build chip-tool
timeout-minutes: 10
run: |
scripts/examples/gn_build_example.sh examples/chip-tool out/debug/standalone/ is_tsan=${USE_TSAN} config_use_separate_eventloop=${USE_SEPARATE_EVENTLOOP}
scripts/examples/gn_build_example.sh examples/chip-tool out/debug/standalone/ is_tsan=${USE_TSAN} is_asan=${USE_ASAN} config_use_separate_eventloop=${USE_SEPARATE_EVENTLOOP}
- name: Copy objdir
run: |
# The idea is to not upload our objdir unless builds have
Expand All @@ -174,10 +177,10 @@ jobs:
run: |
./scripts/run_in_build_env.sh \
"./scripts/tests/run_test_suite.py \
--chip-tool ./out/debug/standalone/chip-tool \
--target-skip-glob 'TV_*' \
run \
--iterations 2 \
--chip-tool ./out/debug/standalone/chip-tool \
--all-clusters-app ./out/debug/standalone/chip-all-clusters-app \
--tv-app ./out/debug/standalone/chip-tv-app \
"
Expand Down
8 changes: 4 additions & 4 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
"name": "Debug Mbed unit tests",
"type": "cortex-debug",
"request": "launch",
"cwd": "${workspaceRoot}/src/test_driver/mbed",
"cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests",
"executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.elf",
"armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required
"servertype": "openocd",
Expand Down Expand Up @@ -225,7 +225,7 @@
"name": "Debug Mbed unit tests [remote]",
"type": "cortex-debug",
"request": "launch",
"cwd": "${workspaceRoot}/src/test_driver/mbed",
"cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests",
"executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.elf",
"armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required
"servertype": "external",
Expand All @@ -252,7 +252,7 @@
"name": "Flash Mbed unit tests",
"type": "cortex-debug",
"request": "launch",
"cwd": "${workspaceRoot}/src/test_driver/mbed",
"cwd": "${workspaceRoot}/src/test_driver/mbed//unit_tests",
"executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.elf",
"armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required
"servertype": "openocd",
Expand All @@ -277,7 +277,7 @@
"name": "Flash Mbed unit tests [remote]",
"type": "cortex-debug",
"request": "launch",
"cwd": "${workspaceRoot}/src/test_driver/mbed",
"cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests",
"executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.elf",
"armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/pigweed/bin/", // Pigweed environment bootstraping required
"servertype": "external",
Expand Down
3 changes: 2 additions & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@
"base": "$gcc",
"fileLocation": [
"relative",
"${workspaceFolder}/src/test_driver/mbed/build"
"${workspaceFolder}/src/test_driver/mbed/unit_tests/build"
]
}
}
Expand Down Expand Up @@ -246,6 +246,7 @@
"esp32-m5stack-all-clusters-rpc-ipv6only",
"infineon-p6-all-clusters",
"infineon-p6-lock",
"infineon-p6-light",
"linux-arm64-all-clusters",
"linux-arm64-all-clusters-ipv6only",
"linux-arm64-chip-tool",
Expand Down
3 changes: 3 additions & 0 deletions build/toolchain/flashable_executable.gni
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ template("gen_flashing_script") {
[
"flashing_script_generator",
"flashing_script_name",
"flashing_script_inputs",
"flashing_options",
"deps",
"data_deps",
Expand All @@ -72,6 +73,7 @@ template("gen_flashing_script") {
]

script = flashing_script_generator
inputs = flashing_script_inputs
}
}

Expand Down Expand Up @@ -131,6 +133,7 @@ template("flashable_executable") {

gen_flashing_script("$target_name.flashing") {
flashing_script_generator = invoker.flashing_script_generator
flashing_script_inputs = invoker.flashing_script_inputs
flashing_script_name = "$root_out_dir/${invoker.flashing_script_name}"
if (defined(invoker.flashing_options)) {
flashing_options = invoker.flashing_options
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
121 changes: 121 additions & 0 deletions docs/guides/ti_platform_overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Texas Instruments platform overview

The TI platform is a [Matter][matter_gh] platform based on the Texas Instruments
Incorporated SimpleLink SDK.

The following diagram is a simplified representation of a Matter application
which built on the TI Platform.

<p align="center">
<img src="images/matter_ti_overview_simplified.png" alt="matter_ti_overview_simplified">
</p>

## Texas Instruments SimpleLink SDK

The SimpleLink™ CC13xx and CC26xx Software Development Kit (SDK) delivers
components that enable engineers to develop applications on the Texas
Instruments SimpleLink CC13xx and CC26xx family of wireless microcontrollers
(MCUs). This software toolkit provides a cohesive and consistent software
experience for all SimpleLink CC13xx and CC26xx wireless MCU users by packaging
essential software components, such as a Bluetooth® Low Energy (BLE) protocol
stack supporting Bluetooth 5.2, Bluetooth Mesh, Thread 1.1.1 networking stack
based on OpenThread, Zigbee 3.0 compliant protocol suite, RF-Proprietary
examples, TI’s 15.4 Stack as well as the TI-RTOS kernel and TI Drivers in one
easy-to-use software package along with example applications and documentation.
In addition, the Dynamic Multi-Protocol Manager (DMM) software component enables
multiprotocol development on a single SimpleLink wireless MCU through
time-division multiplexing.

The SimpleLink MCU portfolio offers a single development environment that
delivers flexible hardware, software, and tool options for customers developing
wired and wireless applications. With 100 percent code reuse across host MCUs,
Wi-Fi™, Bluetooth Low Energy, Sub-1GHz devices and more, choose the MCU or
connectivity standard that fits your design. A one-time investment with the
SimpleLink software development kit allows you to reuse often, opening the door
to create unlimited applications. For more information, visit
www.ti.com/simplelink.

<hr>

## BLE and Thread stacks

In the TI example applications the Bluetooth Low Energy protocol is used to
provision the Thread protocol to enable Matter communication. Then Thread is
used for IP communication with other Matter devices.

The TI applications leverage the Bluetooth Low Energy stack on the CC13X2 and
CC26X2 families. This BLE software is distributed in binary form within the TI
SimpleLink SDK. The BLE stack leverages code that is present in the device ROM
for certain common BLE operations.

These applications leverage the OpenThread stack available within the Matter
repository for Thread communication. Platform support source is built from the
SimpleLink SDK.

These connection protocols can be run concurrently by using the Texas
Instruments Dynamic Multi-protocol Manager.

<hr>

## LwIP stack

The Lightweight IP stack interfaces with the OpenThread stack to offer standard
IP connectivity protocols that OpenThread does not natively support. This offers
a standard socket based interface to the Matter platform.

<hr>

## MbedTLS

The MbedTLS library is used by OpenThread and Matter for a wide variety of
protocols. This ranges from basic AES and SHA to cryptographic protocols like
ECDSA and ECDH.

The MbedTLS library is hardware accelerated using the TI SimpleLink SDK drivers.
This is achieved through the usage of `_ALT` defines in the MbedTLS
configuration file.

<hr>

## Matter integration

Matter interacts with LwIP, OpenThread, and the TI BLE stack to achieve the
protocol and application functionality. A BLE profile is registered with the
TI-BLE stack to enable provisioning and configuration. Once the device is
provisioned Matter will configure the OpenThread interface to connect to an
existing Thread network or to start its own network. From there the Matter IP
messages are sent to the LwIP stack to be routed to the OpenThread stack for
transmission.

Overall, applications generally only need to interface with the Cluster Library
from Matter. The transport of messages and configuration of the device is all
handled by the platform implementation files.

<hr>

# Matter example applications

Sample Matter applications are provided for the TI platform. These can be used
as reference for your own application.

- [lock-app](../../examples/lock-app/cc13x2x7_26x2x7/README.md)
- [pump-app](../../examples/pump-app/cc13x2x7_26x2x7/README.md)
- [pump-controller-app](../../examples/pump-controller-app/cc13x2x7_26x2x7/README.md)

<hr>

## Build system

The TI platform uses GN to generate ninja build scripts. Build files have
already been written to build and link the TI specific code within the
SimpleLink SDK.

<hr>

## TI Support

For technical support, please consider creating a post on TI's [E2E forum][e2e].
Additionally, we welcome any feedback.

[e2e]: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread
[matter_gh]: https://github.com/project-chip/connectedhomeip
Loading

0 comments on commit 49ecf0c

Please sign in to comment.