diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 386253bb60..3d2c6295f8 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -37,6 +37,7 @@ RUN apt-get update \
valgrind \
docker.io \
iputils-ping \
+ icecc \
&& :
RUN groupadd -g $USER_GID $USERNAME \
@@ -80,3 +81,13 @@ ENV TIZEN_ROOTFS /tizen_rootfs
# Fast Model GDB plugins path for debugging support
ENV FAST_MODEL_PLUGINS_PATH /opt/FastModelsPortfolio_11.16/plugins/Linux64_GCC-9.3
+
+# Set up ccache as a pigweed command launcher when using the scripts/build/build_examples.py
+# script. Also, set up icecc as the command prefix for ccache. Such setup allows to benefit
+# from compilation caching and distributed compilation at the same time.
+#
+# NOTE: In order to use distributed compilation with icecc, one should run
+# "scripts/icecc.sh start" before starting the build.
+ENV CHIP_PW_COMMAND_LAUNCHER ccache
+ENV CCACHE_PREFIX icecc
+ENV PATH /usr/lib/ccache:$PATH
diff --git a/.github/.wordlist.txt b/.github/.wordlist.txt
index 5c24cdec82..a5dee8881f 100644
--- a/.github/.wordlist.txt
+++ b/.github/.wordlist.txt
@@ -735,6 +735,7 @@ isUpperCase
itemName
iterable
itsfoss
+IW
JDK
jinja
JLink
@@ -893,6 +894,7 @@ microcontroller
microcontrollers
MicroSD
middleware
+MIMXRT
minApplicableSoftwareVersion
Minicom
MinInterval
@@ -924,6 +926,7 @@ Multicast
multilib
Multiprotocol
multithreaded
+Murata
mutex
mutexes
mv
@@ -1006,6 +1009,7 @@ OpenThreadDemo
openweave
OperationalCredentials
operationalDataset
+operationalstate
opkg
OPTIGA
optionMask
@@ -1451,6 +1455,8 @@ trackFree
TransferSession
transitionTime
TransportMgrBase
+triaged
+triaging
TriggerEffect
TRNG
trustm
diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml
index 909ef045c0..f47ce85932 100644
--- a/.github/issue-labeler.yml
+++ b/.github/issue-labeler.yml
@@ -12,8 +12,18 @@ darwin:
# (?![a-z]) means "there is no next char in the range a-z".
- "/(\\b[Ii][Oo][Ss](?![a-zA-Z])|[Hh][Oo][Mm][Ee][Pp][Oo][Dd]|[Dd][Aa][Rr][Ww][Ii][Nn]|\\bm[Aa][Cc]\\b|\\bMa[Cc]\\b|\\bM[Aa]c\\b|[Mm][Aa][Cc][Oo][Ss])/"
-linux:
- - "/(linux)/i"
+
+# NOTE:
+# Linux intentionally disabled: most people compile either on linux or darwin and
+# as a result a lot of issues get tagged as such even though they are not platform specific
+# (e.g. we get test case failures reported as linux even though they are just normal
+# test runs)
+#
+# Linux label should be reserved to platform-specific problems (usually bootstrap/packages
+# or integration with wifi/ethernet/bluetootn/etc.)
+#
+# linux:
+# - "/(linux)/i"
# Special Keywords for Cert Blockers
air purifiers:
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 7e02fe6d36..68d976ecd5 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -275,14 +275,22 @@ darwin:
silabs:
- changed-files:
- any-glob-to-any-file:
+ - examples/platform/silabs/*
+ - examples/platform/silabs/**/*
- src/platform/silabs/*
- src/platform/silabs/**/*
+ - src/test_driver/efr32/*
+ - src/test_driver/efr32/**/*
esp32:
- changed-files:
- any-glob-to-any-file:
+ - examples/platform/esp32/*
+ - examples/platform/esp32/**/*
- src/platform/ESP32/*
- src/platform/ESP32/**/*
+ - src/test_driver/esp32/*
+ - src/test_driver/esp32/**/*
freeRTOS:
- changed-files:
@@ -290,23 +298,31 @@ freeRTOS:
- src/platform/FreeRTOS/*
- src/platform/FreeRTOS/**/*
-k32w:
+nxp:
- changed-files:
- any-glob-to-any-file:
- - src/platform/K32W/*
- - src/platform/K32W/**/*
+ - examples/platform/nxp/*
+ - examples/platform/nxp/**/*
+ - src/platform/nxp/*
+ - src/platform/nxp/**/*
linux:
- changed-files:
- any-glob-to-any-file:
+ - examples/platform/linux/*
+ - examples/platform/linux/**/*
- src/platform/Linux/*
- src/platform/Linux/**/*
nrf connect:
- changed-files:
- any-glob-to-any-file:
+ - examples/platform/nrfconnect/*
+ - examples/platform/nrfconnect/**/*
- src/platform/nrfconnect/*
- src/platform/nrfconnect/**/*
+ - src/test_driver/nrfconnect/*
+ - src/test_driver/nrfconnect/**/*
openthread:
- changed-files:
@@ -323,11 +339,17 @@ zephyr:
telink:
- changed-files:
- any-glob-to-any-file:
+ - examples/platform/telink/*
+ - examples/platform/telink/**/*
- src/platform/telink/*
- src/platform/telink/**/*
tizen:
- changed-files:
- any-glob-to-any-file:
+ - examples/platform/tizen/*
+ - examples/platform/tizen/**/*
- src/platform/Tizen/*
- src/platform/Tizen/**/*
+ - src/test_driver/tizen/*
+ - src/test_driver/tizen/**/*
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index f14a16f5e0..af102bf96e 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -157,6 +157,9 @@ jobs:
run: echo "$CONCURRENCY_CONTEXT"
- name: Checkout
uses: actions/checkout@v4
+ with:
+ fetch-depth: 2
+ persist-credentials: true
- name: Try to ensure the directories for core dumping exist and we
can write them.
run: |
@@ -186,6 +189,10 @@ jobs:
- name: Clean output
run: rm -rf ./out
- name: Run Tests with sanitizers
+ # Sanitizer tests are not likely to find extra issues so running the same tests
+ # as above repeatedly on every pull request seems extra time. Instead keep this run
+ # for master only
+ if: github.event.pull_request.number == null
env:
LSAN_OPTIONS: detect_leaks=1
run: |
@@ -201,17 +208,34 @@ jobs:
BUILD_TYPE=sanitizers scripts/build/gn_gen.sh --args="$GN_ARGS chip_data_model_check_die_on_failure=true" --export-compile-commands
BUILD_TYPE=sanitizers scripts/tests/gn_tests.sh
done
+ - name: Generate tests with sanitizers (for tidy)
+ if: github.event.pull_request.number != null
+ run: |
+ rm -rf ./out/sanitizers
+ BUILD_TYPE=sanitizers scripts/build/gn_gen.sh --args="is_clang=true is_asan=true chip_data_model_check_die_on_failure=true" --export-compile-commands
- name: Ensure codegen is done for sanitize
run: |
./scripts/run_in_build_env.sh "./scripts/run_codegen_targets.sh out/sanitizers"
+ - name: Find changed files
+ id: changed-files
+ uses: tj-actions/changed-files@v45
- name: Clang-tidy validation
# NOTE: clang-tidy crashes on CodegenDataModel_Write due to Nullable/std::optional check.
# See https://github.com/llvm/llvm-project/issues/97426
+ env:
+ ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
+ touch out/changed_files.txt
+ for file in ${ALL_CHANGED_FILES}; do
+ echo "$file changed and will be considered for tidy"
+ echo "$file" >>out/changed_files.txt
+ done
+
./scripts/run_in_build_env.sh \
"./scripts/run-clang-tidy-on-compile-commands.py \
--compile-database out/sanitizers/compile_commands.json \
--file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|-ReadImpl|-InvokeSubscribeImpl|CodegenDataModel_Write|QuieterReporting' \
+ --file-list-file out/changed_files.txt \
check \
"
- name: Clean output
@@ -375,13 +399,16 @@ jobs:
scripts/build_python_device.sh --chip_detail_logging true
build_darwin:
- name: Build on Darwin (clang, python_lib, simulated)
+ name: Build on Darwin (clang, simulated)
runs-on: macos-13
if: github.actor != 'restyled-io[bot]'
steps:
- name: Checkout
uses: actions/checkout@v4
+ with:
+ fetch-depth: 2
+ persist-credentials: true
- name: Checkout submodules & Bootstrap
uses: ./.github/actions/checkout-submodules-and-bootstrap
with:
@@ -402,37 +429,42 @@ jobs:
CHIP_ROOT_PATH=examples/placeholder/linux
CHIP_ROOT_PATH="$CHIP_ROOT_PATH" BUILD_TYPE="$BUILD_TYPE" scripts/build/gn_gen.sh --args="$GN_ARGS"
scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE"
- - name: Setup Build, Run Build and Run Tests
+ - name: Setup Build, Run Build and Run Tests (asan + target_os=all)
# We can't enable leak checking here in LSAN_OPTIONS, because on
# Darwin that's only supported with a new enough clang, and we're
# not building with the pigweed clang here.
+ env:
+ BUILD_TYPE: default
run: |
- for BUILD_TYPE in default python_lib; do
- case $BUILD_TYPE in
- # We want to build various standalone example apps
- # (similar to what examples-linux-standalone.yaml
- # does), so use target_os="all" to get those picked
- # up as part of the "unified" build. But then to
- # save CI resources we want to exclude the
- # "host clang" build, which uses the pigweed
- # clang.
- "default") GN_ARGS='target_os="all" is_asan=true enable_host_clang_build=false';;
- esac
- BUILD_TYPE=$BUILD_TYPE scripts/build/gn_gen.sh --args="$GN_ARGS chip_data_model_check_die_on_failure=true" --export-compile-commands
- scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE"
- BUILD_TYPE=$BUILD_TYPE scripts/tests/gn_tests.sh
- done
- - name: Ensure codegen is done for sanitize
+ # We want to build various standalone example apps (similar to what examples-linux-standalone.yaml
+ # does), so use target_os="all" to get those picked up as part of the "unified" build. But then
+ # to save CI resources we want to exclude the "host clang" build, which uses the pigweed clang.
+ scripts/build/gn_gen.sh --args='target_os="all" is_asan=true enable_host_clang_build=false chip_data_model_check_die_on_failure=true' --export-compile-commands
+ scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE"
+ scripts/tests/gn_tests.sh
+ - name: Ensure codegen is done for default
run: |
./scripts/run_in_build_env.sh "./scripts/run_codegen_targets.sh out/default"
+ - name: Find changed files
+ id: changed-files
+ uses: tj-actions/changed-files@v45
- name: Clang-tidy validation
# NOTE: clang-tidy crashes on CodegenDataModel_Write due to Nullable/std::optional check.
# See https://github.com/llvm/llvm-project/issues/97426
+ env:
+ ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
+ touch out/changed_files.txt
+ for file in ${ALL_CHANGED_FILES}; do
+ echo "$file changed and will be considered for tidy"
+ echo "$file" >>out/changed_files.txt
+ done
+
./scripts/run_in_build_env.sh \
"./scripts/run-clang-tidy-on-compile-commands.py \
--compile-database out/default/compile_commands.json \
--file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|CodegenDataModel_Write|QuieterReporting' \
+ --file-list-file out/changed_files.txt \
check \
"
- name: Uploading diagnostic logs
diff --git a/.github/workflows/cancel_workflows_for_pr.yaml b/.github/workflows/cancel_workflows_for_pr.yaml
new file mode 100644
index 0000000000..caba07bedf
--- /dev/null
+++ b/.github/workflows/cancel_workflows_for_pr.yaml
@@ -0,0 +1,52 @@
+# Copyright (c) 2024 Project CHIP Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+name: Cancel workflows on failing CI
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: "*/10 * * * *"
+
+jobs:
+ cancel_workflow:
+ name: Cancel CI on failing pull requests
+
+ runs-on: ubuntu-latest
+
+ # Don't run on forked repos
+ if: github.repository_owner == 'project-chip'
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.12'
+ - name: Setup pip modules we use
+ run: |
+ pip install \
+ click \
+ coloredlogs \
+ python-dateutil \
+ pygithub \
+ && echo "DONE installint python prerequisites"
+ - name: Cancel runs
+ run: |
+ scripts/tools/cancel_workflows_for_pr.py \
+ --gh-api-token "${{ secrets.GITHUB_TOKEN }}" \
+ --require "Restyled" \
+ --require "Lint Code Base" \
+ --require "ZAP" \
+ --require "Run misspell" \
+ --max-pr-age-minutes 20
diff --git a/.github/workflows/cert_test_checks.yaml b/.github/workflows/cert_test_checks.yaml
index 44d545a663..3f8f54dcf2 100644
--- a/.github/workflows/cert_test_checks.yaml
+++ b/.github/workflows/cert_test_checks.yaml
@@ -18,6 +18,8 @@ on:
pull_request:
paths:
- "src/app/tests/suites/certification/**"
+permissions:
+ contents: read
jobs:
check-certification-tests:
@@ -30,6 +32,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
- name: Run checks
run: |
python3 scripts/tests/matter_yaml_linter.py
diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml
index 1ddc9e9fbc..2d46de23cf 100644
--- a/.github/workflows/darwin-tests.yaml
+++ b/.github/workflows/darwin-tests.yaml
@@ -73,6 +73,10 @@ jobs:
platform: darwin
bootstrap-log-name: bootstrap-logs-darwin-${{ matrix.build_variant }}
+ - name: Build iOS Darwin Framework Tool Build Debug
+ working-directory: src/darwin/Framework
+ run: xcodebuild -target "darwin-framework-tool" -sdk iphoneos -configuration Debug AD_HOC_CODE_SIGNING_ALLOWED=YES
+
- name: Run macOS Darwin Framework Tool Build Debug
working-directory: src/darwin/Framework
run: xcodebuild -target "darwin-framework-tool" -sdk macosx -configuration Debug
diff --git a/.github/workflows/examples-bouffalolab.yaml b/.github/workflows/examples-bouffalolab.yaml
index 9a6989881e..9a51b612a1 100644
--- a/.github/workflows/examples-bouffalolab.yaml
+++ b/.github/workflows/examples-bouffalolab.yaml
@@ -58,25 +58,15 @@ jobs:
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
- --target bouffalolab-bl602dk-light-easyflash \
- --target bouffalolab-bl602dk-light-mfd-littlefs \
- --target bouffalolab-bl602dk-light-rpc-115200-littlefs \
+ --target bouffalolab-bl602dk-light-mfd-littlefs-rpc-115200 \
build \
--copy-artifacts-to out/artifacts \
"
- name: Prepare some bloat report from the previous builds
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl602 bl602 lighting-app \
- out/artifacts/bouffalolab-bl602dk-light-easyflash/chip-bl602-lighting-example.out \
- /tmp/bloat_reports/
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl602 bl602+mfd lighting-app \
- out/artifacts/bouffalolab-bl602dk-light-mfd-littlefs/chip-bl602-lighting-example.out \
- /tmp/bloat_reports/
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl602 bl602+rpc lighting-app \
- out/artifacts/bouffalolab-bl602dk-light-rpc-115200-littlefs/chip-bl602-lighting-example.out \
+ bl602 bl602+mfd+littlefs+rpc lighting-app \
+ out/artifacts/bouffalolab-bl602dk-light-mfd-littlefs-rpc-115200/chip-bl602-lighting-example.out \
/tmp/bloat_reports/
- name: Clean out build output
run: rm -rf ./out
@@ -85,35 +75,25 @@ jobs:
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
- --target bouffalolab-bl706dk-light-easyflash \
- --target bouffalolab-bl706dk-light-mfd-littlefs \
- --target bouffalolab-bl706dk-light-ethernet-littlefs \
+ --target bouffalolab-bl706dk-light-ethernet-easyflash \
--target bouffalolab-bl706dk-light-wifi-littlefs \
- --target bouffalolab-bl706dk-light-rpc-115200-littlefs \
+ --target bouffalolab-bl706dk-light-mfd-rpc-littlefs-115200 \
build \
--copy-artifacts-to out/artifacts \
"
- name: Prepare some bloat report from the previous builds
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702 bl702 lighting-app \
- out/artifacts/bouffalolab-bl706dk-light-easyflash/chip-bl702-lighting-example.out \
- /tmp/bloat_reports/
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702 bl702+mfd lighting-app \
- out/artifacts/bouffalolab-bl706dk-light-mfd-littlefs/chip-bl702-lighting-example.out \
- /tmp/bloat_reports/
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702 bl706-eth lighting-app \
- out/artifacts/bouffalolab-bl706dk-light-ethernet-littlefs/chip-bl702-lighting-example.out \
+ bl702 bl702+eth lighting-app \
+ out/artifacts/bouffalolab-bl706dk-light-ethernet-easyflash/chip-bl702-lighting-example.out \
/tmp/bloat_reports/
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702 bl706-wifi lighting-app \
+ bl702 bl702+wifi lighting-app \
out/artifacts/bouffalolab-bl706dk-light-wifi-littlefs/chip-bl702-lighting-example.out \
/tmp/bloat_reports/
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702 bl702+rpc lighting-app \
- out/artifacts/bouffalolab-bl706dk-light-rpc-115200-littlefs/chip-bl702-lighting-example.out \
+ bl702 bl706+mfd+rpc+littlefs lighting-app \
+ out/artifacts/bouffalolab-bl706dk-light-mfd-rpc-littlefs-115200/chip-bl702-lighting-example.out \
/tmp/bloat_reports/
- name: Clean out build output
run: rm -rf ./out
@@ -123,7 +103,6 @@ jobs:
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
- --target bouffalolab-bl704ldk-light-easyflash \
--target bouffalolab-bl704ldk-light-mfd-littlefs \
build \
--copy-artifacts-to out/artifacts \
@@ -131,11 +110,7 @@ jobs:
- name: Prepare some bloat report from the previous builds
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702l bl702l lighting-app \
- out/artifacts/bouffalolab-bl704ldk-light-easyflash/chip-bl702l-lighting-example.out \
- /tmp/bloat_reports/
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- bl702l bl702l+mfd lighting-app \
+ bl702l bl702l+mfd+littlefs lighting-app \
out/artifacts/bouffalolab-bl704ldk-light-mfd-littlefs/chip-bl702l-lighting-example.out \
/tmp/bloat_reports/
- name: Clean out build output
@@ -145,4 +120,4 @@ jobs:
uses: ./.github/actions/upload-size-reports
if: ${{ !env.ACT }}
with:
- platform-name: BouffaloLab
+ platform-name: BouffaloLab
\ No newline at end of file
diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml
index 6d28635597..b0b4fef50e 100644
--- a/.github/workflows/examples-efr32.yaml
+++ b/.github/workflows/examples-efr32.yaml
@@ -41,7 +41,7 @@ jobs:
if: github.actor != 'restyled-io[bot]'
container:
- image: ghcr.io/project-chip/chip-build-efr32:81
+ image: ghcr.io/project-chip/chip-build-efr32:85
volumes:
- "/tmp/bloat_reports:/tmp/bloat_reports"
steps:
@@ -68,8 +68,7 @@ jobs:
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
--enable-flashbundle \
- --target efr32-brd4187c-thermostat-openthread-mtd \
- --target efr32-brd4187c-air-quality-sensor-app-openthread-mtd \
+ --target efr32-brd4187c-thermostat-use-ot-lib \
--target efr32-brd4187c-switch-shell-use-ot-coap-lib \
--target efr32-brd4187c-unit-test \
build \
@@ -82,29 +81,17 @@ jobs:
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
--enable-flashbundle \
- --target efr32-brd4187c-light-use-ot-lib \
- --target efr32-brd4187c-pump \
- --target efr32-brd4187c-lock-shell-heap-monitoring \
- build \
- --copy-artifacts-to out/artifacts \
- "
- - name: Clean out build output
- run: rm -rf ./out
- - name: Build BRD4187C variants (3)
- run: |
- ./scripts/run_in_build_env.sh \
- "./scripts/build/build_examples.py \
- --enable-flashbundle \
+ --target efr32-brd4187c-lock-rpc \
+ --target efr32-brd4187c-air-quality-sensor-app-shell-heap-monitoring \
--target efr32-brd4187c-window-covering-additional-data-advertising \
- --target efr32-brd4187c-light-rpc \
build \
--copy-artifacts-to out/artifacts \
"
- name: Prepare some bloat report from the previous builds
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- efr32 BRD4187C lighting-app \
- out/efr32-brd4187c-light-rpc/matter-silabs-lighting-example.out \
+ efr32 BRD4187C lock-app \
+ out/efr32-brd4187c-lock-rpc/matter-silabs-lock-example.out \
/tmp/bloat_reports/
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
efr32 BRD4187C window-app \
@@ -112,12 +99,12 @@ jobs:
/tmp/bloat_reports/
- name: Clean out build output
run: rm -rf ./out
- - name: Build BRD4338A WiFi Soc variants
+ - name: Build some WiFi Soc variants
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
--enable-flashbundle \
- --target efr32-brd4338a-light-skip-rps-generation \
+ --target efr32-brd2605a-light-skip-rps-generation \
--target efr32-brd4338a-lock-skip-rps-generation \
build \
--copy-artifacts-to out/artifacts \
@@ -130,24 +117,6 @@ jobs:
/tmp/bloat_reports/
- name: Clean out build output
run: rm -rf ./out
- - name: Build BRD2605A WiFi Soc variants
- run: |
- ./scripts/run_in_build_env.sh \
- "./scripts/build/build_examples.py \
- --enable-flashbundle \
- --target efr32-brd2605a-light-skip-rps-generation \
- --target efr32-brd2605a-lock-skip-rps-generation \
- build \
- --copy-artifacts-to out/artifacts \
- "
- - name: Prepare bloat report for brd2605a lock app
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- efr32 BRD2605a lock-app \
- out/efr32-brd2605a-lock-skip-rps-generation/matter-silabs-lock-example.out \
- /tmp/bloat_reports/
- - name: Clean out build output
- run: rm -rf ./out
- name: Build EFR32 with WiFi NCP
run: |
./scripts/run_in_build_env.sh \
diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml
index a2dca96dc6..b3a6ed24e6 100644
--- a/.github/workflows/examples-esp32.yaml
+++ b/.github/workflows/examples-esp32.yaml
@@ -105,14 +105,11 @@ jobs:
example_binaries/esp32-build/chip-all-clusters-app.elf \
/tmp/bloat_reports/
- - name: Build example Pigweed App
- run: scripts/examples/esp_example.sh pigweed-app sdkconfig.defaults
-
- name: Build example Lighting App (Target:ESP32H2)
run: scripts/examples/esp_example.sh lighting-app sdkconfig.defaults.esp32h2 esp32h2
- - name: Build example Lock App (Target:ESP32C6)
- run: scripts/examples/esp_example.sh lock-app sdkconfig.defaults.esp32c6 esp32c6
+ - name: Build example Lighting App (Target:ESP32C6)
+ run: scripts/examples/esp_example.sh lighting-app sdkconfig.defaults.esp32c6 esp32c6
- name: Uploading Size Reports
uses: ./.github/actions/upload-size-reports
@@ -124,7 +121,7 @@ jobs:
name: ESP32_1
runs-on: ubuntu-latest
- if: github.actor != 'restyled-io[bot]'
+ if: github.actor != 'restyled-io[bot]' && github.repository_owner == 'espressif'
container:
image: ghcr.io/project-chip/chip-build-esp32:81
@@ -168,3 +165,9 @@ jobs:
- name: Build example LIT ICD App (Target:ESP32H2)
run: scripts/examples/esp_example.sh lit-icd-app sdkconfig.defaults esp32h2
+
+ - name: Build example Pigweed App
+ run: scripts/examples/esp_example.sh pigweed-app sdkconfig.defaults
+
+ - name: Build example Lock App (Target:ESP32C6)
+ run: scripts/examples/esp_example.sh lock-app sdkconfig.defaults.esp32c6 esp32c6
diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml
index ee226b12dc..78a1c8dea8 100644
--- a/.github/workflows/examples-linux-arm.yaml
+++ b/.github/workflows/examples-linux-arm.yaml
@@ -65,11 +65,12 @@ jobs:
--target linux-arm64-chip-tool-nodeps-ipv6only \
--target linux-arm64-lock-clang \
--target linux-arm64-minmdns-clang \
- --target linux-arm64-light-rpc-ipv6only-clang \
+ --target linux-arm64-light-data-model-enabled-rpc-ipv6only-clang \
--target linux-arm64-thermostat-no-ble-clang \
--target linux-arm64-lit-icd-no-ble-clang \
--target linux-arm64-fabric-admin-clang-rpc \
--target linux-arm64-fabric-bridge-no-ble-clang-rpc \
+ --target linux-arm64-fabric-sync-no-ble-clang \
build \
"
- name: Bloat report - chip-tool
diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml
index 83b82369ba..2bed5acd82 100644
--- a/.github/workflows/examples-linux-standalone.yaml
+++ b/.github/workflows/examples-linux-standalone.yaml
@@ -219,6 +219,16 @@ jobs:
linux debug fabric-bridge-app \
out/linux-x64-fabric-bridge-no-ble-rpc/fabric-bridge-app \
/tmp/bloat_reports/
+ - name: Build example Fabric Sync
+ run: |
+ ./scripts/run_in_build_env.sh \
+ "./scripts/build/build_examples.py \
+ --target linux-x64-fabric-sync-no-ble \
+ build"
+ .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
+ linux debug fabric-sync \
+ out/linux-x64-fabric-sync-no-ble/fabric-sync \
+ /tmp/bloat_reports/
- name: Uploading Size Reports
uses: ./.github/actions/upload-size-reports
if: ${{ !env.ACT }}
diff --git a/.github/workflows/examples-nxp.yaml b/.github/workflows/examples-nxp.yaml
index 6354718f25..c4b6eb148a 100644
--- a/.github/workflows/examples-nxp.yaml
+++ b/.github/workflows/examples-nxp.yaml
@@ -30,17 +30,17 @@ env:
CHIP_NO_LOG_TIMESTAMPS: true
jobs:
- k32w0:
- name: K32W0
+ FreeRTOS:
+ name: FREERTOS
env:
- BUILD_TYPE: gn_k32w
+ BUILD_TYPE: gn_FreeRTOS
runs-on: ubuntu-latest
if: github.actor != 'restyled-io[bot]'
container:
- image: ghcr.io/project-chip/chip-build-nxp:80
+ image: ghcr.io/project-chip/chip-build-nxp:81
volumes:
- "/tmp/bloat_reports:/tmp/bloat_reports"
steps:
@@ -50,6 +50,15 @@ jobs:
uses: ./.github/actions/checkout-submodules-and-bootstrap
with:
platform: nxp
+ extra-submodule-parameters: --recursive
+
+ - name: Detect changed paths
+ uses: dorny/paths-filter@v3
+ id: changed_paths
+ with:
+ filters: |
+ nxp:
+ - '**/nxp/**'
- name: Set up environment for size reports
uses: ./.github/actions/setup-size-reports
@@ -57,222 +66,173 @@ jobs:
with:
gh-context: ${{ toJson(github) }}
- - name: Build examples
+ - name: Build K32W0 examples
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-k32w0-freertos-lighting \
--target nxp-k32w0-freertos-lighting-factory \
- --target nxp-k32w0-freertos-lighting-rotating-id \
- --target nxp-k32w0-freertos-contact-sensor \
- --target nxp-k32w0-freertos-contact-sensor-low-power \
--target nxp-k32w0-freertos-contact-sensor-low-power-factory \
build \
--copy-artifacts-to out/artifacts \
"
- - name: Get lighting app size stats
+ - name: Get K32W0 lighting app size stats
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
nxp k32w0+release light \
- out/artifacts/nxp-k32w0-freertos-lighting/chip-k32w0x-light-example.elf \
+ out/artifacts/nxp-k32w0-freertos-lighting-factory/chip-k32w0x-light-example.elf \
/tmp/bloat_reports/
- - name: Get contact sensor size stats
+ - name: Get K32W0 contact sensor size stats
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
nxp k32w0+release contact \
- out/artifacts/nxp-k32w0-freertos-contact-sensor-low-power/chip-k32w0x-contact-example.elf \
+ out/artifacts/nxp-k32w0-freertos-contact-sensor-low-power-factory/chip-k32w0x-contact-example.elf \
/tmp/bloat_reports/
- - name: Uploading Size Reports
- uses: ./.github/actions/upload-size-reports
- if: ${{ !env.ACT }}
- with:
- platform-name: K32W0
- k32w1:
- name: K32W1
-
- env:
- BUILD_TYPE: gn_k32w
-
- runs-on: ubuntu-latest
- if: github.actor != 'restyled-io[bot]'
-
- container:
- image: ghcr.io/project-chip/chip-build-nxp:81
- volumes:
- - "/tmp/bloat_reports:/tmp/bloat_reports"
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Checkout submodules & Bootstrap
- uses: ./.github/actions/checkout-submodules-and-bootstrap
- with:
- platform: nxp
- extra-submodule-parameters: --recursive
- - name: Set up environment for size reports
- uses: ./.github/actions/setup-size-reports
- if: ${{ !env.ACT }}
- with:
- gh-context: ${{ toJson(github) }}
+ - name: clean build
+ run: rm -rf ./out
- - name: Build examples
+ - name: Build K32W1 examples
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
--target nxp-k32w1-freertos-lighting \
- --target nxp-k32w1-freertos-contact-sensor-low-power \
- --target nxp-k32w1-freertos-lock-app \
build \
--copy-artifacts-to out/artifacts \
"
- - name: Get lighting app size stats
+ - name: Get K32W1 lighting app size stats
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
nxp k32w1+release light \
out/artifacts/nxp-k32w1-freertos-lighting/chip-k32w1-light-example.elf \
/tmp/bloat_reports/
- - name: Get contact sensor size stats
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- nxp k32w1+release contact \
- out/artifacts/nxp-k32w1-freertos-contact-sensor-low-power/chip-k32w1-contact-example.elf \
- /tmp/bloat_reports/
- - name: Get lock app size stats
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- nxp k32w1+release lock \
- out/artifacts/nxp-k32w1-freertos-lock-app/chip-k32w1-lock-example.elf \
- /tmp/bloat_reports/
- - name: Uploading Size Reports
- uses: ./.github/actions/upload-size-reports
- if: ${{ !env.ACT }}
- with:
- platform-name: K32W1
- mcxw71:
- name: MCXW71
- env:
- BUILD_TYPE: gn_k32w
+ - name: clean build
+ run: rm -rf ./out
- runs-on: ubuntu-latest
- if: github.actor != 'restyled-io[bot]'
-
- container:
- image: ghcr.io/project-chip/chip-build-nxp:81
- volumes:
- - "/tmp/bloat_reports:/tmp/bloat_reports"
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Checkout submodules & Bootstrap
- uses: ./.github/actions/checkout-submodules-and-bootstrap
- with:
- platform: nxp
- extra-submodule-parameters: --recursive
-
- - name: Set up environment for size reports
- uses: ./.github/actions/setup-size-reports
- if: ${{ !env.ACT }}
- with:
- gh-context: ${{ toJson(github) }}
-
- - name: Build examples
+ - name: Build MCXW71 examples
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-mcxw71-freertos-lighting \
--target nxp-mcxw71-freertos-contact-sensor-low-power \
--target nxp-mcxw71-freertos-lock-app \
build \
--copy-artifacts-to out/artifacts \
"
- - name: Get lighting app size stats
- run: |
- .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
- nxp mcxw71+release light \
- out/artifacts/nxp-mcxw71-freertos-lighting/chip-mcxw71-light-example.elf \
- /tmp/bloat_reports/
- - name: Get contact sensor size stats
+ - name: Get MCXW71 contact sensor size stats
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
nxp mcxw71+release contact \
out/artifacts/nxp-mcxw71-freertos-contact-sensor-low-power/chip-mcxw71-contact-example.elf \
/tmp/bloat_reports/
- - name: Get lock app size stats
+ - name: Get MCXW71 lock app size stats
run: |
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
nxp mcxw71+release lock \
out/artifacts/nxp-mcxw71-freertos-lock-app/chip-mcxw71-lock-example.elf \
/tmp/bloat_reports/
- - name: Uploading Size Reports
- uses: ./.github/actions/upload-size-reports
- if: ${{ !env.ACT }}
- with:
- platform-name: MCXW71
- rw61x:
- name: RW61X
- env:
- BUILD_TYPE: gn_rw61x
+ - name: clean build
+ run: rm -rf ./out
- runs-on: ubuntu-latest
- if: github.actor != 'restyled-io[bot]'
+ - name: Build RT1060 all clusters example app
+ run: |
+ scripts/run_in_build_env.sh "\
+ ./scripts/build/build_examples.py \
+ --target nxp-rt1060-freertos-all-clusters-wifi-iw416 \
+ --target nxp-rt1060-freertos-all-clusters-wifi-w8801 \
+ --target nxp-rt1060-freertos-all-clusters-wifi-ota-evkc-iwx12 \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
+ - name: Build RT1060 thermostat example app
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
+ run: |
+ scripts/run_in_build_env.sh "\
+ ./scripts/build/build_examples.py \
+ --target nxp-rt1060-freertos-thermostat-thread-wifi-evkc-iwx12 \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
+ - name: Build RT1060 laundry-washer example app
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
+ run: |
+ scripts/run_in_build_env.sh "\
+ ./scripts/build/build_examples.py \
+ --target nxp-rt1060-freertos-laundry-washer-wifi-evkc-iwx12 \
+ --target nxp-rt1060-freertos-laundry-washer-thread-evkc-iwx12 \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
- container:
- image: ghcr.io/project-chip/chip-build-nxp:81
- volumes:
- - "/tmp/bloat_reports:/tmp/bloat_reports"
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Checkout submodules & Bootstrap
- uses: ./.github/actions/checkout-submodules-and-bootstrap
- with:
- platform: nxp
- extra-submodule-parameters: --recursive
+ - name: clean build
+ run: rm -rf ./out
- - name: Set up environment for size reports
- uses: ./.github/actions/setup-size-reports
- if: ${{ !env.ACT }}
- with:
- gh-context: ${{ toJson(github) }}
+ - name: Build RT1170 all clusters example app
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
+ run: |
+ scripts/run_in_build_env.sh "\
+ ./scripts/build/build_examples.py \
+ --target nxp-rt1170-freertos-all-clusters-wifi-iwx12 \
+ --target nxp-rt1170-freertos-all-clusters-wifi-ota-iwx12 \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
+ - name: Build RT1170 thermostat example app
+ run: |
+ scripts/run_in_build_env.sh "\
+ ./scripts/build/build_examples.py \
+ --target nxp-rt1170-freertos-thermostat-thread-wifi-iwx12 \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
+ - name: Build RT1170 laundry-washer example app
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
+ run: |
+ scripts/run_in_build_env.sh "\
+ ./scripts/build/build_examples.py \
+ --target nxp-rt1170-freertos-laundry-washer-thread-iwx12 \
+ build \
+ --copy-artifacts-to out/artifacts \
+ "
+
+ - name: clean build
+ run: rm -rf ./out
- name: Build RW61X all clusters example app
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
--target nxp-rw61x-freertos-all-clusters-wifi \
- --target nxp-rw61x-freertos-all-clusters-thread \
--target nxp-rw61x-freertos-all-clusters-wifi-ota-cmake \
build \
--copy-artifacts-to out/artifacts \
"
-
- name: Build RW61X thermostat example app
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
- --target nxp-rw61x-freertos-thermostat-wifi \
- --target nxp-rw61x-freertos-thermostat-thread \
--target nxp-rw61x-freertos-thermostat-thread-wifi \
build \
--copy-artifacts-to out/artifacts \
"
-
- name: Build RW61X laundry-washer example app
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
--target nxp-rw61x-freertos-laundry-washer-wifi \
- --target nxp-rw61x-freertos-laundry-washer-thread \
build \
--copy-artifacts-to out/artifacts \
"
+
+ - name: clean build
+ run: rm -rf ./out
+
- name: Uploading Size Reports
uses: ./.github/actions/upload-size-reports
if: ${{ !env.ACT }}
with:
- platform-name: RW61X
+ platform-name: NXP-FREERTOS
zephyr:
name: ZEPHYR
@@ -289,8 +249,15 @@ jobs:
uses: ./.github/actions/checkout-submodules-and-bootstrap
with:
platform: nxp
-
+ - name: Detect changed paths
+ uses: dorny/paths-filter@v3
+ id: changed_paths
+ with:
+ filters: |
+ nxp:
+ - '**/nxp/**'
- name: Build NXP Zephyr examples
+ if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
run: |
scripts/run_in_build_env.sh "\
./scripts/build/build_examples.py \
diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml
index 64b3d6bb7c..a1d7244ab8 100644
--- a/.github/workflows/examples-telink.yaml
+++ b/.github/workflows/examples-telink.yaml
@@ -61,6 +61,8 @@ jobs:
# run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 3ed7686a9378de6be1368c912f9a42f998bbfb18"
- name: Build example Telink (B92 retention) Air Quality Sensor App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-air-quality-sensor' build"
@@ -73,6 +75,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (W91) All Clusters App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
continue-on-error: true
run: |
./scripts/run_in_build_env.sh \
@@ -86,6 +90,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B92) All Clusters Minimal App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9528a-all-clusters-minimal' build"
@@ -98,6 +104,7 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B95) Bridge App
+ # Run test for master and all PRs
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9258a-bridge' build"
@@ -110,6 +117,7 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B92 retention) Contact Sensor App
+ # Run test for master and all PRs
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-contact-sensor' build"
@@ -122,6 +130,7 @@ jobs:
run: rm -rf ./out
- name: Build tools required for Factory Data
+ # Run test for master and all PRs
run: |
./scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform linux
./scripts/build/gn_gen.sh
@@ -132,6 +141,7 @@ jobs:
run: rm -rf ./out/telink*
- name: Build example Telink (W91) Lighting App with OTA, Factory Data
+ # Run test for master and all PRs
continue-on-error: true
run: |
./scripts/run_in_build_env.sh \
@@ -145,6 +155,7 @@ jobs:
run: rm -rf ./out/telink*
- name: Build example Telink (B91) Lighting App with OTA, RPC, Factory Data and 4Mb flash
+ # Run test for master and all PRs
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-light-ota-rpc-factory-data-4mb' build"
@@ -157,6 +168,7 @@ jobs:
run: rm -rf ./out/telink*
- name: Build example Telink (B92) Light Switch App with OTA, Shell, Factory Data
+ # Run test for master and all PRs
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9528a-light-switch-ota-shell-factory-data' build"
@@ -169,6 +181,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B92) Lock App with DFU
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9528a-lock-dfu' build"
@@ -181,6 +195,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B95) OTA Requestor App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9258a-ota-requestor' build"
@@ -193,6 +209,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B91 USB) Pump App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump-usb' build"
@@ -205,6 +223,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B91) Pump Controller App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump-controller' build"
@@ -217,6 +237,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B91) Shell App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-shell' build"
@@ -229,6 +251,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B92 retention) Smoke CO Alarm App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-smoke-co-alarm' build"
@@ -241,6 +265,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B91 Mars) Temperature Measurement App with OTA
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-temperature-measurement-mars-ota' build"
@@ -253,6 +279,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (B91) Thermostat App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
run: |
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-thermostat' build"
@@ -265,6 +293,8 @@ jobs:
run: rm -rf ./out
- name: Build example Telink (W91) Window Covering App
+ # Run test for master and s07641069 PRs
+ if: github.event.pull_request.number == null || github.event.pull_request.head.repo.full_name == 's07641069/connectedhomeip'
continue-on-error: true
run: |
./scripts/run_in_build_env.sh \
diff --git a/.github/workflows/qemu.yaml b/.github/workflows/qemu.yaml
index b3115f2ff3..783c46ef41 100644
--- a/.github/workflows/qemu.yaml
+++ b/.github/workflows/qemu.yaml
@@ -38,7 +38,7 @@ jobs:
BUILD_TYPE: esp32-qemu
runs-on: ubuntu-latest
- if: github.actor != 'restyled-io[bot]'
+ if: github.actor != 'restyled-io[bot]' && github.repository_owner == 'espressif'
container:
image: ghcr.io/project-chip/chip-build-esp32-qemu:81
diff --git a/.github/workflows/release_artifacts.yaml b/.github/workflows/release_artifacts.yaml
index 22cf6b335e..54997b6efa 100644
--- a/.github/workflows/release_artifacts.yaml
+++ b/.github/workflows/release_artifacts.yaml
@@ -64,7 +64,7 @@ jobs:
runs-on: ubuntu-latest
container:
- image: ghcr.io/project-chip/chip-build-efr32:81
+ image: ghcr.io/project-chip/chip-build-efr32:85
steps:
- name: Checkout
uses: actions/checkout@v4
diff --git a/.github/workflows/restyled.yml b/.github/workflows/restyled.yml
new file mode 100644
index 0000000000..9174483ecb
--- /dev/null
+++ b/.github/workflows/restyled.yml
@@ -0,0 +1,35 @@
+name: Restyled
+
+on:
+ pull_request:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ restyled:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - uses: restyled-io/actions/setup@v4
+ - id: restyler
+ uses: restyled-io/actions/run@v4
+ with:
+ fail-on-differences: true
+
+ - if: |
+ !cancelled() &&
+ steps.restyler.outputs.success == 'true' &&
+ github.event.pull_request.head.repo.full_name == github.repository
+ uses: peter-evans/create-pull-request@v6
+ with:
+ base: ${{ steps.restyler.outputs.restyled-base }}
+ branch: ${{ steps.restyler.outputs.restyled-head }}
+ title: ${{ steps.restyler.outputs.restyled-title }}
+ body: ${{ steps.restyler.outputs.restyled-body }}
+ labels: "restyled"
+ reviewers: ${{ github.event.pull_request.user.login }}
+ delete-branch: true
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
index a9953e69b0..5adf4f408e 100644
--- a/.github/workflows/stale.yaml
+++ b/.github/workflows/stale.yaml
@@ -16,27 +16,17 @@ jobs:
with:
stale-issue-message:
"This issue has been automatically marked as stale because
- it has not had recent activity. It will be closed if no
- further activity occurs. Remove stale label or comment or
- this will be closed in 30 days."
+ it has not had recent activity."
stale-pr-message:
"This pull request has been automatically marked as stale
- because it has not had recent activity. It will be closed
- if no further activity occurs. Remove stale label or
- comment or this will be closed in 10 days."
+ because it has not had recent activity."
close-issue-message:
"This stale issue has been automatically closed. Thank you
for your contributions."
close-pr-message:
"This stale pull request has been automatically closed.
Thank you for your contributions."
- days-before-issue-stale: 30
- days-before-issue-close: -1 # Don't close them for now
- days-before-pr-stale: 90
- days-before-pr-close: 10
- exempt-issue-labels:
- "security,blocked,cert blocker,build issue,Spec XML
- align,CI/CD improvements,memory"
- exempt-pr-labels:
- "security,blocked,cert blocker,build issue,Spec XML
- align,CI/CD improvements,memory"
+ days-before-issue-stale: 180
+ days-before-issue-close: -1 # Don't close stale issues
+ days-before-pr-stale: 180
+ days-before-pr-close: -1 # Don't close stale PRs
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index 04aa91020a..63957b64d8 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -111,6 +111,7 @@ jobs:
src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/bridged-device-basic-information.xml \
+ src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/chip-ota.xml \
src/app/zap-templates/zcl/data-model/chip/chip-types.xml \
src/app/zap-templates/zcl/data-model/chip/channel-cluster.xml \
@@ -199,6 +200,7 @@ jobs:
src/app/zap-templates/zcl/data-model/chip/wake-on-lan-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/washer-controls-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/water-heater-management-cluster.xml \
+ src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/wifi-network-diagnostics-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/wifi-network-management-cluster.xml \
@@ -209,6 +211,7 @@ jobs:
src/app/zap-templates/zcl/data-model/chip/sample-mei-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/electrical-energy-measurement-cluster.xml \
src/app/zap-templates/zcl/data-model/chip/electrical-power-measurement-cluster.xml \
+ src/app/zap-templates/zcl/data-model/chip/zone-management-cluster.xml \
"
- name: Build Apps
run: |
@@ -594,7 +597,7 @@ jobs:
"
- name: Run Tests
run: |
- scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/darwin-x64-all-clusters-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factoryreset --quiet --app-args "--discriminator 3840 --interface-id -1" --script-args "-t 3600 --disable-test ClusterObjectTests.TestTimedRequestTimeout"'
+ scripts/run_in_python_env.sh out/venv './scripts/tests/run_python_test.py --app out/darwin-x64-all-clusters-no-ble-no-wifi-tsan-clang-test/chip-all-clusters-app --factory-reset --quiet --app-args "--discriminator 3840 --interface-id -1" --script-args "-t 3600 --disable-test ClusterObjectTests.TestTimedRequestTimeout"'
- name: Uploading core files
uses: actions/upload-artifact@v4
if: ${{ failure() && !env.ACT }}
diff --git a/.gitmodules b/.gitmodules
index ed472c937c..824bd9954e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -213,17 +213,17 @@
[submodule "third_party/silabs/simplicity_sdk"]
path = third_party/silabs/simplicity_sdk
url = https://github.com/SiliconLabs/simplicity_sdk.git
- branch = v2024.6.1-0
+ branch = v2024.6.2
platforms = silabs
[submodule "third_party/silabs/wiseconnect-wifi-bt-sdk"]
path = third_party/silabs/wiseconnect-wifi-bt-sdk
url = https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk.git
- branch = 2.10.0
+ branch = 2.10.3
platforms = silabs
[submodule "third_party/silabs/wifi_sdk"]
path = third_party/silabs/wifi_sdk
url = https://github.com/SiliconLabs/wiseconnect.git
- branch = v3.3.2
+ branch = v3.3.3
platforms = silabs
[submodule "editline"]
path = third_party/editline/repo
@@ -329,6 +329,9 @@
path = third_party/infineon/psoc6/psoc6_sdk/libs/lwip-network-interface-integration
url = https://github.com/Infineon/lwip-network-interface-integration.git
platforms = infineon
+[submodule "third_party/lwip/repo"]
+ path = third_party/lwip/repo
+ url = https://github.com/lwip-tcpip/lwip.git
[submodule "third_party/abseil-cpp/src"]
path = third_party/abseil-cpp/src
url = https://github.com/abseil/abseil-cpp.git
@@ -340,7 +343,7 @@
[submodule "third_party/googletest"]
path = third_party/googletest
url = https://github.com/google/googletest
- platforms = linux,darwin
+ platforms = linux,android,darwin,tizen
[submodule "third_party/re2/src"]
path = third_party/re2/src
url = https://github.com/google/re2.git
diff --git a/.gn b/.gn
index f844fd20e9..07b5accb51 100644
--- a/.gn
+++ b/.gn
@@ -13,6 +13,7 @@
# limitations under the License.
import("//build_overrides/build.gni")
+import("//build_overrides/googletest.gni")
import("//build_overrides/pigweed.gni")
# The location of the build configuration file.
@@ -33,6 +34,11 @@ default_args = {
# GN target to use for the default Python build venv.
pw_build_PYTHON_BUILD_VENV = "//:matter_build_venv"
+ # Use the GoogleTest backend for unit tests running on host.
+ pw_unit_test_BACKEND = "$dir_pw_unit_test:googletest"
+ pw_unit_test_MAIN = "$dir_pigweed/third_party/googletest:gmock_main"
+ dir_pw_third_party_googletest = "$dir_googletest"
+
# Required for pw_unit_test
pw_sys_io_BACKEND = "$dir_pw_sys_io_stdio"
pw_assert_BACKEND = "$dir_pw_assert_log"
diff --git a/.pullapprove.yml b/.pullapprove.yml
index 83d7b70b34..81267526ee 100644
--- a/.pullapprove.yml
+++ b/.pullapprove.yml
@@ -8,257 +8,250 @@ github_api_version: "shadow-cat-preview"
############################################################
overrides:
- - if: "'hotfix' in labels"
- status: success
- explanation: "Hotfix label added, bypassing reviews"
+ - if: "'hotfix' in labels"
+ status: success
+ explanation: "Hotfix label added, bypassing reviews"
- ############################################################
- # Draft PRs
- ############################################################
- - if: "draft"
- status: pending
- explanation: "PR is draft, pending review"
+ ############################################################
+ # Draft PRs
+ ############################################################
+ - if: "draft"
+ status: pending
+ explanation: "PR is draft, pending review"
- ############################################################
- # License Checks
- ############################################################
- - if: "'*license/cla*' not in statuses.successful"
- status: pending
- explanation: "CLA must be agreed to by all contributors"
+ ############################################################
+ # License Checks
+ ############################################################
+ - if: "'*license/cla*' not in statuses.successful"
+ status: pending
+ explanation: "CLA must be agreed to by all contributors"
- ############################################################
- # Conditions to Skip Review
- ############################################################
- - if: "base.ref != 'master'"
- status: success
- explanation: "Review not required unless merging to master"
+ ############################################################
+ # Conditions to Skip Review
+ ############################################################
+ - if: "base.ref != 'master'"
+ status: success
+ explanation: "Review not required unless merging to master"
- ############################################################
- # Required status checks
- ############################################################
- - if: "'*restyle*' not in statuses.successful"
- status: failure
- explanation: "Style must be inline before reviewing can be complete"
+ ############################################################
+ # Require Issues
+ ############################################################
+ # disabling until we have PRs up to date
+ # - if: "'*issue*' not in statuses.successful"
+ # status: failure
+ # explanation: "An issue is required for all PRs"
- ############################################################
- # Require Issues
- ############################################################
- # disabling until we have PRs up to date
- # - if: "'*issue*' not in statuses.successful"
- # status: failure
- # explanation: "An issue is required for all PRs"
-
- ############################################################
- # Fast tracking
- ############################################################
- - if: "'fast track' in labels"
- status: success
- explanation: "PR has been fast tracked, bypassing reviews"
+ ############################################################
+ # Fast tracking
+ ############################################################
+ - if: "'fast track' in labels"
+ status: success
+ explanation: "PR has been fast tracked, bypassing reviews"
############################################################
# Notifications
############################################################
notifications:
- ############################################################
- # New contributors
- ############################################################
- - when: pull_request.opened
- if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
- comment: |
- Hey @{{ author }}, thanks for the PR! The review will start once
- the tests and CI checks have passed. If they don't, please review
- the logs and try to fix the issues (ask for help if you can't
- figure it out). A reviewer will be assigned once the tests are
- passing and they'll walk you through getting the PR finished
- and merged.
+ ############################################################
+ # New contributors
+ ############################################################
+ - when: pull_request.opened
+ if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
+ comment: |
+ Hey @{{ author }}, thanks for the PR! The review will start once
+ the tests and CI checks have passed. If they don't, please review
+ the logs and try to fix the issues (ask for help if you can't
+ figure it out). A reviewer will be assigned once the tests are
+ passing and they'll walk you through getting the PR finished
+ and merged.
groups:
- ############################################################
- # Shared Reviewer Groups
- ############################################################
- shared-reviewers-amazon:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-amazon]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-apple:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-apple]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-bosch:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-bosch]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-comcast:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-comcast]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-dyson:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-dyson]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-espressif:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-espressif]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-google:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-google]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-grundfos:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-grundfos]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-irobot:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-irobot]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-lg:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-lg]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-logitech:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-logitech]
- reviews:
- request: 0 # Requested to be only on demand
- shared-reviewers-nordic:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-nordic]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-nxp:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-nxp]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-samsung:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-samsung]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-eve:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-eve]
- reviews:
- request: 0 # Do not auto-add
- # shared-reviewers-signify disabled for now, because the reviewers-signify
- # team is empty and pullapprove seems to mis-handle that badly and treats
- # _all_ reviewers as being in this group.
- #
- # See https://github.com/dropseed/pullapprove/issues/71
- #
- # shared-reviewers-signify:
- # type: optional
- # conditions:
- # - files.include('*')
- # reviewers:
- # teams: [reviewers-signify]
- # reviews:
- # request: 0 # Do not auto-add
- shared-reviewers-silabs:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-silabs]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-somfy:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-somfy]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-tcl:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-tcl]
- reviews:
- request: 0 # Do not auto-add
- shared-reviewers-qorvo:
- type: optional
- conditions:
- - files.include('*')
- reviewers:
- teams: [reviewers-qorvo]
- reviews:
- request: 0 # Do not auto-add
+ ############################################################
+ # Shared Reviewer Groups
+ ############################################################
+ shared-reviewers-amazon:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-amazon]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-apple:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-apple]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-bosch:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-bosch]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-comcast:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-comcast]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-dyson:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-dyson]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-espressif:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-espressif]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-google:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-google]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-grundfos:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-grundfos]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-irobot:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-irobot]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-lg:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-lg]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-logitech:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-logitech]
+ reviews:
+ request: 0 # Requested to be only on demand
+ shared-reviewers-nordic:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-nordic]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-nxp:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-nxp]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-samsung:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-samsung]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-eve:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-eve]
+ reviews:
+ request: 0 # Do not auto-add
+ # shared-reviewers-signify disabled for now, because the reviewers-signify
+ # team is empty and pullapprove seems to mis-handle that badly and treats
+ # _all_ reviewers as being in this group.
+ #
+ # See https://github.com/dropseed/pullapprove/issues/71
+ #
+ # shared-reviewers-signify:
+ # type: optional
+ # conditions:
+ # - files.include('*')
+ # reviewers:
+ # teams: [reviewers-signify]
+ # reviews:
+ # request: 0 # Do not auto-add
+ shared-reviewers-silabs:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-silabs]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-somfy:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-somfy]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-tcl:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-tcl]
+ reviews:
+ request: 0 # Do not auto-add
+ shared-reviewers-qorvo:
+ type: optional
+ conditions:
+ - files.include('*')
+ reviewers:
+ teams: [reviewers-qorvo]
+ reviews:
+ request: 0 # Do not auto-add
- ############################################################
- # Base Required Reviewers
- ############################################################
- required-reviewers:
- description: >
- [Required
- Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
- This is the main group of required reviews for general pull
- requests.
- type: required
- requirements:
- - len(groups.approved.include('shared-reviewers-*')) >= 2
- reviews:
- required: 0
- labels:
- approved: "review - approved"
- pending: "review - pending"
- rejected: "review - changed requested"
+ ############################################################
+ # Base Required Reviewers
+ ############################################################
+ required-reviewers:
+ description: >
+ [Required
+ Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
+ This is the main group of required reviews for general pull
+ requests.
+ type: required
+ requirements:
+ - len(groups.approved.include('shared-reviewers-*')) >= 2
+ reviews:
+ required: 0
+ labels:
+ approved: "review - approved"
+ pending: "review - pending"
+ rejected: "review - changed requested"
diff --git a/.spellcheck.yml b/.spellcheck.yml
index 7313f64ebd..757034586b 100644
--- a/.spellcheck.yml
+++ b/.spellcheck.yml
@@ -65,7 +65,7 @@ matrix:
# converts markdown to HTML
- pyspelling.filters.markdown:
sources:
- - '**/*.md|!third_party/**|!examples/common/**/repo/**|!docs/ERROR_CODES.md|!docs/clusters.md|!docs/testing/yaml_schema.md|!docs/testing/yaml_pseudocluster.md | !docs/testing/python.md | !docs/testing/ChipDeviceCtrlAPI.md'
+ - '**/*.md|!third_party/**|!examples/common/**/repo/**|!docs/ERROR_CODES.md|!docs/clusters.md|!docs/testing/yaml_schema.md|!docs/testing/yaml_pseudocluster.md|!docs/testing/python.md|!docs/testing/ChipDeviceCtrlAPI.md|!docs/issue_triage.md'
aspell:
ignore-case: true
camel-case: true
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 898defc9c6..fc821c76eb 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -419,6 +419,14 @@
"cwd": "${workspaceFolder}"
},
+ {
+ "name": "Fabric Sync (Linux)",
+ "type": "lldb",
+ "request": "launch",
+ "program": "${workspaceFolder}/out/debug/standalone/fabric-sync",
+ "cwd": "${workspaceFolder}"
+ },
+
{
"name": "OTA Requestor App (Linux)",
"type": "lldb",
diff --git a/build/toolchain/pw_fuzzer/BUILD.gn b/build/toolchain/pw_fuzzer/BUILD.gn
index 385e57cc81..468a615448 100644
--- a/build/toolchain/pw_fuzzer/BUILD.gn
+++ b/build/toolchain/pw_fuzzer/BUILD.gn
@@ -13,6 +13,7 @@
# limitations under the License.
import("//build_overrides/build.gni")
+import("//build_overrides/googletest.gni")
import("//build_overrides/pigweed.gni")
import("$dir_pigweed/targets/host/target_toolchains.gni")
@@ -61,7 +62,7 @@ gcc_toolchain("chip_pw_fuzztest") {
dir_pw_third_party_abseil_cpp = "//third_party/abseil-cpp/src"
dir_pw_third_party_fuzztest = "//third_party/fuzztest"
- dir_pw_third_party_googletest = "//third_party/googletest"
+ dir_pw_third_party_googletest = "$dir_googletest"
# TODO: Seems that re2 support within FuzzTest was deprecated, keeping it defined is triggering warning
# Remove if re2 is indeed not needed
diff --git a/build_overrides/googletest.gni b/build_overrides/googletest.gni
new file mode 100644
index 0000000000..c06354b399
--- /dev/null
+++ b/build_overrides/googletest.gni
@@ -0,0 +1,18 @@
+# Copyright (c) 2024 Project CHIP Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+declare_args() {
+ # Location of the GoogleTest repository.
+ dir_googletest = "//third_party/googletest"
+}
diff --git a/config/ios/args.gni b/config/darwin/args.gni
similarity index 82%
rename from config/ios/args.gni
rename to config/darwin/args.gni
index b4426a61a4..0e97318840 100644
--- a/config/ios/args.gni
+++ b/config/darwin/args.gni
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Project CHIP Authors
+# Copyright (c) 2024 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,9 +14,9 @@
import("//build_overrides/chip.gni")
-chip_system_config_clock = "gettimeofday"
chip_device_platform = "darwin"
-chip_project_config_include_dirs = [ "${chip_root}/config/ios" ]
+chip_project_config_include = ""
+chip_system_project_config_include = ""
pw_build_PIP_CONSTRAINTS = [ "${chip_root}/scripts/setup/constraints.txt" ]
diff --git a/config/esp32/components/chip/CMakeLists.txt b/config/esp32/components/chip/CMakeLists.txt
index f7685cf760..fde62765dd 100644
--- a/config/esp32/components/chip/CMakeLists.txt
+++ b/config/esp32/components/chip/CMakeLists.txt
@@ -143,9 +143,6 @@ endif()
if(CONFIG_ENABLE_ICD_SERVER)
chip_gn_arg_append("chip_enable_icd_server" "true")
- if(CONFIG_ICD_ENFORCE_SIT_SLOW_POLL_LIMIT)
- chip_gn_arg_append("icd_enforce_sit_slow_poll_limit" "true")
- endif()
if(CONFIG_ICD_REPORT_ON_ACTIVE_MODE)
chip_gn_arg_append("chip_icd_report_on_active_mode" "true")
endif()
diff --git a/config/esp32/components/chip/Kconfig b/config/esp32/components/chip/Kconfig
index 5c36284f07..c61ac770a6 100644
--- a/config/esp32/components/chip/Kconfig
+++ b/config/esp32/components/chip/Kconfig
@@ -32,7 +32,7 @@ menu "CHIP Core"
default 8
help
The maximum number of simultaneously active CHIP exchange contexts.
-
+
An exchange context object is used to track the state of an ongoing CHIP message
exchange (conversation) with a peer, e.g. a cloud service, a mobile application, or
another device.
@@ -410,13 +410,6 @@ menu "CHIP Device Layer"
help
Enables or Disables ICD server
- config ICD_ENFORCE_SIT_SLOW_POLL_LIMIT
- bool "Enforce SIT Slow Polling Max value to 15 seconds"
- depends on ENABLE_ICD_SERVER
- default n
- help
- Set to true to enforce SIT Slow Polling Max value to 15seconds
-
config ICD_REPORT_ON_ACTIVE_MODE
bool "Emit a report on entering active mode"
depends on ENABLE_ICD_SERVER
diff --git a/config/esp32/components/chip/idf_component.yml b/config/esp32/components/chip/idf_component.yml
index aeffec708d..2e7415827f 100644
--- a/config/esp32/components/chip/idf_component.yml
+++ b/config/esp32/components/chip/idf_component.yml
@@ -7,7 +7,7 @@ dependencies:
- if: "target != esp32h2"
espressif/esp_secure_cert_mgr:
- version: "^2.3.0"
+ version: "^2.5.0"
rules:
- if: "idf_version >=4.3"
@@ -26,6 +26,14 @@ dependencies:
- if: "idf_version >=5.0"
- if: "target != esp32h2"
+ # This matches the dependency of esp_insights
+ espressif/esp_diag_data_store:
+ version: "1.0.1"
+ require: public
+ rules:
+ - if: "idf_version >=5.0"
+ - if: "target != esp32h2"
+
espressif/esp_rcp_update:
version: "1.2.0"
rules:
diff --git a/config/ios/CHIPProjectConfig.h b/config/ios/CHIPProjectConfig.h
deleted file mode 100644
index dfa35f7cfd..0000000000
--- a/config/ios/CHIPProjectConfig.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Copyright (c) 2020-2022 Project CHIP Authors
- * Copyright (c) 2016-2017 Nest Labs, Inc.
- * Copyright (c) 2019-2020 Google LLC.
- * All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file
- * Project-specific configuration file for iOS builds.
- *
- */
-#ifndef CHIPPROJECTCONFIG_H
-#define CHIPPROJECTCONFIG_H
-
-// Enable UDP listening on demand in the CHIPDeviceController
-#define CHIP_CONFIG_DEVICE_CONTROLLER_DEMAND_ENABLE_UDP 1
-
-#define INET_CONFIG_OVERRIDE_SYSTEM_TCP_USER_TIMEOUT 0
-
-// Uncomment this for a large Tunnel MTU.
-//#define CHIP_CONFIG_TUNNEL_INTERFACE_MTU (9000)
-
-#define CHIP_SYSTEM_CONFIG_PACKETBUFFER_POOL_SIZE 0
-
-#define CHIP_CONFIG_DATA_MANAGEMENT_CLIENT_EXPERIMENTAL 1
-
-#define CHIP_CONFIG_MAX_SOFTWARE_VERSION_LENGTH 128
-
-#ifndef CHIP_CONFIG_KVS_PATH
-#define CHIP_CONFIG_KVS_PATH "chip.store"
-#endif
-
-// The session pool size limits how many subscriptions we can have live at
-// once. Home supports up to 1000 accessories, and we subscribe to all of them,
-// so we need to make sure the pool is big enough for that.
-#define CHIP_CONFIG_SECURE_SESSION_POOL_SIZE 1000
-
-#endif /* CHIPPROJECTCONFIG_H */
diff --git a/config/nrfconnect/chip-module/CMakeLists.txt b/config/nrfconnect/chip-module/CMakeLists.txt
index 3896ed6be7..b3180fdc1b 100644
--- a/config/nrfconnect/chip-module/CMakeLists.txt
+++ b/config/nrfconnect/chip-module/CMakeLists.txt
@@ -156,7 +156,6 @@ if (CONFIG_CHIP_ENABLE_ICD_SUPPORT)
matter_add_gn_arg_bool ("chip_enable_icd_checkin" CONFIG_CHIP_ICD_CHECK_IN_SUPPORT)
matter_add_gn_arg_bool ("chip_enable_icd_user_active_mode_trigger" CONFIG_CHIP_ICD_UAT_SUPPORT)
matter_add_gn_arg_bool ("chip_enable_icd_dsls" CONFIG_CHIP_ICD_DSLS_SUPPORT)
- matter_add_gn_arg_bool ("icd_enforce_sit_slow_poll_limit" TRUE)
endif()
if (CONFIG_CHIP_FACTORY_DATA OR CONFIG_CHIP_FACTORY_DATA_CUSTOM_BACKEND)
diff --git a/config/nxp/chip-module/Kconfig.defaults b/config/nxp/chip-module/Kconfig.defaults
index 3d0fcf08d7..cd2dd74b91 100644
--- a/config/nxp/chip-module/Kconfig.defaults
+++ b/config/nxp/chip-module/Kconfig.defaults
@@ -336,6 +336,9 @@ choice NXP_ENET_DRIVER
default ETH_NXP_ENET
endchoice
+config NET_SOCKETS_POLL_MAX
+ default 7
+
endif
# Configure MBEDTLS lib
diff --git a/config/nxp/chip-module/Kconfig.features b/config/nxp/chip-module/Kconfig.features
index 9c388a20f9..50f72eb016 100644
--- a/config/nxp/chip-module/Kconfig.features
+++ b/config/nxp/chip-module/Kconfig.features
@@ -95,6 +95,8 @@ config CHIP_ETHERNET
select NET_TCP
select DNS_RESOLVER
select MDNS_RESOLVER
+ select MDNS_RESPONDER
+ select DNS_SD
select MBEDTLS_PKCS5_C
select MBEDTLS_HKDF_C
select MBEDTLS_ECDSA_C
diff --git a/config/telink/chip-module/Kconfig.defaults b/config/telink/chip-module/Kconfig.defaults
index ed8172b182..835b14c181 100644
--- a/config/telink/chip-module/Kconfig.defaults
+++ b/config/telink/chip-module/Kconfig.defaults
@@ -137,7 +137,7 @@ config BT_BUF_ACL_TX_SIZE
default 251
config BT_RX_STACK_SIZE
- default 810 if BT_B9X
+ default 1352 if BT_B9X
default 2048 if BT_W91
config BT_HCI_TX_STACK_SIZE
diff --git a/data_model/1.4/clusters/DemandResponseLoadControl.xml b/data_model/1.4/clusters/DemandResponseLoadControl.xml
deleted file mode 100644
index 1acd1ea26c..0000000000
--- a/data_model/1.4/clusters/DemandResponseLoadControl.xml
+++ /dev/null
@@ -1,453 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/clusters/DeviceEnergyManagement.xml b/data_model/1.4/clusters/DeviceEnergyManagement.xml
index 776a06f20b..3b95a7b8d4 100644
--- a/data_model/1.4/clusters/DeviceEnergyManagement.xml
+++ b/data_model/1.4/clusters/DeviceEnergyManagement.xml
@@ -65,9 +65,7 @@ Davis, CA 95616, USA
-
-
-
+
@@ -566,7 +564,6 @@ Davis, CA 95616, USA
-
@@ -580,7 +577,6 @@ Davis, CA 95616, USA
-
@@ -604,7 +600,6 @@ Davis, CA 95616, USA
-
@@ -619,7 +614,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/1.4/clusters/DiagnosticsGeneral.xml b/data_model/1.4/clusters/DiagnosticsGeneral.xml
index 44b891fbcd..1266705ba6 100644
--- a/data_model/1.4/clusters/DiagnosticsGeneral.xml
+++ b/data_model/1.4/clusters/DiagnosticsGeneral.xml
@@ -263,7 +263,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/1.4/clusters/DiagnosticsThread.xml b/data_model/1.4/clusters/DiagnosticsThread.xml
index a55412d7fd..a712cebc8f 100644
--- a/data_model/1.4/clusters/DiagnosticsThread.xml
+++ b/data_model/1.4/clusters/DiagnosticsThread.xml
@@ -669,12 +669,18 @@ Davis, CA 95616, USA
-
+
+
+
+
-
+
+
+
+
diff --git a/data_model/1.4/clusters/DoorLock.xml b/data_model/1.4/clusters/DoorLock.xml
index 46d659da94..932532c768 100644
--- a/data_model/1.4/clusters/DoorLock.xml
+++ b/data_model/1.4/clusters/DoorLock.xml
@@ -66,7 +66,7 @@ Davis, CA 95616, USA
-
@@ -600,9 +600,6 @@ Davis, CA 95616, USA
-
-
-
diff --git a/data_model/1.4/clusters/bridge-clusters-EcosystemInformationCluster.xml b/data_model/1.4/clusters/EcosystemInformationCluster.xml
similarity index 100%
rename from data_model/1.4/clusters/bridge-clusters-EcosystemInformationCluster.xml
rename to data_model/1.4/clusters/EcosystemInformationCluster.xml
diff --git a/data_model/1.4/clusters/EnergyCalendar.xml b/data_model/1.4/clusters/EnergyCalendar.xml
deleted file mode 100644
index 2ba9320361..0000000000
--- a/data_model/1.4/clusters/EnergyCalendar.xml
+++ /dev/null
@@ -1,287 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/clusters/EnergyEVSE.xml b/data_model/1.4/clusters/EnergyEVSE.xml
index a4c865c309..352ac7e24a 100644
--- a/data_model/1.4/clusters/EnergyEVSE.xml
+++ b/data_model/1.4/clusters/EnergyEVSE.xml
@@ -69,10 +69,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -240,7 +237,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/1.4/clusters/Humidistat.xml b/data_model/1.4/clusters/Humidistat.xml
deleted file mode 100644
index 1af5469848..0000000000
--- a/data_model/1.4/clusters/Humidistat.xml
+++ /dev/null
@@ -1,283 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/clusters/ICDManagement.xml b/data_model/1.4/clusters/ICDManagement.xml
index b6f76f48e2..d9cb7397da 100644
--- a/data_model/1.4/clusters/ICDManagement.xml
+++ b/data_model/1.4/clusters/ICDManagement.xml
@@ -70,7 +70,6 @@ Davis, CA 95616, USA
-
@@ -79,7 +78,6 @@ Davis, CA 95616, USA
-
@@ -87,18 +85,12 @@ Davis, CA 95616, USA
-
-
-
-
+
-
-
-
-
-
-
+
+
+
@@ -227,12 +219,9 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
+
+
@@ -242,12 +231,9 @@ Davis, CA 95616, USA
-
-
-
-
-
-
+
+
+
diff --git a/data_model/1.4/clusters/LevelControl.xml b/data_model/1.4/clusters/LevelControl.xml
index 404b1250e9..1a034d5802 100644
--- a/data_model/1.4/clusters/LevelControl.xml
+++ b/data_model/1.4/clusters/LevelControl.xml
@@ -165,7 +165,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/1.4/clusters/Mode_DeviceEnergyManagement.xml b/data_model/1.4/clusters/Mode_DeviceEnergyManagement.xml
index 48cf6df495..9fca7f31ca 100644
--- a/data_model/1.4/clusters/Mode_DeviceEnergyManagement.xml
+++ b/data_model/1.4/clusters/Mode_DeviceEnergyManagement.xml
@@ -63,9 +63,7 @@ Davis, CA 95616, USA
-
-
-
+
diff --git a/data_model/1.4/clusters/Mode_Dishwasher.xml b/data_model/1.4/clusters/Mode_Dishwasher.xml
index 1c3a99b9e3..ca14d02672 100644
--- a/data_model/1.4/clusters/Mode_Dishwasher.xml
+++ b/data_model/1.4/clusters/Mode_Dishwasher.xml
@@ -57,10 +57,11 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
diff --git a/data_model/1.4/clusters/Mode_EVSE.xml b/data_model/1.4/clusters/Mode_EVSE.xml
index 025e9de988..863a2b7d64 100644
--- a/data_model/1.4/clusters/Mode_EVSE.xml
+++ b/data_model/1.4/clusters/Mode_EVSE.xml
@@ -60,7 +60,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/1.4/clusters/Mode_LaundryWasher.xml b/data_model/1.4/clusters/Mode_LaundryWasher.xml
index b5f557a4b4..a13253304d 100644
--- a/data_model/1.4/clusters/Mode_LaundryWasher.xml
+++ b/data_model/1.4/clusters/Mode_LaundryWasher.xml
@@ -57,10 +57,11 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
diff --git a/data_model/1.4/clusters/Mode_MicrowaveOven.xml b/data_model/1.4/clusters/Mode_MicrowaveOven.xml
index 24d682feca..371b294849 100644
--- a/data_model/1.4/clusters/Mode_MicrowaveOven.xml
+++ b/data_model/1.4/clusters/Mode_MicrowaveOven.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
diff --git a/data_model/1.4/clusters/Mode_Oven.xml b/data_model/1.4/clusters/Mode_Oven.xml
index a3e3323fe9..071f70d277 100644
--- a/data_model/1.4/clusters/Mode_Oven.xml
+++ b/data_model/1.4/clusters/Mode_Oven.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
diff --git a/data_model/1.4/clusters/Mode_Refrigerator.xml b/data_model/1.4/clusters/Mode_Refrigerator.xml
index 2728ac0f42..692740e090 100644
--- a/data_model/1.4/clusters/Mode_Refrigerator.xml
+++ b/data_model/1.4/clusters/Mode_Refrigerator.xml
@@ -57,10 +57,11 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
diff --git a/data_model/1.4/clusters/OccupancySensing.xml b/data_model/1.4/clusters/OccupancySensing.xml
index 7ca0d3631d..7400dde084 100644
--- a/data_model/1.4/clusters/OccupancySensing.xml
+++ b/data_model/1.4/clusters/OccupancySensing.xml
@@ -173,7 +173,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/1.4/clusters/OperationalState.xml b/data_model/1.4/clusters/OperationalState.xml
index 354efa2400..d02635cf65 100644
--- a/data_model/1.4/clusters/OperationalState.xml
+++ b/data_model/1.4/clusters/OperationalState.xml
@@ -203,10 +203,7 @@ Davis, CA 95616, USA
-
-
-
-
+
diff --git a/data_model/1.4/clusters/OperationalState_Oven.xml b/data_model/1.4/clusters/OperationalState_Oven.xml
index 710dea9806..e743fbf1d7 100644
--- a/data_model/1.4/clusters/OperationalState_Oven.xml
+++ b/data_model/1.4/clusters/OperationalState_Oven.xml
@@ -57,9 +57,10 @@ Davis, CA 95616, USA
:xrefstyle: basic
-->
-
+
+
diff --git a/data_model/1.4/clusters/OperationalState_RVC.xml b/data_model/1.4/clusters/OperationalState_RVC.xml
index 9b83bc4dfd..fb9fea9d5d 100644
--- a/data_model/1.4/clusters/OperationalState_RVC.xml
+++ b/data_model/1.4/clusters/OperationalState_RVC.xml
@@ -117,10 +117,7 @@ Davis, CA 95616, USA
-
-
-
-
+
\ No newline at end of file
diff --git a/data_model/1.4/clusters/PumpConfigurationControl.xml b/data_model/1.4/clusters/PumpConfigurationControl.xml
index 9b7e4ab56d..2be5a44371 100644
--- a/data_model/1.4/clusters/PumpConfigurationControl.xml
+++ b/data_model/1.4/clusters/PumpConfigurationControl.xml
@@ -373,11 +373,8 @@ Davis, CA 95616, USA
-
-
-
+
-
diff --git a/data_model/1.4/clusters/Scenes.xml b/data_model/1.4/clusters/Scenes.xml
index 1479d3ffd7..3de80abbc5 100644
--- a/data_model/1.4/clusters/Scenes.xml
+++ b/data_model/1.4/clusters/Scenes.xml
@@ -373,14 +373,16 @@ Davis, CA 95616, USA
-
+
+
-
+
+
diff --git a/data_model/1.4/clusters/ThermostatUserInterfaceConfiguration.xml b/data_model/1.4/clusters/ThermostatUserInterfaceConfiguration.xml
index d6a5224828..8b33ccedbd 100644
--- a/data_model/1.4/clusters/ThermostatUserInterfaceConfiguration.xml
+++ b/data_model/1.4/clusters/ThermostatUserInterfaceConfiguration.xml
@@ -106,17 +106,14 @@ Davis, CA 95616, USA
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/clusters/WaterHeaterManagement.xml b/data_model/1.4/clusters/WaterHeaterManagement.xml
index 96dcc2b112..49cdf1eeb2 100644
--- a/data_model/1.4/clusters/WaterHeaterManagement.xml
+++ b/data_model/1.4/clusters/WaterHeaterManagement.xml
@@ -168,7 +168,6 @@ Davis, CA 95616, USA
-
@@ -182,7 +181,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/1.4/clusters/cluster_ids.json b/data_model/1.4/clusters/cluster_ids.json
index 9de2f243b3..687bbc3229 100644
--- a/data_model/1.4/clusters/cluster_ids.json
+++ b/data_model/1.4/clusters/cluster_ids.json
@@ -64,11 +64,9 @@
"144": "Electrical Power Measurement",
"145": "Electrical Energy Measurement",
"148": "Water Heater Management",
- "150": "Demand Response Load Control",
"151": "Messages",
"152": "Device Energy Management",
"153": "Energy EVSE",
- "154": "Energy Calendar",
"155": "Energy Preference",
"156": "Power Topology",
"157": "Energy EVSE Mode",
@@ -81,7 +79,6 @@
"513": "Thermostat",
"514": "Fan Control",
"516": "Thermostat User Interface Configuration",
- "517": "Humidistat",
"768": "Color Control",
"769": "Ballast Configuration",
"1024": "Illuminance Measurement",
diff --git a/data_model/1.4/device_types/DeviceEnergyManagement.xml b/data_model/1.4/device_types/DeviceEnergyManagement.xml
index 86efccc02f..0a90a21edb 100644
--- a/data_model/1.4/device_types/DeviceEnergyManagement.xml
+++ b/data_model/1.4/device_types/DeviceEnergyManagement.xml
@@ -63,10 +63,7 @@ Davis, CA 95616, USA
-
-
-
-
+
@@ -77,7 +74,6 @@ Davis, CA 95616, USA
-
diff --git a/data_model/1.4/device_types/EnergyTariff.xml b/data_model/1.4/device_types/EnergyTariff.xml
deleted file mode 100644
index 887bfa420d..0000000000
--- a/data_model/1.4/device_types/EnergyTariff.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/device_types/EnergyTariffCalendar.xml b/data_model/1.4/device_types/EnergyTariffCalendar.xml
deleted file mode 100644
index 70d74b7239..0000000000
--- a/data_model/1.4/device_types/EnergyTariffCalendar.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/device_types/HeatPump.xml b/data_model/1.4/device_types/HeatPump.xml
index 61f556c6ed..012060e034 100644
--- a/data_model/1.4/device_types/HeatPump.xml
+++ b/data_model/1.4/device_types/HeatPump.xml
@@ -65,7 +65,7 @@ Davis, CA 95616, USA
-
+
diff --git a/data_model/1.4/device_types/HumidifierDehumidifier.xml b/data_model/1.4/device_types/HumidifierDehumidifier.xml
deleted file mode 100644
index 973919635f..0000000000
--- a/data_model/1.4/device_types/HumidifierDehumidifier.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/data_model/1.4/device_types/RootNodeDeviceType.xml b/data_model/1.4/device_types/RootNodeDeviceType.xml
index 13473e44ca..99ce8fc319 100644
--- a/data_model/1.4/device_types/RootNodeDeviceType.xml
+++ b/data_model/1.4/device_types/RootNodeDeviceType.xml
@@ -160,16 +160,16 @@ Davis, CA 95616, USA
-
+
+
+
+
-
-
-
-
-
-
+
+
+
diff --git a/data_model/1.4/spec_sha b/data_model/1.4/spec_sha
index 094141d3c0..b48b447d73 100644
--- a/data_model/1.4/spec_sha
+++ b/data_model/1.4/spec_sha
@@ -1 +1 @@
-2760ea4338a4b612ac025bfa5677e6918041c1d4
+3d8fc9ae05045a53fdaffd7e3593f92a48b10e30
diff --git a/docs/README.md b/docs/README.md
index e5aad317e6..e96ab29f04 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -15,6 +15,11 @@
[Visual Studio Code](https://code.visualstudio.com/) can be found in
[the development guide](./VSCODE_DEVELOPMENT.md)
+## Issue triage
+
+Project issues are triaged and maintained according to the
+[issue triage](./issue_triage.md) guide.
+
## Platform Guides
- Various guides are available [here](./guides/README.md) that cover platform
diff --git a/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md b/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md
index e2460ff5a0..a19336a593 100644
--- a/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md
+++ b/docs/cluster_and_device_type_dev/cluster_and_device_type_dev.md
@@ -1,4 +1,4 @@
-# New Clusters & Device Types
+# Implementing New Clusters & Device Types
The goal of new cluster and device type development is to
diff --git a/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md b/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md
index 90d82c6031..3e3704699d 100644
--- a/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md
+++ b/docs/cluster_and_device_type_dev/how_to_add_new_dts_and_clusters.md
@@ -1,4 +1,4 @@
-# How to Add New Device Types & Clusters
+# Adding new clusters and device types to the codegen
This document outlines the process needed to add a new Matter device type and
related clusters. Obviously, the steps below assume that the related Matter
diff --git a/docs/cluster_and_device_type_dev/index.md b/docs/cluster_and_device_type_dev/index.md
index cf43d02651..0ec65df347 100644
--- a/docs/cluster_and_device_type_dev/index.md
+++ b/docs/cluster_and_device_type_dev/index.md
@@ -13,5 +13,5 @@ types in the SDK.
```
- [Cluster and device type development](./cluster_and_device_type_dev.md)
-- [How To Add New Device Types & Clusters](how_to_add_new_dts_and_clusters.md)
+- [How To Add New Device Types & Clusters](./how_to_add_new_dts_and_clusters.md)
- [Cluster Server design](./unit_testing_clusters.md)
diff --git a/docs/guides/repl/Matter_Access_Control.ipynb b/docs/development_controllers/chip-repl/Matter_Access_Control.ipynb
similarity index 100%
rename from docs/guides/repl/Matter_Access_Control.ipynb
rename to docs/development_controllers/chip-repl/Matter_Access_Control.ipynb
diff --git a/docs/guides/repl/Matter_Basic_Interactions.ipynb b/docs/development_controllers/chip-repl/Matter_Basic_Interactions.ipynb
similarity index 100%
rename from docs/guides/repl/Matter_Basic_Interactions.ipynb
rename to docs/development_controllers/chip-repl/Matter_Basic_Interactions.ipynb
diff --git a/docs/guides/repl/Matter_Multi_Fabric_Commissioning.ipynb b/docs/development_controllers/chip-repl/Matter_Multi_Fabric_Commissioning.ipynb
similarity index 100%
rename from docs/guides/repl/Matter_Multi_Fabric_Commissioning.ipynb
rename to docs/development_controllers/chip-repl/Matter_Multi_Fabric_Commissioning.ipynb
diff --git a/docs/guides/repl/Matter_REPL_Intro.ipynb b/docs/development_controllers/chip-repl/Matter_REPL_Intro.ipynb
similarity index 100%
rename from docs/guides/repl/Matter_REPL_Intro.ipynb
rename to docs/development_controllers/chip-repl/Matter_REPL_Intro.ipynb
diff --git a/docs/development_controllers/chip-repl/index.md b/docs/development_controllers/chip-repl/index.md
new file mode 100644
index 0000000000..b17962ab66
--- /dev/null
+++ b/docs/development_controllers/chip-repl/index.md
@@ -0,0 +1,15 @@
+# chip-repl
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+- [Matter REPL](./matter-repl.md)
+- [Intro](./Matter_REPL_Intro.ipynb)
+- [Access Control](./Matter_Access_Control.ipynb)
+- [Basic interactions](./Matter_Basic_Interactions.ipynb)
+- [Fabric Commissioning](./Matter_Multi_Fabric_Commissioning.ipynb)
diff --git a/docs/guides/matter-repl.md b/docs/development_controllers/chip-repl/matter-repl.md
similarity index 97%
rename from docs/guides/matter-repl.md
rename to docs/development_controllers/chip-repl/matter-repl.md
index e7ebba5b3e..9bb3e60916 100644
--- a/docs/guides/matter-repl.md
+++ b/docs/development_controllers/chip-repl/matter-repl.md
@@ -244,8 +244,8 @@ Some tests provides the option to exclude them. For example, you can use
It is recommended to use the test wrapper to run mobile-device-test.py, for
example, you can run:
-```
-./scripts/tests/run_python_test.py --app chip-all-clusters-app --factoryreset
+```shell
+./scripts/tests/run_python_test.py --app chip-all-clusters-app --factory-reset
```
It provides some extra options, for example:
@@ -254,7 +254,7 @@ It provides some extra options, for example:
optional arguments:
-h, --help show this help message and exit
--app APP Path to local application to use, omit to use external apps.
- --factoryreset Remove app config and repl configs (/tmp/chip* and /tmp/repl*) before running the tests.
+ --factory-reset Remove app config and repl configs (/tmp/chip* and /tmp/repl*) before running the tests.
--app-args APP_ARGS The extra parameters passed to the device side app.
--script SCRIPT Path to the test script to use, omit to use the default test script (mobile-device-test.py).
--script-args SCRIPT_ARGS Arguments for the REPL test script
@@ -263,8 +263,8 @@ optional arguments:
You can pass your own flags for mobile-device-test.py by appending them to the
command line with two dashes, for example:
-```
-./scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-no-ble-no-wifi-tsan-clang/chip-all-clusters-app --factoryreset --script-args "-t 90 --disable-test ClusterObjectTests.TestTimedRequestTimeout"
+```shell
+./scripts/tests/run_python_test.py --app out/linux-x64-all-clusters-no-ble-no-wifi-tsan-clang/chip-all-clusters-app --factory-reset --script-args "-t 90 --disable-test ClusterObjectTests.TestTimedRequestTimeout"
```
will pass `-t 90 --disable-test ClusterObjectTests.TestTimedRequestTimeout` to
diff --git a/docs/guides/python_chip_controller_advanced_usage.md b/docs/development_controllers/chip-repl/python_chip_controller_advanced_usage.md
similarity index 100%
rename from docs/guides/python_chip_controller_advanced_usage.md
rename to docs/development_controllers/chip-repl/python_chip_controller_advanced_usage.md
diff --git a/docs/guides/python_chip_controller_building.md b/docs/development_controllers/chip-repl/python_chip_controller_building.md
similarity index 98%
rename from docs/guides/python_chip_controller_building.md
rename to docs/development_controllers/chip-repl/python_chip_controller_building.md
index 8a7acc884a..aa49adad24 100644
--- a/docs/guides/python_chip_controller_building.md
+++ b/docs/development_controllers/chip-repl/python_chip_controller_building.md
@@ -39,7 +39,7 @@ Linux (amd64 / aarch64) or macOS.
To build and run the Python CHIP controller:
1. Install all necessary packages and prepare the build system. For more
- details, see the [Building Matter](BUILDING.md) documentation:
+ details, see the [Building Matter](../../guides/BUILDING.md) documentation:
```
sudo apt-get update
@@ -77,7 +77,8 @@ To build and run the Python CHIP controller:
5. Build and install the Python CHIP controller:
```
- scripts/build_python.sh -m platform -i separate
+ scripts/build_python.sh -m platform -i out/python_env
+ source out/python_env/bin/activate
```
> Note: This builds the Python CHIP Controller along with the CHIP REPL as
diff --git a/docs/guides/chip_tool_guide.md b/docs/development_controllers/chip-tool/chip_tool_guide.md
similarity index 98%
rename from docs/guides/chip_tool_guide.md
rename to docs/development_controllers/chip-tool/chip_tool_guide.md
index 31aa29353c..81000368a4 100644
--- a/docs/guides/chip_tool_guide.md
+++ b/docs/development_controllers/chip-tool/chip_tool_guide.md
@@ -9,36 +9,33 @@ the setup payload or performing discovery actions.
-## Source files
+## Installation
-You can find source files of the CHIP Tool in the `examples/chip-tool`
-directory.
-
-> **Note:** The CHIP Tool caches the configuration state in the
-> `/tmp/chip_tool_config.ini` file. Deleting this and other `.ini` files in the
-> `/tmp` directory can sometimes resolve issues related to stale configuration.
+On Linux distributions
+[running snapd](https://snapcraft.io/docs/installing-snapd), such as Ubuntu, the
+CHIP Tool can be installed using the
+[chip-tool snap](https://snapcraft.io/chip-tool). To do this, run:
-> **Note:** To make the configuration persistent (since `/tmp` directory might
-> be flushed at each reboot) you can change the directory where CHIP Tool caches
-> its configuration by using the option `--storage-directory`
+```
+sudo snap install chip-tool
+```
-
+## Building from source
-## Building and running the CHIP Tool
+The source files of the CHIP Tool are available in the `examples/chip-tool`
+directory.
-Before you can use the CHIP Tool, you must compile it from source on Linux
-(amd64/aarch64) or macOS. If you want to run it on Raspberry Pi, it must use a
-64-bit OS.
+The source can be compiled on Linux (amd64/aarch64) or macOS. If you want to run
+it on Raspberry Pi, you must use a 64-bit OS.
> **Note:** To ensure compatibility, always build the CHIP Tool and the Matter
> device from the same revision of the `connectedhomeip` repository.
-### Building the CHIP Tool
-
-To build and run the CHIP Tool:
+To build the CHIP Tool:
1. Install all required packages for Matter and prepare the source code and the
- build system. Read the [Building Matter](BUILDING.md) guide for instructions.
+ build system. Read the [Building Matter](../../guides/BUILDING.md) guide for
+ instructions.
2. Open a command prompt in the `connectedhomeip` directory.
3. Run the following command:
@@ -49,10 +46,16 @@ To build and run the CHIP Tool:
In this command, `BUILD_PATH` specifies where the target binaries are to be
placed.
-### Running the CHIP Tool
+## Running the CHIP Tool
+
+If you installed the CHIP Tool as a snap, the command to run it would be:
+
+```
+$ chip-tool
+```
-To check if the CHIP Tool runs correctly, execute the following command from the
-`BUILD_PATH` directory:
+If you compiled the CHIP Tool from source, it can be executed with the following
+command from the `BUILD_PATH` directory:
```
$ ./chip-tool
@@ -67,6 +70,13 @@ more complex command by appending it with sub-commands. Examples of specific
commands and their use cases are described in the
[Supported commands and options](#supported-commands-and-options) section.
+> **Note:** The CHIP Tool caches the configuration state in the
+> `/tmp/chip_tool_config.ini` file. Deleting this and other `.ini` files in the
+> `/tmp` directory can sometimes resolve issues related to stale configuration.
+> To make the configuration persistent you can change the directory where CHIP
+> Tool caches its configuration by using the command line option
+> `--storage-directory`
+
## CHIP Tool modes
diff --git a/docs/development_controllers/chip-tool/index.md b/docs/development_controllers/chip-tool/index.md
new file mode 100644
index 0000000000..69dc7dcd68
--- /dev/null
+++ b/docs/development_controllers/chip-tool/index.md
@@ -0,0 +1,11 @@
+# chip-tool
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+- [chip-tool guide](./chip_tool_guide.md)
diff --git a/docs/development_controllers/index.md b/docs/development_controllers/index.md
new file mode 100644
index 0000000000..dfc6b330b1
--- /dev/null
+++ b/docs/development_controllers/index.md
@@ -0,0 +1,13 @@
+# Development Controllers
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+chip-repl/index
+chip-tool/index
+```
+
+- [chip-tool](./chip-tool)
+- [chip-repl](./chip-repl)
diff --git a/docs/examples/air_purifier.md b/docs/examples/air_purifier.md
new file mode 100644
index 0000000000..fbac74357f
--- /dev/null
+++ b/docs/examples/air_purifier.md
@@ -0,0 +1,8 @@
+## Air Purifier
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+air-purifier-app/**/README
+```
diff --git a/docs/examples/air_quality.md b/docs/examples/air_quality.md
new file mode 100644
index 0000000000..2f6e43a778
--- /dev/null
+++ b/docs/examples/air_quality.md
@@ -0,0 +1,8 @@
+## Air Quality
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+air-quality-sensor-app/**/README
+```
diff --git a/docs/examples/all_clusters.md b/docs/examples/all_clusters.md
new file mode 100644
index 0000000000..f16a2723e8
--- /dev/null
+++ b/docs/examples/all_clusters.md
@@ -0,0 +1,8 @@
+## All clusters
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+all-clusters-app/**/README
+```
diff --git a/docs/examples/all_clusters_minimal.md b/docs/examples/all_clusters_minimal.md
new file mode 100644
index 0000000000..0000772c76
--- /dev/null
+++ b/docs/examples/all_clusters_minimal.md
@@ -0,0 +1,8 @@
+## All clusters minimal
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+all-clusters-minimal-app/**/README
+```
diff --git a/docs/examples/bridge.md b/docs/examples/bridge.md
new file mode 100644
index 0000000000..fe4655da58
--- /dev/null
+++ b/docs/examples/bridge.md
@@ -0,0 +1,8 @@
+## Bridge
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+bridge-app/**/README
+```
diff --git a/docs/examples/chef.md b/docs/examples/chef.md
new file mode 100644
index 0000000000..e17ea88b64
--- /dev/null
+++ b/docs/examples/chef.md
@@ -0,0 +1,9 @@
+## CHEF
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+chef/README*
+chef/**/README
+```
diff --git a/docs/examples/chip_tool.md b/docs/examples/chip_tool.md
new file mode 100644
index 0000000000..8c9b74deab
--- /dev/null
+++ b/docs/examples/chip_tool.md
@@ -0,0 +1,8 @@
+## CHIP Tool example
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+chip-tool/README
+```
diff --git a/docs/examples/contact_sensor.md b/docs/examples/contact_sensor.md
new file mode 100644
index 0000000000..1daca03f00
--- /dev/null
+++ b/docs/examples/contact_sensor.md
@@ -0,0 +1,8 @@
+## Contact Sensor
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+contact-sensor-app/**/README
+```
diff --git a/docs/examples/darwin.md b/docs/examples/darwin.md
new file mode 100644
index 0000000000..f16fca866a
--- /dev/null
+++ b/docs/examples/darwin.md
@@ -0,0 +1,8 @@
+## CHIP Tool Darwin
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+darwin-framework-tool/README
+```
diff --git a/docs/examples/dishwasher.md b/docs/examples/dishwasher.md
new file mode 100644
index 0000000000..7ceaa98791
--- /dev/null
+++ b/docs/examples/dishwasher.md
@@ -0,0 +1,8 @@
+## Dishwasher
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+dishwasher-app/**/README
+```
diff --git a/docs/examples/energy_management.md b/docs/examples/energy_management.md
new file mode 100644
index 0000000000..dfec14dd68
--- /dev/null
+++ b/docs/examples/energy_management.md
@@ -0,0 +1,8 @@
+## Energy Management
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+energy-management-app/**/README
+```
diff --git a/docs/examples/fabric_admin.md b/docs/examples/fabric_admin.md
new file mode 100644
index 0000000000..fa47159c50
--- /dev/null
+++ b/docs/examples/fabric_admin.md
@@ -0,0 +1,8 @@
+## Fabric Admin
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+fabric-admin/README
+```
diff --git a/docs/examples/fabric_bridge.md b/docs/examples/fabric_bridge.md
new file mode 100644
index 0000000000..de08b59318
--- /dev/null
+++ b/docs/examples/fabric_bridge.md
@@ -0,0 +1,8 @@
+## Fabric Bridge
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+fabric-bridge-app/**/README
+```
diff --git a/docs/examples/fabric_sync.md b/docs/examples/fabric_sync.md
new file mode 100644
index 0000000000..269448f8cf
--- /dev/null
+++ b/docs/examples/fabric_sync.md
@@ -0,0 +1,8 @@
+## Fabric Sync
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+fabric-sync/README
+```
diff --git a/docs/examples/index.md b/docs/examples/index.md
index 67dcfcf36b..75118fa933 100644
--- a/docs/examples/index.md
+++ b/docs/examples/index.md
@@ -1,390 +1,11 @@
# Examples
-The Matter SDK provides examples of Matter devices for different development
-platforms.
-
-## Air Quality Sensor example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-air-quality-sensor-app/**/README
-```
-
-## All clusters example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-all-clusters-app/**/README
-```
-
-## All clusters minimal example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-all-clusters-minimal-app/**/README
-```
-
-## Bridge example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-bridge-app/**/README
-```
-
-## Contact Sensor Example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-contact-sensor-app/**/README
-```
-
-## CHEF example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-chef/README*
-chef/**/README
-```
-
-## CHIP Tool example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-chip-tool/README
-```
-
-## CHIP Tool Darwin example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-darwin-framework-tool/README
-```
-
-## Energy Management example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-energy-management-app/**/README
-```
-
-## Fabric Admin example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-fabric-admin/README
-```
-
-## Fabric Bridge example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-fabric-bridge-app/**/README
-```
-
-## Java matter controller example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-java-matter-controller/README
-```
-
-## Kotlin matter controller example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-kotlin-matter-controller/README
-```
-
-## Virtual Device App example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-virtual-device-app/**/README
-```
-
-## Laundry washer example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-laundry-washer-app/**/README
-```
-
-## Lighting example
-
```{toctree}
:glob:
-:maxdepth: 1
+:maxdepth: 2
-lighting-app/**/README
-lighting-app/qpg/APPLICATION
+*
```
-## Lighting example without unique id
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-lighting-app-data-mode-no-unique-id/**/README
-```
-
-## Light switch example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-light-switch-app/**/README
-light-switch-app/qpg/APPLICATION
-```
-
-## Lock example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-lock-app/**/README
-lock-app/qpg/APPLICATION
-```
-
-## Log source example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-log-source-app/**/README
-```
-
-## Minimal MDNS example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-minimal-mdns/README
-```
-
-## OTA Provider example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-ota-provider-app/**/README
-```
-
-## OTA Requestor example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-ota-requestor-app/**/README
-```
-
-## Persistent storage example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-persistent-storage/**/README
-persistent-storage/**/APPLICATION
-```
-
-## Pigweed example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-pigweed-app/**/README
-```
-
-## Pump example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-pump-app/**/README
-```
-
-## Pump controller example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-pump-controller-app/**/README
-```
-
-## Refrigerator example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-refrigerator-app/**/README
-```
-
-## Shell example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-shell/README*
-shell/**/README
-```
-
-## Smoke CO Alarm example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-smoke-co-alarm-app/**/README
-```
-
-## Dishwasher example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-dishwasher-app/**/README
-```
-
-## Microwave oven example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-microwave-oven-app/**/README
-```
-
-## Temperature measurement example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-temperature-measurement-app/**/README
-```
-
-## Thermostat example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-thermostat/**/README
-thermostat/qpg/APPLICATION
-```
-
-## TV example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-tv-app/**/README
-```
-
-## TV casting example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-tv-casting-app/**/README
-tv-casting-app/APIs.md
-```
-
-## Window example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-window-app/**/README
-```
-
-## RVC example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-rvc-app/README
-```
-
-## Air Purifier Example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-air-purifier-app/**/README
-```
-
-## Network Infrastructure Manager example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-network-manager-app/README
-```
-
-## Lit ICD example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-lit-icd-app/**/README
-```
-
-## Thread Border Router example
-
-```{toctree}
-:glob:
-:maxdepth: 1
-
-thread-br-app/**/README
-```
+The Matter SDK provides examples of Matter devices for different development
+platforms.
diff --git a/docs/examples/java_matter_controller.md b/docs/examples/java_matter_controller.md
new file mode 100644
index 0000000000..58af7cbf26
--- /dev/null
+++ b/docs/examples/java_matter_controller.md
@@ -0,0 +1,8 @@
+## Java matter controller
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+java-matter-controller/README
+```
diff --git a/docs/examples/kotlin_matter_controller.md b/docs/examples/kotlin_matter_controller.md
new file mode 100644
index 0000000000..9241a1ef18
--- /dev/null
+++ b/docs/examples/kotlin_matter_controller.md
@@ -0,0 +1,8 @@
+## Kotlin matter controller
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+kotlin-matter-controller/README
+```
diff --git a/docs/examples/laundry_washer.md b/docs/examples/laundry_washer.md
new file mode 100644
index 0000000000..3a522c8f82
--- /dev/null
+++ b/docs/examples/laundry_washer.md
@@ -0,0 +1,8 @@
+## Laundry washer
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+laundry-washer-app/**/README
+```
diff --git a/docs/examples/light_switch.md b/docs/examples/light_switch.md
new file mode 100644
index 0000000000..1a887fc6b4
--- /dev/null
+++ b/docs/examples/light_switch.md
@@ -0,0 +1,9 @@
+## Light switch
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+light-switch-app/**/README
+light-switch-app/qpg/APPLICATION
+```
diff --git a/docs/examples/lighting.md b/docs/examples/lighting.md
new file mode 100644
index 0000000000..8870e50372
--- /dev/null
+++ b/docs/examples/lighting.md
@@ -0,0 +1,9 @@
+## Lighting
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+lighting-app/**/README
+lighting-app/qpg/APPLICATION
+```
diff --git a/docs/examples/lighting_no_unique_id.md b/docs/examples/lighting_no_unique_id.md
new file mode 100644
index 0000000000..a71f9df522
--- /dev/null
+++ b/docs/examples/lighting_no_unique_id.md
@@ -0,0 +1,8 @@
+## Lighting without unique id
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+lighting-app-data-mode-no-unique-id/**/README
+```
diff --git a/docs/examples/lit_icd.md b/docs/examples/lit_icd.md
new file mode 100644
index 0000000000..8678c44fcd
--- /dev/null
+++ b/docs/examples/lit_icd.md
@@ -0,0 +1,8 @@
+## Lit ICD
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+lit-icd-app/**/README
+```
diff --git a/docs/examples/lock.md b/docs/examples/lock.md
new file mode 100644
index 0000000000..16ab19dc64
--- /dev/null
+++ b/docs/examples/lock.md
@@ -0,0 +1,9 @@
+## Lock
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+lock-app/**/README
+lock-app/qpg/APPLICATION
+```
diff --git a/docs/examples/log_source.md b/docs/examples/log_source.md
new file mode 100644
index 0000000000..caec22654d
--- /dev/null
+++ b/docs/examples/log_source.md
@@ -0,0 +1,8 @@
+## Log source
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+log-source-app/**/README
+```
diff --git a/docs/examples/microwave.md b/docs/examples/microwave.md
new file mode 100644
index 0000000000..c5f659f873
--- /dev/null
+++ b/docs/examples/microwave.md
@@ -0,0 +1,8 @@
+## Microwave ovens
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+microwave-oven-app/**/README
+```
diff --git a/docs/examples/minimal_mdns.md b/docs/examples/minimal_mdns.md
new file mode 100644
index 0000000000..9d65b4dab2
--- /dev/null
+++ b/docs/examples/minimal_mdns.md
@@ -0,0 +1,8 @@
+## Minimal MDNS
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+minimal-mdns/README
+```
diff --git a/docs/examples/network_infrastructure_manager.md b/docs/examples/network_infrastructure_manager.md
new file mode 100644
index 0000000000..bcc0591037
--- /dev/null
+++ b/docs/examples/network_infrastructure_manager.md
@@ -0,0 +1,8 @@
+## Network Infrastructure Manager
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+network-manager-app/README
+```
diff --git a/docs/examples/ota_provider.md b/docs/examples/ota_provider.md
new file mode 100644
index 0000000000..3470d9fe07
--- /dev/null
+++ b/docs/examples/ota_provider.md
@@ -0,0 +1,8 @@
+## OTA Provider
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+ota-provider-app/**/README
+```
diff --git a/docs/examples/ota_requestor.md b/docs/examples/ota_requestor.md
new file mode 100644
index 0000000000..9cf5a75fea
--- /dev/null
+++ b/docs/examples/ota_requestor.md
@@ -0,0 +1,8 @@
+## OTA Requestor
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+ota-requestor-app/**/README
+```
diff --git a/docs/examples/persistent_storage.md b/docs/examples/persistent_storage.md
new file mode 100644
index 0000000000..5f5f5d1758
--- /dev/null
+++ b/docs/examples/persistent_storage.md
@@ -0,0 +1,9 @@
+## Persistent storage
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+persistent-storage/**/README
+persistent-storage/**/APPLICATION
+```
diff --git a/docs/examples/pigweed.md b/docs/examples/pigweed.md
new file mode 100644
index 0000000000..bf670bebd0
--- /dev/null
+++ b/docs/examples/pigweed.md
@@ -0,0 +1,8 @@
+## Pigweed
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+pigweed-app/**/README
+```
diff --git a/docs/examples/pump.md b/docs/examples/pump.md
new file mode 100644
index 0000000000..001a7df3fc
--- /dev/null
+++ b/docs/examples/pump.md
@@ -0,0 +1,8 @@
+## Pump
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+pump-app/**/README
+```
diff --git a/docs/examples/pump_controler.md b/docs/examples/pump_controler.md
new file mode 100644
index 0000000000..ff7f51f5ec
--- /dev/null
+++ b/docs/examples/pump_controler.md
@@ -0,0 +1,8 @@
+## Pump controller
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+pump-controller-app/**/README
+```
diff --git a/docs/examples/refrigerator.md b/docs/examples/refrigerator.md
new file mode 100644
index 0000000000..455e8fe703
--- /dev/null
+++ b/docs/examples/refrigerator.md
@@ -0,0 +1,8 @@
+## Refrigerator
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+refrigerator-app/**/README
+```
diff --git a/docs/examples/rvc.md b/docs/examples/rvc.md
new file mode 100644
index 0000000000..e0d033c447
--- /dev/null
+++ b/docs/examples/rvc.md
@@ -0,0 +1,8 @@
+## RVC
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+rvc-app/README
+```
diff --git a/docs/examples/shell.md b/docs/examples/shell.md
new file mode 100644
index 0000000000..3a0536a3dc
--- /dev/null
+++ b/docs/examples/shell.md
@@ -0,0 +1,9 @@
+## Shell
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+shell/README*
+shell/**/README
+```
diff --git a/docs/examples/smoke_co.md b/docs/examples/smoke_co.md
new file mode 100644
index 0000000000..9144276c7a
--- /dev/null
+++ b/docs/examples/smoke_co.md
@@ -0,0 +1,8 @@
+## Smoke CO Alarm example
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+smoke-co-alarm-app/**/README
+```
diff --git a/docs/examples/tbr.md b/docs/examples/tbr.md
new file mode 100644
index 0000000000..512a113222
--- /dev/null
+++ b/docs/examples/tbr.md
@@ -0,0 +1,8 @@
+## Thread Border Router
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+thread-br-app/**/README
+```
diff --git a/docs/examples/temperature_measurement.md b/docs/examples/temperature_measurement.md
new file mode 100644
index 0000000000..cf8235b1d4
--- /dev/null
+++ b/docs/examples/temperature_measurement.md
@@ -0,0 +1,8 @@
+## Temperature measurement
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+temperature-measurement-app/**/README
+```
diff --git a/docs/examples/thermostat.md b/docs/examples/thermostat.md
new file mode 100644
index 0000000000..8eb87892be
--- /dev/null
+++ b/docs/examples/thermostat.md
@@ -0,0 +1,9 @@
+## Thermostat
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+thermostat/**/README
+thermostat/qpg/APPLICATION
+```
diff --git a/docs/examples/tv.md b/docs/examples/tv.md
new file mode 100644
index 0000000000..ee97387402
--- /dev/null
+++ b/docs/examples/tv.md
@@ -0,0 +1,8 @@
+## TV
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+tv-app/**/README
+```
diff --git a/docs/examples/tv_casting.md b/docs/examples/tv_casting.md
new file mode 100644
index 0000000000..caeedf9e6d
--- /dev/null
+++ b/docs/examples/tv_casting.md
@@ -0,0 +1,9 @@
+## TV casting
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+tv-casting-app/**/README
+tv-casting-app/APIs.md
+```
diff --git a/docs/examples/virtual_device.md b/docs/examples/virtual_device.md
new file mode 100644
index 0000000000..0b50f14503
--- /dev/null
+++ b/docs/examples/virtual_device.md
@@ -0,0 +1,8 @@
+## Virtual Device App
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+virtual-device-app/**/README
+```
diff --git a/docs/examples/window.md b/docs/examples/window.md
new file mode 100644
index 0000000000..2b4993641c
--- /dev/null
+++ b/docs/examples/window.md
@@ -0,0 +1,8 @@
+## Window
+
+```{toctree}
+:glob:
+:maxdepth: 1
+
+window-app/**/README
+```
diff --git a/docs/getting_started/SDKBasics.md b/docs/getting_started/SDKBasics.md
index 7f2c81f285..eaad3baac8 100644
--- a/docs/getting_started/SDKBasics.md
+++ b/docs/getting_started/SDKBasics.md
@@ -1,4 +1,4 @@
-# SDK Basics
+# SDK Architecture Overview
## Getting Started
diff --git a/docs/getting_started/changing_examples.md b/docs/getting_started/changing_examples.md
new file mode 100644
index 0000000000..611610ce43
--- /dev/null
+++ b/docs/getting_started/changing_examples.md
@@ -0,0 +1,64 @@
+# Changing Examples
+
+The composition of most examples in the SDK is static and code generated.
+
+The tool used to describe and change the composition of an example is called
+ZAP. More information about ZAP and a walk-through of the tool can be found in
+the [ZAP introduction](./zap.md). The composition of the device is captured in a
+.zap file, which is readable by the ZAP tool. This is then compiled into a
+human-readable .matter file, which is used to build the static features of the
+example.
+
+To change the composition of a device example, you need to
+
+1. Change the zap file to implement your desired changes
+2. Run the code generation tool to generate the .matter file
+3. Re-build the example
+
+## Changing the zap file in an example
+
+Most examples in the SDK keep the .zap file in a sub-directory called
+example-name-common (ex. lighting-common). To load an existing .zap file into
+the ZAP tool, from the chip-root use
+
+```
+./scripts/tools/zap/run_zaptool.sh
+```
+
+For example, to make changes to the lighting app, use:
+
+```
+./scripts/tools/zap/run_zaptool.sh examples/lighting-app/lighting-common/lighting-app.zap
+```
+
+This will open the ZAP GUI tool, which can be used to change the endpoint
+composition, clusters, features, attributes, commands and events exposed by the
+device.
+
+Details of how to use the tool can be found in the [ZAP Introduction](./zap.md).
+
+## Running code generation
+
+To compile the .matter file for use in building, use:
+
+```
+./scripts/tools/zap/generate.py
+```
+
+For example, for changes to the lighting app, use:
+
+```
+./scripts/tools/zap/generate.py examples/lighting-app/lighting-common/lighting-app.zap
+```
+
+If there are changes to many .zap files, the following script can be used to
+recompile the .zap files for all the examples and the controller.
+
+```
+ ./scripts/tools/zap_regen_all.py
+```
+
+## Rebuilding the example
+
+After generating the .matter file, re-build the example. Instructions for
+building examples are given in [Building your first example](./first_example.md)
diff --git a/docs/getting_started/first_example.md b/docs/getting_started/first_example.md
index 89ab7d493d..d75d9e7b1a 100644
--- a/docs/getting_started/first_example.md
+++ b/docs/getting_started/first_example.md
@@ -1,4 +1,4 @@
-# An SDK example
+# Compiling, Running, and Controlling Matter examples
The SDK provides a number of example devices and controllers that can be used to
familiarize yourself with the SDK and the Matter ecosystem.
@@ -26,7 +26,7 @@ for testing.
[chip-tool](../../examples/chip-tool/) is a C++ command line controller with an
interactive shell. More information on chip-tool can be found in the
-[chip-tool guide](../guides/chip_tool_guide.md).
+[chip-tool guide](../development_controllers/chip-tool/chip_tool_guide.md).
[chip-repl](../../src/controller/python/chip-repl.py) is a shell for the python
controller. The chip-repl is part of the python controller framework, often used
diff --git a/docs/getting_started/index.md b/docs/getting_started/index.md
index ea881141ff..1bfbe3f57c 100644
--- a/docs/getting_started/index.md
+++ b/docs/getting_started/index.md
@@ -7,10 +7,14 @@ The following docs are a brief introduction to SDK development.
:maxdepth: 1
:hidden:
-*
+first_example
+changing_examples
+SDKBasics
+zap
```
- [Running your first example](./first_example.md)
-- [SDK Basics](./SDKBasics.md)
-- [ZAP](./zap.md)
+- [Changing examples](./changing_examples.md)
+- [SDK Architecture Overview](./SDKBasics.md)
+- [ZAP Introduction](./zap.md)
diff --git a/docs/guides/darwin.md b/docs/guides/darwin.md
index 00165e6fca..4692c0b065 100644
--- a/docs/guides/darwin.md
+++ b/docs/guides/darwin.md
@@ -292,17 +292,17 @@ Example:
- [ESP32 Lighting](/examples/lighting-app/esp32/README.md)
- [ESP32 Temperature Sensor](/examples/temperature-measurement-app/esp32/README.md)
- [mbedOS](/examples/all-clusters-app/mbed/README.md)
-- [nRF Connect All Clusters](./nrfconnect_examples_configuration.md)
+- [nRF Connect All Clusters](../platforms/nrf/nrfconnect_examples_configuration.md)
- [nRF Connect Pump](/examples/pump-app/nrfconnect/README.md)
-- [NXP Examples](./nxp/nxp_imx8m_linux_examples.md)
+- [NXP Examples](../platforms/nxp/nxp_imx8m_linux_examples.md)
- [NXP](/examples/all-clusters-app/nxp/mw320/README.md)
- [Infineon CYW30739 Lighting](/examples/lighting-app/infineon/cyw30739/README.md)
- [Infineon PSoC6](/examples/all-clusters-app/infineon/psoc6/README.md)
- [Qorvo](/examples/lighting-app/qpg/README.md)
-- [Silicon Labs](./silabs_getting_started.md)
+- [Silicon Labs](../platforms/silabs/silabs_getting_started.md)
- [Simulated Linux](./simulated_device_linux.md)
- [Telink](/examples/lighting-app/telink/README.md)
-- [TI Platform](./ti/ti_matter_overview.md)
+- [TI Platform](../platforms/ti/ti_matter_overview.md)
- [Tizen](/examples/lighting-app/tizen/README.md)
## Providing Feedback to Apple
diff --git a/docs/guides/index.md b/docs/guides/index.md
index 14d9caf7e2..97167c84ae 100644
--- a/docs/guides/index.md
+++ b/docs/guides/index.md
@@ -9,54 +9,13 @@ and features.
:hidden:
*
-esp32/README
-nxp/README
-ti/ti_matter_overview
```
## Build Guides
- [Building](./BUILDING.md)
-## Platform Guides
-
-- [Android - Building](./android_building.md)
-- [Apple - Testing with iPhone, iPad, macOS, Apple TV, HomePod, Watch, etc](./darwin.md)
-- [ASR - Getting Started Guide](./asr_getting_started_guide.md)
-- [Espressif (ESP32) - Getting Started Guide](./esp32/README.md)
-- [Infineon PSoC6 - Software Update](./infineon_psoc6_software_update.md)
-- [Linux - Simulated Devices](./simulated_device_linux.md)
-- [mbedOS - Adding a new target](./mbedos_add_new_target.md)
-- [mbedOS - Commissioning](./mbedos_commissioning.md)
-- [mbedOS - Platform Overview](./mbedos_platform_overview.md)
-- [nRF Connect - Android Commissioning](./nrfconnect_android_commissioning.md)
-- [nRF Connect - CLI Guide](./nrfconnect_examples_cli.md)
-- [nRF Connect - Configuration](./nrfconnect_examples_configuration.md)
-- [nRF Connect - Factory Data Configuration](./nrfconnect_factory_data_configuration.md)
-- [nRF Connect - Platform Overview](./nrfconnect_platform_overview.md)
-- [nRF Connect - Software Update](./nrfconnect_examples_software_update.md)
-- [NXP - Getting Started Guide](./nxp/README.md)
-- [Silicon Labs - Documentation](https://siliconlabs.github.io/matter/latest/index.html)
-- [Silicon Labs - Getting Started](./silabs_getting_started.md)
-- [Silicon Labs - Software Update](./silabs_efr32_software_update.md)
-- [Silicon Labs - CLI Guide](./silabs_cli_guide.md)
-- [TI - Platform Overview](./ti/ti_matter_overview.md)
-
-## Tool Guides
-
-- [CHIP Tool](./chip_tool_guide.md)
-- [Python Matter-Repl](./matter-repl.md)
-- [python-chip-controller - Advanced](./python_chip_controller_advanced_usage.md)
-- [python-chip-controller - Building](./python_chip_controller_building.md)
-- [CHEF test devices](../../examples/chef/README.md)
- - [New device type adding](../../examples/chef/NEW_CHEF_DEVICES.md)
-
## Development Guides
- [Access Control](./access-control-guide.md)
- [Matter IDL tooling and validation](./matter_idl_tooling.md)
-
-## Setup Guides
-
-- [Open Thread - Hardware suggestions](./openthread_rcp_nrf_dongle.md)
-- [Open Thread - Setting up a Raspberry Pi as a Border Router](./openthread_border_router_pi.md)
diff --git a/docs/guides/nxp/README.md b/docs/guides/nxp/README.md
deleted file mode 100644
index be225ac938..0000000000
--- a/docs/guides/nxp/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-```{toctree}
-:glob:
-:maxdepth: 1
-
-*
-```
-
-# NXP Getting Started Guide
-
-- [NXP - Android Commissioning](nxp_k32w_android_commissioning.md)
-- [NXP - Linux Examples](nxp_imx8m_linux_examples.md)
-- [NXP - Manufacturing Data](nxp_manufacturing_flow.md)
-- [NXP - RW61x OTA Software Update Guide](nxp_rw61x_ota_software_update.md)
-- [NXP - Zephyr OTA Software Update Guide](nxp_zephyr_ota_software_update.md)
diff --git a/docs/index.md b/docs/index.md
index f4b4062271..89e4661e2a 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,4 +1,4 @@
-# Welcome to Matter's documentation!
+# Welcome to Matter's documentation
```{toctree}
:maxdepth: 2
@@ -8,9 +8,11 @@
PROJECT_FLOW
VSCODE_DEVELOPMENT
ci-cd/index
+development_controllers/index
getting_started/index
cluster_and_device_type_dev/index
guides/index
+platforms/index
style/index
examples/index
product_considerations/index
@@ -23,6 +25,7 @@ zap_clusters
spec_clusters
upgrading
ERROR_CODES
+issue_triage
```
diff --git a/docs/issue_triage.md b/docs/issue_triage.md
new file mode 100644
index 0000000000..891bfca471
--- /dev/null
+++ b/docs/issue_triage.md
@@ -0,0 +1,146 @@
+# Project issues
+
+General issues are listed at
+ .
+
+In order to be able to effectively follow up on these issues, they are separated
+into groups for further review and fixing based on current maintainers on
+specific areas of the code. The separation is done via `labels`.
+
+Issues that still need triaging are labeled as `needs triage`:
+
+
+
+## Non-SDK issues
+
+In some cases the issue is integrating with ecosystems or environments are not
+supported. In these cases, issues can be re-directed to specific support pages
+rather than the SDK GitHub issues.
+
+### Google Integration
+
+- General integration link:
+- Support via the communities areas:
+ - Stack overflow:
+
+ - Google Nest Community:
+
+
+### Apple Integration
+
+This applies if there is an issue with Home interacting with a device (as
+opposed to an issue with Matter.framework or the SDK that is encountered by code
+actually running on darwin).
+
+General instructions available at [here](./guides/darwin.md) in the
+`Providing feedback to Apple` section.
+
+Once a Feedback Assistant ticket is filed, the ticket ID can be sent to Boris
+Zbkarsky to ensure it is noticed by the right people
+
+### Environments not currently supported / not maintained
+
+Some items are explicitly not maintained currently
+
+- Windows integration: no official maintainer for this so currently not
+ supported
+- Old compiler support: CHIP requires a C++17 or higher compiler.
+
+## Platform maintainers
+
+This level of separation is generally for platform-specific issues (e.g. failure
+to commission for one specific platform, failure to run on some specific
+operating system).
+
+Contact is generally done on slack. E-mail addresses are not added here on
+purpose in order to avoid spam.
+
+| Platform | Contact | Label | Note(s) |
+| ------------ | --------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------- |
+| Android | Andrei Litvin, Yunhan Wang, Yufeng Wang | [android](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Aandroid) | |
+| Darwin | Boris Zbarsky, Justin Wood | [darwin](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Adarwin) | |
+| Espressif | Hrishikesh Dhayagude | [esp32](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Aesp32) | |
+| Linux | Andrei Litvin | [linux](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Alinux) | |
+| Nordic | Lucasz Duda | [nrf](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Anrf) | |
+| NXP | Doru Gucea | [nxp](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Anxp) | |
+| Silabs/EFR32 | Jean Francois Penven, Junior Martinez | [efr32](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Aefr32) | |
+
+## Code areas
+
+The following people can be contacted about issues in specific area of code are
+affected that are not platform-specific.
+
+| Code area | Contact | Label | Note(s) |
+| ------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| ARM cross-compile | Andrei Litvin | N/A | Some support for cross-compiling on x64 linux for arm64 linux (like Raspberry PI) |
+| Build system (darwin, xcode) | Boris Zbarsky, Justin Wood | N/A | darwin specific builds, xcode connector |
+| Build system (gn, ninja) | Andrei Litvin | N/A | General build system questions and gn support, generally on Linux |
+| MatterIDL | Andrei Litvin | N/A | General .matter files and code generation based on it |
+| Minimal MDNS | Andrei Litvin | N/A | mdns specfic. Note that platformdns also exists and issues are often "DNSSD" rather than minmdns specific |
+| Python testing infrastructure/helpers | Cecille Freeman | N/A | Writing tests cases in python. **NOTE** this is for test infrastrure and NOT for individual test issues. Test case failures are associated with test applications or the test case script. |
+| ZAP Code Generation | Boris Zbarsky, Bharat Raju Dandu | [zap](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aopen+is%3Aissue+label%3Azap) | Some issues may be in the zap project itself. This is for generic code generation issues and help, often regarding `.zapt` templates |
+| src/crypto, src/credentials | Tennessee Carmel-Veilleux | N/A | |
+
+## Example maintenance
+
+Examples often correspond to specific device types. We have split the contact
+per device type regardless of example (e.g. all-clusters will contain all device
+types or functionality) as well as individual examples.
+
+### Per device type
+
+| Device Type(s) | Contact | Label | Note(s) |
+| -------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | ------- |
+| Fabric Bridge, Fabric Sync | Yufeng Wang, Terence Hampson | [fabric-sync](https://github.com/project-chip/connectedhomeip/pulls?q=is%3Aopen+is%3Apr+label%3Afabric-sync) | |
+
+### Per example
+
+| Example path | Contact | Note(s) |
+| ---------------------------------------------- | ---------------------------- | ------------ |
+| `examples/air-purifier-app` | | UNMAINTAINED |
+| `examples/air-quality-sensor-app` | | UNMAINTAINED |
+| `examples/all-clusters-app` | | UNMAINTAINED |
+| `examples/all-clusters-minimal-app` | | UNMAINTAINED |
+| `examples/android` | Yunhan Wang | |
+| `examples/bridge-app` | | UNMAINTAINED |
+| `examples/build_overrides` | | UNMAINTAINED |
+| `examples/chef` | Andrei Litvin | |
+| `examples/chip-tool` | | UNMAINTAINED |
+| `examples/contact-sensor-app` | | UNMAINTAINED |
+| `examples/darwin-framework-tool` | Boris Zbarsky | |
+| `examples/dishwasher-app` | | UNMAINTAINED |
+| `examples/energy-management-app` | James Harrow | |
+| `examples/fabric-admin` | Yufeng Wang, Terence Hampson | |
+| `examples/fabric-bridge-app` | Yufeng Wang, Terence Hampson | |
+| `examples/java-matter-controller` | Yunhan Wang, Yufeng Wang | |
+| `examples/kotlin-matter-controller` | Yunhan Wang, Yufeng Wang | |
+| `examples/laundry-washer-app` | | UNMAINTAINED |
+| `examples/lighting-app` | Junior Martinez | |
+| `examples/lighting-app-data-mode-no-unique-id` | | UNMAINTAINED |
+| `examples/light-switch-app` | | UNMAINTAINED |
+| `examples/lit-icd-app` | Yunhan Wang | |
+| `examples/lock-app` | | UNMAINTAINED |
+| `examples/log-source-app` | | UNMAINTAINED |
+| `examples/microwave-oven-app` | Rob Bultman | |
+| `examples/minimal-mdns` | Andrei Litvin | |
+| `examples/network-manager-app` | Thomas Lea | |
+| `examples/ota-provider-app` | | UNMAINTAINED |
+| `examples/ota-requestor-app` | | UNMAINTAINED |
+| `examples/persistent-storage` | | UNMAINTAINED |
+| `examples/pigweed-app` | | UNMAINTAINED |
+| `examples/placeholder` | | UNMAINTAINED |
+| `examples/providers` | | UNMAINTAINED |
+| `examples/pump-app` | | UNMAINTAINED |
+| `examples/pump-controller-app` | | UNMAINTAINED |
+| `examples/refrigerator-app` | | UNMAINTAINED |
+| `examples/resource-monitoring-app` | | UNMAINTAINED |
+| `examples/rvc-app` | | UNMAINTAINED |
+| `examples/smoke-co-alarm-app` | | UNMAINTAINED |
+| `examples/temperature-measurement-app` | | UNMAINTAINED |
+| `examples/thermostat` | | UNMAINTAINED |
+| `examples/thread-br-app` | | UNMAINTAINED |
+| `examples/tv-app` | Chris DeCenzo, Lazar Kovacic | |
+| `examples/tv-casting-app` | Chris DeCenzo, Lazar Kovacic | |
+| `examples/virtual-device-app` | | UNMAINTAINED |
+| `examples/water-leak-detector-app` | | UNMAINTAINED |
+| `examples/window-app` | | UNMAINTAINED |
diff --git a/docs/guides/android_building.md b/docs/platforms/android/android_building.md
similarity index 100%
rename from docs/guides/android_building.md
rename to docs/platforms/android/android_building.md
diff --git a/docs/platforms/android/index.md b/docs/platforms/android/index.md
new file mode 100644
index 0000000000..a8bdd37290
--- /dev/null
+++ b/docs/platforms/android/index.md
@@ -0,0 +1,11 @@
+# Android
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+[Android - Building](./android_building.md)
diff --git a/docs/guides/asr_getting_started_guide.md b/docs/platforms/asr/asr_getting_started_guide.md
similarity index 97%
rename from docs/guides/asr_getting_started_guide.md
rename to docs/platforms/asr/asr_getting_started_guide.md
index e47cc554ef..e5a4bac6e2 100644
--- a/docs/guides/asr_getting_started_guide.md
+++ b/docs/platforms/asr/asr_getting_started_guide.md
@@ -33,7 +33,7 @@ to speed up development. You can find them in the samples with `/asr` subfolder.
## Building the Example Application
-- [Setup Matter Environment](./BUILDING.md)
+- [Setup Matter Environment](../../guides/BUILDING.md)
- Setup toolchain
- for ASR582X and ASR550X
@@ -140,7 +140,7 @@ There are two commissioning modes supported by ASR platform:
`build_examples.py` script. For example:
`./scripts/build/build_examples.py --target asr-$ASR_BOARD-lighting-ota build`
2. For more usage details, please refer to the
- [OTA example](../../examples/ota-requestor-app/asr/README.md)
+ [OTA example](../../../examples/ota-requestor-app/asr/README.md)
## Factory
diff --git a/docs/platforms/asr/index.md b/docs/platforms/asr/index.md
new file mode 100644
index 0000000000..f4748a4c70
--- /dev/null
+++ b/docs/platforms/asr/index.md
@@ -0,0 +1,11 @@
+# ASR
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+[ASR - Getting Started Guide](./asr_getting_started_guide.md)
diff --git a/docs/platforms/bouffalolab/index.md b/docs/platforms/bouffalolab/index.md
new file mode 100644
index 0000000000..bacc0e63ca
--- /dev/null
+++ b/docs/platforms/bouffalolab/index.md
@@ -0,0 +1,11 @@
+# Bouffalolab
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+[Bouffalo Lab - Matter factory data generation](./matter_factory_data.md)
diff --git a/docs/platforms/bouffalolab/matter_factory_data.md b/docs/platforms/bouffalolab/matter_factory_data.md
new file mode 100644
index 0000000000..9021cd80f6
--- /dev/null
+++ b/docs/platforms/bouffalolab/matter_factory_data.md
@@ -0,0 +1,249 @@
+# Introduction to Matter factory data
+
+Each Matter device should have it own unique factory data manufactured.
+
+This guide demonstrates what `Bouffalo Lab` provides to support factory data:
+
+- credential factory data protected by hardware security engine
+- reference tool to generate factory data
+- tool/method to program factory data
+
+# Matter factory data
+
+## How to enable
+
+One dedicate flash region allocates for factory data as below which is read-only
+for firmware.
+
+```toml
+name = "MFD"
+address0 = 0x3FE000
+size0 = 0x1000
+```
+
+To enable matter factory data feature, please append `-mfd` option at end of
+target name. Take BL602 Wi-Fi Matter Light as example.
+
+```
+./scripts/build/build_examples.py --target bouffalolab-bl602dk-light-littlefs-mfd build
+```
+
+## Factory data
+
+This flash region is divided to two parts:
+
+- One is plain text data, such as Vendor ID, Product ID, Serial number and so
+ on.
+
+ > For development/test purpose, all data can put in plain text data.
+
+- Other is cipher text data, such as private key for device attestation data.
+
+ `Bouffalo Lab` provides hardware security engine to decrypt this part data
+ with **only hardware access** efuse key.
+
+Current supported data
+
+- DAC certificate and private key
+- PAI certificate
+- Certificate declaration
+
+- Discriminator ID
+- Pass Code
+- Spake2p iteration count, salt and verifier
+- Vendor ID and name
+- Product ID and name
+- Product part number and product label
+- Manufacturing date
+- Hardware version and version string
+- Serial Number
+- Unique identifier
+
+> Note, it is available to add customer/product own information in factory data,
+> please reference to `bl_mfd.h`/`bl_mfd.c` in SDK and reference generation
+> script
+> [generate_factory_data.py](../../../scripts/tools/bouffalolab/generate_factory_data.py)
+
+# Generate Matter factory data
+
+Script tool
+[generate_factory_data.py](../../../scripts/tools/bouffalolab/generate_factory_data.py)
+call `chip-cert` to generate test certificates and verify certificates.
+
+Please run below command to compile `chip-cert` tool under `connnectedhomeip`
+repo.
+
+```shell
+./scripts/build/build_examples.py --target linux-x64-chip-cert build
+```
+
+## Command options
+
+- `--cd`, certificate declare
+
+ If not specified, `Chip-Test-CD-Signing-Cert.pem` and
+ `Chip-Test-CD-Signing-Key.pem` will sign a test certificate declare for
+ development and test purpose
+
+- `--pai_cert` and `--pai-key`, PAI certificate and PAI private key
+
+ If not specified, `Chip-Test-PAI-FFF1-8000-Cert.pem` and
+ `Chip-Test-PAI-FFF1-8000-Key.pem` will be used for development and test
+ purpose.
+
+- `--dac_cert` and `--dac_key`, DAC certificate and DAC private key.
+
+ If not specified, script will use PAI certificate and key specified
+ by`--pai_cert` and `--pai-key` to generate DAC certificate and private key
+ for development and test purpose.
+
+- `--discriminator`, discriminator ID
+
+ If not specified, script will generate for user.
+
+- `--passcode`, passcode
+
+ If not specified, script will generate for user.
+
+- `--spake2p_it` and `--spake2p_salt`
+
+ If not specified, script will generate and calculate verifier for user.
+
+Please reference to `--help` for more detail.
+
+## Generate with default test certificates
+
+- Run following command to generate all plain text factory data
+
+ Please create output folder first. Here takes `out/test-cert` as example.
+
+ ```shell
+ ./scripts/tools/bouffalolab/generate_factory_data.py --output out/test-cert
+ ```
+
+- Run following command to generate factory data which encrypt private of
+ device attestation data
+
+ ```shell
+ ./scripts/tools/bouffalolab/generate_factory_data.py --output out/test-cert --key
+ ```
+
+ > An example of hex string of 16 bytes: 12345678123456781234567812345678
+
+After command executes successfully, the output folder will has files as below:
+
+- Test certificate declare file which file name ends with `cd.der`
+
+ If user wants to reuse CD generated before, please specify CD with option
+ `--cd` as below.
+
+ ```shell
+ ./scripts/tools/bouffalolab/generate_factory_data.py --output out/test-cert --cd
+ ```
+
+- Test DAC certificate and DAC certificate key which file names ends with
+ `dac_cert.pem` and `dac_key.pem` separately.
+
+- QR code picture which file name ends with `onboard.png`
+- On board information which file name ends with `onboard.txt`
+- Matter factory data which file name ends with `mfd.bin`.
+
+## Generate with self-defined PAA/PAI certificates
+
+Self-defined PAA/PAI certificates may use in development and test scenario. But,
+user should know it has limit to work with real ecosystem.
+
+- Export environment variables in terminal for easy operations
+
+ ```
+ export TEST_CERT_VENDOR_ID=130D # Vendor ID hex string
+ export TEST_CERT_CN=BFLB # Common Name
+ ```
+
+- Generate PAA certificate and key to `out/cert` folder.
+
+ ```shell
+ mkdir out/test-cert
+ ./out/linux-x64-chip-cert/chip-cert gen-att-cert --type a --subject-cn "${TEST_CERT_CN} PAA 01" --valid-from "2020-10-15 14:23:43" --lifetime 7305 --out-key out/test-cert/Chip-PAA-Key-${TEST_CERT_VENDOR_ID}.pem --out out/test-cert/Chip-PAA-Cert-${TEST_CERT_VENDOR_ID}.pem --subject-vid ${TEST_CERT_VENDOR_ID}
+ ```
+
+- Convert PAA PEM format file to PAA DER format file
+
+ ```shell
+ ./out/linux-x64-chip-cert/chip-cert convert-cert -d out/test-cert/Chip-PAA-Cert-${TEST_CERT_VENDOR_ID}.pem out/test-cert/Chip-PAA-Cert-${TEST_CERT_VENDOR_ID}.der
+ ```
+
+ > Please save this PAA DER format file which will be used by `chip-tool`
+ > during commissioning.
+
+- Generate PAI certificate and key:
+
+ ```shell
+ ./out/linux-x64-chip-cert/chip-cert gen-att-cert --type i --subject-cn "${TEST_CERT_CN} PAI 01" --subject-vid ${TEST_CERT_VENDOR_ID} --valid-from "2020-10-15 14:23:43" --lifetime 7305 --ca-key out/test-cert/Chip-PAA-Key-${TEST_CERT_VENDOR_ID}.pem --ca-cert out/test-cert/Chip-PAA-Cert-${TEST_CERT_VENDOR_ID}.pem --out-key out/test-cert/Chip-PAI-Key-${TEST_CERT_VENDOR_ID}.pem --out out/test-cert/Chip-PAI-Cert-${TEST_CERT_VENDOR_ID}.pem
+ ```
+
+- Generate `MFD` in plain text data
+
+ ```shell
+ ./scripts/tools/bouffalolab/generate_factory_data.py --output out/test-cert --paa_cert out/test-cert/Chip-PAA-Cert-${TEST_CERT_VENDOR_ID}.pem --paa_key out/test-cert/Chip-PAA-Key-${TEST_CERT_VENDOR_ID}.pem --pai_cert out/test-cert/Chip-PAI-Cert-${TEST_CERT_VENDOR_ID}.pem --pai_key out/test-cert/Chip-PAI-Key-${TEST_CERT_VENDOR_ID}.pem
+ ```
+
+ > Appending `--key ` option to enable encrypt
+ > private key of attestation device data.
+
+## Generate with self-defined DAC certificate and key
+
+Self-defined DAC certificates may use in development and test scenario. But,
+user should know it has limit to work with real ecosystem.
+
+- Export environment variables in terminal for easy operations
+
+ ```
+ export TEST_CERT_VENDOR_ID=130D # Vendor ID hex string
+ export TEST_CERT_PRODUCT_ID=1001 # Vendor ID hex string
+ export TEST_CERT_CN=BFLB # Common Name
+ ```
+
+- Generate DAC certificate and key
+
+ ```shell
+ out/linux-x64-chip-cert/chip-cert gen-att-cert --type d --subject-cn "${TEST_CERT_CN} PAI 01" --subject-vid ${TEST_CERT_VENDOR_ID} --subject-pid ${TEST_CERT_VENDOR_ID} --valid-from "2020-10-16 14:23:43" --lifetime 5946 --ca-key out/test-cert/Chip-PAI-Key-${TEST_CERT_VENDOR_ID}.pem --ca-cert out/test-cert/Chip-PAI-Cert-${TEST_CERT_VENDOR_ID}.pem --out-key out/test-cert/Chip-DAC-Key-${TEST_CERT_VENDOR_ID}-${TEST_CERT_PRODUCT_ID}.pem --out out/test-cert/Chip-DAC-Cert-${TEST_CERT_VENDOR_ID}-${TEST_CERT_PRODUCT_ID}.pem
+ ```
+
+ > **Note**, `--valid-from` and `--lifetime` should be in `--valid-from` and
+ > `--lifetime` of PAI certificate.
+
+- Generate `MFD` in plain text data
+
+ ```shell
+ ./scripts/tools/bouffalolab/generate_factory_data.py --output out/test-cert --pai_cert out/test-cert/Chip-PAI-Cert-${TEST_CERT_VENDOR_ID}.pem --dac_cert out/test-cert/Chip-DAC-Cert-${TEST_CERT_VENDOR_ID}-${TEST_CERT_PRODUCT_ID}.pem --dac_key out/test-cert/Chip-DAC-Key-${TEST_CERT_VENDOR_ID}-${TEST_CERT_PRODUCT_ID}.pem
+ ```
+
+ > Appending `--key ` option to enable encrypt
+ > private key of attestation device data.
+
+# Program factory data
+
+After each target built successfully, a flash programming python script will be
+generated under out folder.
+
+Take BL616 Wi-Fi Matter Light as example, `chip-bl616-lighting-example.flash.py`
+is using to program firmware, and also for factory data and factory decryption
+key.
+
+```shell
+/out/bouffalolab-bl616dk-light-wifi-mfd/chip-bl616-lighting-example.flash.py --port --mfd out/test-cert/
+```
+
+> If `MFD` file has cipher text data, please append
+> `--key ` option to program to this key to efuse.
+
+- Limits on BL IOT SDK
+
+ If developer would like to program `MFD` with all plain text data, option
+ `--key ` needs pass to script, otherwise, flash tool
+ will raise an error. And SoC BL602, BL702 and BL702L use BL IOT SDK for
+ Matter Application.
+
+Please free contact to `Bouffalo Lab` for DAC provider service and higher
+security solution, such as SoC inside certificate requesting.
diff --git a/docs/guides/esp32/ble_settings.md b/docs/platforms/esp32/ble_settings.md
similarity index 100%
rename from docs/guides/esp32/ble_settings.md
rename to docs/platforms/esp32/ble_settings.md
diff --git a/docs/guides/esp32/build_app_and_commission.md b/docs/platforms/esp32/build_app_and_commission.md
similarity index 98%
rename from docs/guides/esp32/build_app_and_commission.md
rename to docs/platforms/esp32/build_app_and_commission.md
index 942cb6add8..df295cc493 100644
--- a/docs/guides/esp32/build_app_and_commission.md
+++ b/docs/platforms/esp32/build_app_and_commission.md
@@ -168,7 +168,7 @@ $ out/debug/chip-tool pairing ble-wifi 12345 MY_SSID MY_PASSWORD 20202021 3840
#### Commissioning the Thread device (ESP32H2)
- For ESP32-H2, firstly start OpenThread Border Router, you can either use
- [Raspberry Pi OpenThread Border Router](../openthread_border_router_pi.md)
+ [Raspberry Pi OpenThread Border Router](../openthread/openthread_border_router_pi.md)
OR
[ESP32 OpenThread Border Router](../../../examples/thread-br-app/esp32/README.md)
diff --git a/docs/guides/esp32/config_options.md b/docs/platforms/esp32/config_options.md
similarity index 100%
rename from docs/guides/esp32/config_options.md
rename to docs/platforms/esp32/config_options.md
diff --git a/docs/guides/esp32/factory_data.md b/docs/platforms/esp32/factory_data.md
similarity index 100%
rename from docs/guides/esp32/factory_data.md
rename to docs/platforms/esp32/factory_data.md
diff --git a/docs/guides/esp32/flash_nvs_encryption.md b/docs/platforms/esp32/flash_nvs_encryption.md
similarity index 100%
rename from docs/guides/esp32/flash_nvs_encryption.md
rename to docs/platforms/esp32/flash_nvs_encryption.md
diff --git a/docs/guides/esp32/README.md b/docs/platforms/esp32/index.md
similarity index 100%
rename from docs/guides/esp32/README.md
rename to docs/platforms/esp32/index.md
diff --git a/docs/guides/esp32/ota.md b/docs/platforms/esp32/ota.md
similarity index 100%
rename from docs/guides/esp32/ota.md
rename to docs/platforms/esp32/ota.md
diff --git a/docs/guides/esp32/providers.md b/docs/platforms/esp32/providers.md
similarity index 100%
rename from docs/guides/esp32/providers.md
rename to docs/platforms/esp32/providers.md
diff --git a/docs/guides/esp32/rpc_console.md b/docs/platforms/esp32/rpc_console.md
similarity index 100%
rename from docs/guides/esp32/rpc_console.md
rename to docs/platforms/esp32/rpc_console.md
diff --git a/docs/guides/esp32/secure_cert_partition.md b/docs/platforms/esp32/secure_cert_partition.md
similarity index 100%
rename from docs/guides/esp32/secure_cert_partition.md
rename to docs/platforms/esp32/secure_cert_partition.md
diff --git a/docs/guides/esp32/setup_idf_chip.md b/docs/platforms/esp32/setup_idf_chip.md
similarity index 100%
rename from docs/guides/esp32/setup_idf_chip.md
rename to docs/platforms/esp32/setup_idf_chip.md
diff --git a/docs/guides/esp32/vs_code_development.md b/docs/platforms/esp32/vs_code_development.md
similarity index 100%
rename from docs/guides/esp32/vs_code_development.md
rename to docs/platforms/esp32/vs_code_development.md
diff --git a/docs/platforms/index.md b/docs/platforms/index.md
new file mode 100644
index 0000000000..4011f2e4c2
--- /dev/null
+++ b/docs/platforms/index.md
@@ -0,0 +1,35 @@
+# Platform Guides
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+android/index
+asr/index
+bouffalolab/index
+esp32/index
+infineon/index
+mbedos/index
+nrf/index
+nxp/index
+openiotsdk/index
+openthread/index
+silabs/index
+stm32/index
+ti/index
+```
+
+- [Android](./android/)
+- [ASR](./asr/)
+- [Bouffalo Lab](./bouffalolab)
+- [ESP32](./esp32/)
+- [Infineon](./infineon/)
+- [MbedOS](./mbedos/)
+- [NRF](./nrf/)
+- [NXP](./nxp/)
+- [OpenIoTSDK](./openiotsdk/)
+- [OpenThread](./openthread/)
+- [Silabs](./silabs/)
+- [STM32](./stm32/)
+- [TI](./ti/)
diff --git a/docs/platforms/infineon/index.md b/docs/platforms/infineon/index.md
new file mode 100644
index 0000000000..7784db777f
--- /dev/null
+++ b/docs/platforms/infineon/index.md
@@ -0,0 +1,12 @@
+# Infineon
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+[Provisioning](./infineon_psoc6_software_update.md)
+[Software update](./infineon_psoc6_software_update.md)
diff --git a/docs/guides/infineon_psoc6_software_update.md b/docs/platforms/infineon/infineon_psoc6_software_update.md
similarity index 100%
rename from docs/guides/infineon_psoc6_software_update.md
rename to docs/platforms/infineon/infineon_psoc6_software_update.md
diff --git a/docs/guides/infineon_trustm_provisioning.md b/docs/platforms/infineon/infineon_trustm_provisioning.md
similarity index 100%
rename from docs/guides/infineon_trustm_provisioning.md
rename to docs/platforms/infineon/infineon_trustm_provisioning.md
diff --git a/docs/guides/images/matter_mbedos_overview_simplified.png b/docs/platforms/mbedos/images/matter_mbedos_overview_simplified.png
similarity index 100%
rename from docs/guides/images/matter_mbedos_overview_simplified.png
rename to docs/platforms/mbedos/images/matter_mbedos_overview_simplified.png
diff --git a/docs/platforms/mbedos/index.md b/docs/platforms/mbedos/index.md
new file mode 100644
index 0000000000..5c29ab774d
--- /dev/null
+++ b/docs/platforms/mbedos/index.md
@@ -0,0 +1,13 @@
+# MbedOS
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+[Add new target](./mbedos_add_new_target.md)
+[Commissioning](./mbedos_commissioning.md)
+[Platform overview](./mbedos_platform_overview.md)
diff --git a/docs/guides/mbedos_add_new_target.md b/docs/platforms/mbedos/mbedos_add_new_target.md
similarity index 100%
rename from docs/guides/mbedos_add_new_target.md
rename to docs/platforms/mbedos/mbedos_add_new_target.md
diff --git a/docs/guides/mbedos_commissioning.md b/docs/platforms/mbedos/mbedos_commissioning.md
similarity index 96%
rename from docs/guides/mbedos_commissioning.md
rename to docs/platforms/mbedos/mbedos_commissioning.md
index 8b6987878a..1d6dc7243c 100644
--- a/docs/guides/mbedos_commissioning.md
+++ b/docs/platforms/mbedos/mbedos_commissioning.md
@@ -58,7 +58,7 @@ To make provisioning possible and to control the Matter device from your Android
based smartphone, you must first build and install the CHIPTool application.
To build the CHIPTool application for your smartphone, read
-[Android building guide](android_building.md).
+[Android building guide](../android/android_building.md).
After building, install the application by completing the following steps:
@@ -154,7 +154,7 @@ brightness between 0-255.
If **Lighting LED** is available then brightness change can be observed.
> For more details about Android CHIPTool please visit
-> [CHIPTool](../../examples/android/CHIPTool/README.md)
+> [CHIPTool](../../../examples/android/CHIPTool/README.md)
## POSIX CLI CHIPTool
@@ -164,7 +164,7 @@ To make provisioning possible and to control the Matter device from Linux-based
device, you can build and run the Matter Client example application on it.
To build the POSIX CLI CHIPTool application check the guide
-[POSIX CLI guide](../../examples/chip-tool/README.md).
+[POSIX CLI guide](../../../examples/chip-tool/README.md).
### Device commissioning for CLI
@@ -196,7 +196,7 @@ For example:
The client will send a single command packet and then exit.
> For more details about POSIX CLI CHIPTool please visit
-> [POSIX CLI CHIPTool](../../examples/chip-tool/README.md)
+> [POSIX CLI CHIPTool](../../../examples/chip-tool/README.md)
## Python Device Controller
@@ -206,7 +206,7 @@ To make provisioning possible and to control the Matter device with Python
application, you can build and run the Python CHIP controller.
To build and install the Python Device Controller application check the guide
-[Python Device Controller guide](python_chip_controller_building.md).
+[Python Device Controller guide](../../development_controllers/chip-repl/python_chip_controller_building.md).
### Device commissioning for Python Device Controller
diff --git a/docs/guides/mbedos_platform_overview.md b/docs/platforms/mbedos/mbedos_platform_overview.md
similarity index 95%
rename from docs/guides/mbedos_platform_overview.md
rename to docs/platforms/mbedos/mbedos_platform_overview.md
index b70d5ed89c..8cdce2c20c 100644
--- a/docs/guides/mbedos_platform_overview.md
+++ b/docs/platforms/mbedos/mbedos_platform_overview.md
@@ -85,11 +85,11 @@ needed to perform communication through the Matter stack.
Sample Matter applications are provided for the Mbed OS platform. They can be
used to speed up development:
-- [shell](../../examples/shell/mbed/README.md)
-- [all-clusters-app](../../examples/all-clusters-app/mbed/README.md)
-- [lock-app](../../examples/lock-app/mbed/README.md)
-- [lighting-app](../../examples/lighting-app/mbed/README.md)
-- [pigweed-app](../../examples/pigweed-app/mbed/README.md)
+- [shell](../../../examples/shell/mbed/README.md)
+- [all-clusters-app](../../../examples/all-clusters-app/mbed/README.md)
+- [lock-app](../../../examples/lock-app/mbed/README.md)
+- [lighting-app](../../../examples/lighting-app/mbed/README.md)
+- [pigweed-app](../../../examples/pigweed-app/mbed/README.md)
### Example configuration
diff --git a/docs/guides/images/CHIPTool_device_commissioned.png b/docs/platforms/nrf/images/CHIPTool_device_commissioned.png
similarity index 100%
rename from docs/guides/images/CHIPTool_device_commissioned.png
rename to docs/platforms/nrf/images/CHIPTool_device_commissioned.png
diff --git a/docs/guides/images/matter_nrfconnect_overview_simplified_ncs.svg b/docs/platforms/nrf/images/matter_nrfconnect_overview_simplified_ncs.svg
similarity index 100%
rename from docs/guides/images/matter_nrfconnect_overview_simplified_ncs.svg
rename to docs/platforms/nrf/images/matter_nrfconnect_overview_simplified_ncs.svg
diff --git a/docs/guides/images/nrfconnect_android_connectivity.png b/docs/platforms/nrf/images/nrfconnect_android_connectivity.png
similarity index 100%
rename from docs/guides/images/nrfconnect_android_connectivity.png
rename to docs/platforms/nrf/images/nrfconnect_android_connectivity.png
diff --git a/docs/platforms/nrf/index.md b/docs/platforms/nrf/index.md
new file mode 100644
index 0000000000..bf74c43fcc
--- /dev/null
+++ b/docs/platforms/nrf/index.md
@@ -0,0 +1,16 @@
+# NRF
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+[Android Commissioning](./nrfconnect_android_commissioning.md)
+[Examples CLI](./nrfconnect_examples_cli.md)
+[Examples configuration](./nrfconnect_examples_configuration.md)
+[Examples Software update](./nrfconnect_examples_software_update.md)
+[Factory data](./nrfconnect_factory_data_configuration.md)
+[Platform overview](./nrfconnect_platform_overview.md)
diff --git a/docs/guides/nrfconnect_android_commissioning.md b/docs/platforms/nrf/nrfconnect_android_commissioning.md
similarity index 94%
rename from docs/guides/nrfconnect_android_commissioning.md
rename to docs/platforms/nrf/nrfconnect_android_commissioning.md
index 0c93f45792..9c6358d501 100644
--- a/docs/guides/nrfconnect_android_commissioning.md
+++ b/docs/platforms/nrf/nrfconnect_android_commissioning.md
@@ -1,7 +1,7 @@
# Commissioning nRF Connect Accessory using Android CHIPTool
-You can use [CHIPTool](android_building.md) for Android smartphones to
-commission a Nordic Semiconductor's development kit programmed with a Matter
+You can use [CHIPTool](../android/android_building.md) for Android smartphones
+to commission a Nordic Semiconductor's development kit programmed with a Matter
example for the nRF Connect platform into a Matter fabric.
This guide references the nRF52840 DK and Matter nRF Connect Lighting Example
@@ -86,9 +86,10 @@ accessory using Android CHIPTool:
> _Note:_ This step is only needed if you're testing a Thread device. Skip it if
> the tested device operates in a Wi-Fi network.
-Follow the [OpenThread Border Router](openthread_border_router_pi.md) article to
-set up OpenThread Border Router on the Raspberry Pi, with either the nRF52840 DK
-or the nRF52840 Dongle acting as the
+Follow the
+[OpenThread Border Router](../openthread/openthread_border_router_pi.md) article
+to set up OpenThread Border Router on the Raspberry Pi, with either the nRF52840
+DK or the nRF52840 Dongle acting as the
[OpenThread Radio Co-Processor](https://openthread.io/platforms/co-processor).
During the setup, make sure that the Raspberry Pi is connected to your Wi-Fi
Access Point.
@@ -107,7 +108,7 @@ Application to learn how to build and program the example onto an nRF52840 DK.
## Building and installing Android CHIPTool
To build the CHIPTool application for your smartphone, read the
-[Building Android](android_building.md) guide.
+[Building Android](../android/android_building.md) guide.
After building, install the application by completing the following steps:
diff --git a/docs/guides/nrfconnect_examples_cli.md b/docs/platforms/nrf/nrfconnect_examples_cli.md
similarity index 100%
rename from docs/guides/nrfconnect_examples_cli.md
rename to docs/platforms/nrf/nrfconnect_examples_cli.md
diff --git a/docs/guides/nrfconnect_examples_configuration.md b/docs/platforms/nrf/nrfconnect_examples_configuration.md
similarity index 100%
rename from docs/guides/nrfconnect_examples_configuration.md
rename to docs/platforms/nrf/nrfconnect_examples_configuration.md
diff --git a/docs/guides/nrfconnect_examples_software_update.md b/docs/platforms/nrf/nrfconnect_examples_software_update.md
similarity index 99%
rename from docs/guides/nrfconnect_examples_software_update.md
rename to docs/platforms/nrf/nrfconnect_examples_software_update.md
index d295bae476..5f3ab2055d 100644
--- a/docs/guides/nrfconnect_examples_software_update.md
+++ b/docs/platforms/nrf/nrfconnect_examples_software_update.md
@@ -17,7 +17,7 @@ protocols:
> **_NOTE:_** The procedure presented below requires that you have OpenThread
> Border Router (OTBR) set up either in Docker or on a Raspberry Pi. Read
-> [Setup OpenThread Border Router on Raspberry Pi](openthread_border_router_pi.md)
+> [Setup OpenThread Border Router on Raspberry Pi](../openthread/openthread_border_router_pi.md)
> to learn how to install the OTBR on a Raspberry Pi.
The DFU over Matter involves two kinds of nodes:
@@ -94,7 +94,6 @@ To test the DFU over Matter, you need to complete the following steps:
10. Initiate the DFU procedure in one of the following ways:
-
- If you have built the device firmware with `-DCONFIG_CHIP_LIB_SHELL=y`
option, which enables Matter shell commands, run the following command
on the device shell:
diff --git a/docs/guides/nrfconnect_factory_data_configuration.md b/docs/platforms/nrf/nrfconnect_factory_data_configuration.md
similarity index 99%
rename from docs/guides/nrfconnect_factory_data_configuration.md
rename to docs/platforms/nrf/nrfconnect_factory_data_configuration.md
index 886acc9b30..0c3f6c1d47 100644
--- a/docs/guides/nrfconnect_factory_data_configuration.md
+++ b/docs/platforms/nrf/nrfconnect_factory_data_configuration.md
@@ -813,8 +813,8 @@ Alternatively, you can add the relevant Kconfig option lines to the example's
You can edit all configuration options using the interactive Kconfig interface.
See the
-[Configuring nRF Connect examples](../guides/nrfconnect_examples_configuration.md)
-page for information about how to configure Kconfig options.
+[Configuring nRF Connect examples](./nrfconnect_examples_configuration.md) page
+for information about how to configure Kconfig options.
In the configuration window, expand the items
`Modules -> connectedhomeip (/home/arbl/matter/connectedhomeip/config/nrfconnect/chip-module) -> Connected Home over IP protocol stack`.
diff --git a/docs/guides/nrfconnect_platform_overview.md b/docs/platforms/nrf/nrfconnect_platform_overview.md
similarity index 100%
rename from docs/guides/nrfconnect_platform_overview.md
rename to docs/platforms/nrf/nrfconnect_platform_overview.md
diff --git a/docs/platforms/nxp/index.md b/docs/platforms/nxp/index.md
new file mode 100644
index 0000000000..844dc40194
--- /dev/null
+++ b/docs/platforms/nxp/index.md
@@ -0,0 +1,15 @@
+# NXP
+
+```{toctree}
+:glob:
+:maxdepth: 1
+:hidden:
+
+*
+```
+
+- [NXP - Android Commissioning](./nxp_k32w_android_commissioning.md)
+- [NXP - Linux Examples](./nxp_imx8m_linux_examples.md)
+- [NXP - Manufacturing Data](./nxp_manufacturing_flow.md)
+- [NXP - RTs OTA Software Update Guide](./nxp_RTs_ota_software_update.md)
+- [NXP - Zephyr OTA Software Update Guide](./nxp_zephyr_ota_software_update.md
diff --git a/docs/guides/nxp/nxp_rw61x_ota_software_update.md b/docs/platforms/nxp/nxp_RTs_ota_software_update.md
similarity index 68%
rename from docs/guides/nxp/nxp_rw61x_ota_software_update.md
rename to docs/platforms/nxp/nxp_RTs_ota_software_update.md
index af67b1419d..696f5078c1 100644
--- a/docs/guides/nxp/nxp_rw61x_ota_software_update.md
+++ b/docs/platforms/nxp/nxp_RTs_ota_software_update.md
@@ -1,13 +1,19 @@
-# Matter Over-The-Air Software Update with NXP RW61x example applications
+# Matter Over-The-Air Software Update with NXP RTs example applications
## Overview
+This document describes OTA feature on NXP devices:
+
+- RW61x
+- RT1060_EVK-C
+- RT1170_EVK-B
+
The OTA Requestor feature enables the device to be informed of, download and
apply a software update from an OTA Provider.
-This section explains how to perform an OTA Software Update with NXP RW61x
-example applications. Throughout this guide, the all-clusters application is
-used as an example.
+This section explains how to perform an OTA Software Update with NXP RTs example
+applications. Throughout this guide, the all-clusters application is used as an
+example.
In general, the Over-The-Air Software Update process consists of the following
steps :
@@ -24,10 +30,9 @@ steps :
### Flash Memory Layout
-The RW61x Flash is divided into different regions as follow :
+The RTs Flash is divided into different regions as follow :
-- Bootloader : MCUBoot resides at the base of the flash and occupies 0x20000
- (128 kB).
+- Bootloader : MCUBoot resides at the base of the flash.
- Primary application partition : The example application which would be run
by the bootloader (active application). The size reserved for this partition
is 4.4 MB.
@@ -36,11 +41,12 @@ The RW61x Flash is divided into different regions as follow :
Notes :
-- The CPU1/CPU2 firmware are embedded in the CPU3 example application.
+- For RW61x: The CPU1/CPU2 firmware are embedded in the CPU3 example
+ application.
- The sizes of the primary and secondary applications are provided as an
example (currently 4.4 MB is reserved for each partition). The size can be
changed by modifying the `m_app_max_sectors` value in the linker script of
- the application (`RW610_flash.ld`).
+ the application .
### MCUBoot Bootloader
@@ -48,11 +54,11 @@ MCUBoot is an open-source secure bootloader used by RW61x to apply the
self-upgrade. For more details, please refer to the
[MCUBoot documentation](https://github.com/mcu-tools/mcuboot/blob/main/docs/design.md).
-For RW61x platform, the bootloader is configured to use the flash remapping
+For RTs platform, the bootloader is configured to use the flash remapping
mechanism by default, in order to perform the image upgrade. This is achieved by
using the `MCUBoot DIRECT-XIP` upgrade mode.
-## OTA Software Update process for RW61x example application
+## OTA Software Update process for RTs example application
### Flashing the bootloader
@@ -71,9 +77,11 @@ $ JLink
Run the following commands :
-```
+Connect J-Link debugger to device:
+
+```sh
J-Link > connect
-Device> ? # you will be presented with a dialog -> select `RW612`
+Device> ? # you will be presented with a dialog -> select `RW612` for RW61x, `MIMXRT1062XXX6B` for RT1060, `MIMXRT1176xxxA_M7` for RT1170
Please specify target interface:
J) JTAG (Default)
S) SWD
@@ -81,34 +89,60 @@ T) cJTAG
TIF> S
Specify target interface speed [kHz]. : 4000 kHz
Speed> #
+```
+
+Erase flash:
+
+```
J-Link > exec EnableEraseAllFlashBanks
+```
+
+For RW61x
+
+```
J-Link > erase 0x8000000, 0x88a0000
```
-- MCUBoot application can be built with SDK installed, using instructions
+For RT1060-EVK-C
- below.
+```
+J-Link > erase 0x60000000, 0x61000000
+```
-- Retrieve the mcuboot directory with :
+For RT1170-EVK-B
```
-user@ubuntu: cd ~/Desktop/connectedhomeip/third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples//ota_examples/mcuboot_opensource/armgcc
+J-Link > erase 0x30000000, 0x34000000
```
-``: Supported rw612 boards are: `rdrw612bga` or `frdmrw612`
+- MCUBoot application can be built with SDK installed, using instructions
+ below.
+- Retrieve the mcuboot directory located at
+ _'/third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples/`RTboard`1/ota_examples/`mcuboot_opensource/armgcc`'_
+
+_1 `rdrw612bga` or `frdmrw612` for RW61x,
+`evkcmimxrt1060` for RT1060-EVK-C, `evkbmimxrt1170` for RT1170-EVK-B_
+
+```
+user@ubuntu: cd ~/Desktop/connectedhomeip/third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples//ota_examples/mcuboot_opensource/armgcc
+```
-- Build the mcuboot application :
+- Build the mcuboot application with running
+ `build_script`2
```
-user@ubuntu: chmod +x build_flash_release.sh
+user@ubuntu: chmod +x
user@ubuntu: export ARMGCC_DIR=/opt/gcc-arm-none-eabi-10.3-2021.10 # with ARMGCC_DIR referencing the compiler path
-user@ubuntu: ./build_flash_release.sh
+user@ubuntu: ./
```
+_2 `build_flash_release.sh` for RW61x,
+`build_flexspi_nor_release.sh` for RT1060 and RT1170_
+
- Program the generated binary to the target board.
```
-J-Link > loadbin ~/Desktop/connectedhomeip/third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples//ota_examples/mcuboot_opensource/armgcc/flash_release/mcuboot_opensource.elf
+J-Link > loadbin /mcuboot_opensource.elf
```
- If it runs successfully, the following logs will be displayed on the
@@ -126,10 +160,11 @@ Unable to find bootable image
Note : By default, mcuboot application considers the primary and secondary
partitions to be the size of 4.4 MB. If the size is to be changed, the partition
-addresses should be modified in the flash_partitioning.h accordingly. For more
+addresses should be modified in the `flash_partitioning.h` accordingly. For more
information about the flash partitioning with mcuboot, please refer to the
-dedicated readme.txt located in
-"`/third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples//ota_examples/mcuboot_opensource/`".
+dedicated `readme.txt` located in
+
+> _/third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples/`RTboard`1/ota_examples/`mcuboot_opensource`/._
### Generating and flashing the signed application image
@@ -143,15 +178,25 @@ The image must have the following format :
signature, the upgrade type, the swap status...
The all-clusters application can be generated using the instructions from the
-[README.md 'Building'](../../../examples/all-clusters-app/nxp/rt/rw61x/README.md#building)
-section. The application is automatically linked to be executed from the primary
-image partition, taking into consideration the offset imposed by mcuboot.
-The resulting executable file found in out/debug/chip-rw61x-all-cluster-example
+README.md3'Building' section. The
+application is automatically linked to be executed from the primary image
+partition, taking into consideration the offset imposed by mcuboot.
+
+_3
+[RW61x README.md 'Building'](../../../examples/all-clusters-app/nxp/rt/rw61x/README.md#building),
+[RT1060 README.md 'Building'](../../../examples/all-clusters-app/nxp/rt/rt1060/README.md#building),
+[RT1170 README.md 'Building'](../../../examples/all-clusters-app/nxp/rt/rt1170/README.md#building)_
+
+The resulting executable file found in
+out/release/chip-`board`4-all-cluster-example
needs to be converted into raw binary format as shown below.
-```
-arm-none-eabi-objcopy -R .flash_config -R .NVM -O binary chip-rw61x-all-cluster-example chip-rw61x-all-cluster-example.bin
+_4 `rw61x` for RW61x, `rt1060` for
+RT1060-EVK-C, `rt1170` for RT1170-EVK-B_
+
+```sh
+arm-none-eabi-objcopy -R .flash_config -R .NVM -O binary chip-<"board">-all-cluster-example chip-<"board">-all-cluster-example.bin
```
To sign the image and wrap the raw binary of the application with the header and
@@ -161,10 +206,10 @@ trailer, "`imgtool`" is provided in the SDK and can be found in
The following commands can be run (make sure to replace the /path/to/file/binary
with the adequate files):
-```
+```sh
user@ubuntu: cd ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/middleware/mcuboot_opensource/scripts/
-user@ubuntu: python3 imgtool.py sign --key ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples//ota_examples/mcuboot_opensource/keys/sign-rsa2048-priv.pem --align 4 --header-size 0x1000 --pad-header --pad --confirm --slot-size 0x440000 --max-sectors 1088 --version "1.0" ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/rw61x/out/debug/chip-rw61x-all-cluster-example.bin ~/Desktop/connectedhomeip/examples/all-clusters-app/nxp/rt/rw61x/out/debug/chip-rw61x-all-cluster-example_SIGNED.bin
+user@ubuntu: python3 imgtool.py sign --key ~/Desktop//third_party/nxp/nxp_matter_support/github_sdk/common_sdk/repo/examples/