diff --git a/.github/workflows/bloat_check.yaml b/.github/workflows/bloat_check.yaml
index a49cfbd58fa686..2d84b86316af9a 100644
--- a/.github/workflows/bloat_check.yaml
+++ b/.github/workflows/bloat_check.yaml
@@ -34,7 +34,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
 
         steps:
             - name: Checkout
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 24ef4842fbe76a..0a5546c9c83d93 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -43,7 +43,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/:/runner-root-volume"
                 - "/tmp/log_output:/tmp/test_logs"
@@ -131,7 +131,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/:/runner-root-volume"
                 - "/tmp/log_output:/tmp/test_logs"
@@ -300,7 +300,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/:/runner-root-volume"
                 - "/tmp/log_output:/tmp/test_logs"
@@ -365,7 +365,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/:/runner-root-volume"
                 - "/tmp/log_output:/tmp/test_logs"
@@ -487,7 +487,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
                 net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0"
 
@@ -502,4 +502,3 @@ jobs:
 
             - name: Run Build Coverage
               run: ./scripts/build_coverage.sh --yaml
-
diff --git a/.github/workflows/chef.yaml b/.github/workflows/chef.yaml
index b80aad17e2f7f2..f5eff507755c00 100644
--- a/.github/workflows/chef.yaml
+++ b/.github/workflows/chef.yaml
@@ -36,7 +36,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             options: --user root
 
         steps:
@@ -57,7 +57,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-esp32:104
+            image: ghcr.io/project-chip/chip-build-esp32:112
             options: --user root
 
         steps:
@@ -78,7 +78,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-nrf-platform:104
+            image: ghcr.io/project-chip/chip-build-nrf-platform:112
             options: --user root
 
         steps:
@@ -99,7 +99,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-telink:104
+            image: ghcr.io/project-chip/chip-build-telink:112
             options: --user root
 
         steps:
@@ -111,7 +111,7 @@ jobs:
                 platform: telink
             # - name: Update Zephyr to specific revision (for developers purpose)
             #   shell: bash
-            #   run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 52c23bb5bfa7b08fb2499fda8c34cbd3418e0c1d"
+            #   run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py ce4027fc0768b8509758af2e43f74e3fd2c7d58d"
             - name: CI Examples Telink
               shell: bash
               run: |
diff --git a/.github/workflows/doxygen.yaml b/.github/workflows/doxygen.yaml
index 21c0d452c1f7f9..a6b2a6675d4a0e 100644
--- a/.github/workflows/doxygen.yaml
+++ b/.github/workflows/doxygen.yaml
@@ -84,7 +84,7 @@ jobs:
 
         runs-on: ubuntu-latest
         container:
-            image: ghcr.io/project-chip/chip-build-doxygen:104
+            image: ghcr.io/project-chip/chip-build-doxygen:112
 
         if: github.actor != 'restyled-io[bot]'
 
diff --git a/.github/workflows/examples-ameba.yaml b/.github/workflows/examples-ameba.yaml
index 6bb87fd97257bb..e05532bc40cb18 100644
--- a/.github/workflows/examples-ameba.yaml
+++ b/.github/workflows/examples-ameba.yaml
@@ -39,7 +39,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-ameba:104
+            image: ghcr.io/project-chip/chip-build-ameba:112
             options: --user root
 
         steps:
diff --git a/.github/workflows/examples-asr.yaml b/.github/workflows/examples-asr.yaml
index a753d338c4c212..f662d863d97547 100644
--- a/.github/workflows/examples-asr.yaml
+++ b/.github/workflows/examples-asr.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-asr:104
+            image: ghcr.io/project-chip/chip-build-asr:112
             options: --user root
 
         steps:
diff --git a/.github/workflows/examples-bouffalolab.yaml b/.github/workflows/examples-bouffalolab.yaml
index 2d1ec2d7a2cd2c..e9494d58aa7e1b 100644
--- a/.github/workflows/examples-bouffalolab.yaml
+++ b/.github/workflows/examples-bouffalolab.yaml
@@ -38,7 +38,7 @@ jobs:
     if: github.actor != 'restyled-io[bot]'
 
     container:
-      image: ghcr.io/project-chip/chip-build-bouffalolab:104
+      image: ghcr.io/project-chip/chip-build-bouffalolab:112
       volumes:
         - "/tmp/bloat_reports:/tmp/bloat_reports"
     steps:
diff --git a/.github/workflows/examples-cc13xx_26xx.yaml b/.github/workflows/examples-cc13xx_26xx.yaml
index 35bdccbe274475..b5ee872c7ed038 100644
--- a/.github/workflows/examples-cc13xx_26xx.yaml
+++ b/.github/workflows/examples-cc13xx_26xx.yaml
@@ -42,7 +42,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-ti:104
+            image: ghcr.io/project-chip/chip-build-ti:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
         steps:
diff --git a/.github/workflows/examples-cc32xx.yaml b/.github/workflows/examples-cc32xx.yaml
index cb874238157362..7a5217033664c8 100644
--- a/.github/workflows/examples-cc32xx.yaml
+++ b/.github/workflows/examples-cc32xx.yaml
@@ -41,7 +41,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-ti:104
+            image: ghcr.io/project-chip/chip-build-ti:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
         steps:
diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml
index 855be84ced625f..83d37f0130541b 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:104
+      image: ghcr.io/project-chip/chip-build-efr32:112
       volumes:
         - "/tmp/bloat_reports:/tmp/bloat_reports"
     steps:
diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml
index b65df551436f92..58abb0f19ed9f5 100644
--- a/.github/workflows/examples-esp32.yaml
+++ b/.github/workflows/examples-esp32.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-esp32:104
+            image: ghcr.io/project-chip/chip-build-esp32:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
 
@@ -132,7 +132,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]' &&  github.repository_owner == 'espressif'
 
         container:
-            image: ghcr.io/project-chip/chip-build-esp32:104
+            image: ghcr.io/project-chip/chip-build-esp32:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
 
diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml
index 4cf54ff65960f7..f4a9cdca73a431 100644
--- a/.github/workflows/examples-infineon.yaml
+++ b/.github/workflows/examples-infineon.yaml
@@ -38,7 +38,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-infineon:104
+            image: ghcr.io/project-chip/chip-build-infineon:112
             env:
                # TODO: this should probably be part of the dockerfile itself
                CY_TOOLS_PATHS: /opt/Tools/ModusToolbox/tools_3.2
diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml
index 7c576dd68cd993..752902e2c95fbf 100644
--- a/.github/workflows/examples-linux-arm.yaml
+++ b/.github/workflows/examples-linux-arm.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-crosscompile:104
+            image: ghcr.io/project-chip/chip-build-crosscompile:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
 
diff --git a/.github/workflows/examples-linux-imx.yaml b/.github/workflows/examples-linux-imx.yaml
index 72458c39656c2e..f07eb0e25eb0a1 100644
--- a/.github/workflows/examples-linux-imx.yaml
+++ b/.github/workflows/examples-linux-imx.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-imx:104
+            image: ghcr.io/project-chip/chip-build-imx:112
 
         steps:
             - name: Checkout
diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml
index 0e5a6d3e6ef876..3bd4f307cf5b2d 100644
--- a/.github/workflows/examples-linux-standalone.yaml
+++ b/.github/workflows/examples-linux-standalone.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
 
diff --git a/.github/workflows/examples-linux-tv-casting-app.yaml b/.github/workflows/examples-linux-tv-casting-app.yaml
index 392f7aadb440be..c2b681a370591d 100644
--- a/.github/workflows/examples-linux-tv-casting-app.yaml
+++ b/.github/workflows/examples-linux-tv-casting-app.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
 
         steps:
             - name: Checkout
diff --git a/.github/workflows/examples-mw320.yaml b/.github/workflows/examples-mw320.yaml
index 1b745f9ce6cd3c..c10767964df59b 100644
--- a/.github/workflows/examples-mw320.yaml
+++ b/.github/workflows/examples-mw320.yaml
@@ -40,7 +40,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
         steps:
diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml
index 0f946882891aff..55491d5c125b0a 100644
--- a/.github/workflows/examples-nrfconnect.yaml
+++ b/.github/workflows/examples-nrfconnect.yaml
@@ -40,7 +40,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-nrf-platform:104
+            image: ghcr.io/project-chip/chip-build-nrf-platform:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
 
diff --git a/.github/workflows/examples-nuttx.yaml b/.github/workflows/examples-nuttx.yaml
index f32610349e11f2..fe9f7f0f564d5c 100644
--- a/.github/workflows/examples-nuttx.yaml
+++ b/.github/workflows/examples-nuttx.yaml
@@ -38,7 +38,7 @@ jobs:
     if: github.actor != 'restyled-io[bot]'
 
     container:
-      image: ghcr.io/project-chip/chip-build-nuttx:104
+      image: ghcr.io/project-chip/chip-build-nuttx:112
       volumes:
         - "/tmp/bloat_reports:/tmp/bloat_reports"
     steps:
diff --git a/.github/workflows/examples-nxp.yaml b/.github/workflows/examples-nxp.yaml
index adfeb2196e03ce..f7c54f20fab196 100644
--- a/.github/workflows/examples-nxp.yaml
+++ b/.github/workflows/examples-nxp.yaml
@@ -40,7 +40,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-nxp:104
+            image: ghcr.io/project-chip/chip-build-nxp:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
         steps:
@@ -239,7 +239,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-nxp-zephyr:104
+            image: ghcr.io/project-chip/chip-build-nxp-zephyr:112
 
         steps:
             - name: Checkout
diff --git a/.github/workflows/examples-openiotsdk.yaml b/.github/workflows/examples-openiotsdk.yaml
index d0a0a46d79463b..171bb7de0b3032 100644
--- a/.github/workflows/examples-openiotsdk.yaml
+++ b/.github/workflows/examples-openiotsdk.yaml
@@ -36,7 +36,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-openiotsdk:104
+            image: ghcr.io/project-chip/chip-build-openiotsdk:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
             options: --privileged
diff --git a/.github/workflows/examples-qpg.yaml b/.github/workflows/examples-qpg.yaml
index adfd33920c5a30..53df87c2b896bd 100644
--- a/.github/workflows/examples-qpg.yaml
+++ b/.github/workflows/examples-qpg.yaml
@@ -40,7 +40,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
         steps:
diff --git a/.github/workflows/examples-stm32.yaml b/.github/workflows/examples-stm32.yaml
index 387d6bba6e2307..e7c2b696f05877 100644
--- a/.github/workflows/examples-stm32.yaml
+++ b/.github/workflows/examples-stm32.yaml
@@ -41,7 +41,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
         steps:
diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml
index 22905124813572..610f3a79cbb814 100644
--- a/.github/workflows/examples-telink.yaml
+++ b/.github/workflows/examples-telink.yaml
@@ -39,7 +39,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-telink:104
+            image: ghcr.io/project-chip/chip-build-telink:112
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
 
@@ -58,7 +58,7 @@ jobs:
                 gh-context: ${{ toJson(github) }}
 
             # - name: Update Zephyr to specific revision (for developers purpose)
-            #   run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 52c23bb5bfa7b08fb2499fda8c34cbd3418e0c1d"
+            #   run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py ce4027fc0768b8509758af2e43f74e3fd2c7d58d"
 
             - name: Build example Telink (B92 retention) Air Quality Sensor App
               # Run test for master and s07641069 PRs
@@ -77,7 +77,6 @@ jobs:
             - 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 \
                     "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-all-clusters' build"
@@ -142,7 +141,6 @@ jobs:
 
             - 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 \
                     "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-light-ota-factory-data' build"
@@ -154,7 +152,7 @@ jobs:
             - name: clean out build output (keep tools)
               run: rm -rf ./out/telink*
 
-            - name: Build example Telink (B91) Lighting App with OTA, RPC, Factory Data and 4Mb flash
+            - name: Build example Telink (B91) Lighting App with OTA, RPC, Factory Data, 4Mb flash
               # Run test for master and all PRs
               run: |
                   ./scripts/run_in_build_env.sh \
@@ -331,16 +329,15 @@ jobs:
             - name: clean out build output
               run: rm -rf ./out
 
-            - name: Build example Telink (W91) Window Covering App
+            - name: Build example Telink (tl721x) 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 \
-                    "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-window-covering' build"
+                    "./scripts/build/build_examples.py --target 'telink-tl7218x-window-covering' build"
                   .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
-                    telink tlsr9118bdk40d window-covering \
-                    out/telink-tlsr9118bdk40d-window-covering/zephyr/zephyr.elf \
+                    telink tl7218x window-covering \
+                    out/telink-tl7218x-window-covering/zephyr/zephyr.elf \
                     /tmp/bloat_reports/
 
             - name: clean out build output
diff --git a/.github/workflows/examples-tizen.yaml b/.github/workflows/examples-tizen.yaml
index bc94b0f3375af3..3fec2561c67c45 100644
--- a/.github/workflows/examples-tizen.yaml
+++ b/.github/workflows/examples-tizen.yaml
@@ -37,7 +37,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-tizen:98
+            image: ghcr.io/project-chip/chip-build-tizen:112
             options: --user root
             volumes:
                 - "/tmp/bloat_reports:/tmp/bloat_reports"
diff --git a/.github/workflows/full-android.yaml b/.github/workflows/full-android.yaml
index c0a2692b0beb1b..65b3d73518dfec 100644
--- a/.github/workflows/full-android.yaml
+++ b/.github/workflows/full-android.yaml
@@ -39,7 +39,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-android:108
+            image: ghcr.io/project-chip/chip-build-android:112
             volumes:
                 - "/tmp/log_output:/tmp/test_logs"
 
diff --git a/.github/workflows/fuzzing-build.yaml b/.github/workflows/fuzzing-build.yaml
index 8a1ffbc248bb3a..3e44a6dd7aa7ac 100644
--- a/.github/workflows/fuzzing-build.yaml
+++ b/.github/workflows/fuzzing-build.yaml
@@ -33,7 +33,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/tmp/log_output:/tmp/test_logs"
 
diff --git a/.github/workflows/minimal-build.yaml b/.github/workflows/minimal-build.yaml
index c921662e1b4bc3..b5cfa0356e7c79 100644
--- a/.github/workflows/minimal-build.yaml
+++ b/.github/workflows/minimal-build.yaml
@@ -34,7 +34,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build-minimal:104
+            image: ghcr.io/project-chip/chip-build-minimal:112
 
         steps:
             - name: Checkout
@@ -56,7 +56,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build-minimal:104
+            image: ghcr.io/project-chip/chip-build-minimal:112
 
         steps:
             - name: Checkout
diff --git a/.github/workflows/qemu.yaml b/.github/workflows/qemu.yaml
index 8624b06bbd5c11..0edf53710180c2 100644
--- a/.github/workflows/qemu.yaml
+++ b/.github/workflows/qemu.yaml
@@ -41,7 +41,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]' && github.repository_owner == 'espressif'
 
         container:
-            image: ghcr.io/project-chip/chip-build-esp32-qemu:104
+            image: ghcr.io/project-chip/chip-build-esp32-qemu:112
             volumes:
                 - "/tmp/log_output:/tmp/test_logs"
 
@@ -79,7 +79,7 @@ jobs:
         if: github.actor != 'restyled-io[bot]'
 
         container:
-            image: ghcr.io/project-chip/chip-build-tizen-qemu:98
+            image: ghcr.io/project-chip/chip-build-tizen-qemu:112
             options: --user root
             volumes:
                 - "/tmp/log_output:/tmp/test_logs"
diff --git a/.github/workflows/release_artifacts.yaml b/.github/workflows/release_artifacts.yaml
index bfa311bf17f7e0..88b49a341d5741 100644
--- a/.github/workflows/release_artifacts.yaml
+++ b/.github/workflows/release_artifacts.yaml
@@ -32,7 +32,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build-esp32:104
+            image: ghcr.io/project-chip/chip-build-esp32:112
 
         steps:
             - name: Checkout
@@ -64,7 +64,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build-efr32:104
+            image: ghcr.io/project-chip/chip-build-efr32:112
         steps:
             - name: Checkout
               uses: actions/checkout@v4
diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index 9e87e73b7a4dbf..d742598edb1614 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -50,7 +50,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
                 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1"
 
@@ -461,7 +461,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             options: --privileged --sysctl "net.ipv6.conf.all.disable_ipv6=0
                 net.ipv4.conf.all.forwarding=0 net.ipv6.conf.all.forwarding=0"
 
diff --git a/.github/workflows/unit_integration_test.yaml b/.github/workflows/unit_integration_test.yaml
index 0b0860afe7f995..8462af98bd72c0 100644
--- a/.github/workflows/unit_integration_test.yaml
+++ b/.github/workflows/unit_integration_test.yaml
@@ -40,7 +40,7 @@ jobs:
         runs-on: ubuntu-latest
 
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
             volumes:
                 - "/:/runner-root-volume"
                 - "/tmp/log_output:/tmp/test_logs"
diff --git a/.github/workflows/zap_regeneration.yaml b/.github/workflows/zap_regeneration.yaml
index d899b05b8a7cb8..bce5cdf93a2eb7 100644
--- a/.github/workflows/zap_regeneration.yaml
+++ b/.github/workflows/zap_regeneration.yaml
@@ -30,7 +30,7 @@ jobs:
 
         runs-on: ubuntu-20.04
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
         defaults:
             run:
                 shell: sh
diff --git a/.github/workflows/zap_templates.yaml b/.github/workflows/zap_templates.yaml
index f03aa04605b2af..4052d128b303e5 100644
--- a/.github/workflows/zap_templates.yaml
+++ b/.github/workflows/zap_templates.yaml
@@ -35,7 +35,7 @@ jobs:
 
         runs-on: ubuntu-20.04
         container:
-            image: ghcr.io/project-chip/chip-build:104
+            image: ghcr.io/project-chip/chip-build:112
         defaults:
             run:
                 shell: sh
diff --git a/config/telink/app/bootloader.conf b/config/telink/app/bootloader.conf
index 0ffacc8c0b052b..f6895c54c08731 100644
--- a/config/telink/app/bootloader.conf
+++ b/config/telink/app/bootloader.conf
@@ -33,12 +33,10 @@ CONFIG_BOOT_VALIDATE_SLOT0=y
 # Maximum signed image size: 512 * 4096 = 2M Bytes
 CONFIG_BOOT_MAX_IMG_SECTORS=512
 
-# Sets log level for modules which don't specify it explicitly.
-# When set to 0 it means log will not be activated for those modules.
-# Levels are:
-#  - 0 OFF, do not write by default
-#  - 1 ERROR, default to only write LOG_LEVEL_ERR
-#  - 2 WARNING, default to write LOG_LEVEL_WRN
-#  - 3 INFO, default to write LOG_LEVEL_INFO
-#  - 4 DEBUG, default to write LOG_LEVEL_DBG
-CONFIG_LOG_DEFAULT_LEVEL=3
+# MCUBOOT log levels are:
+#  - OFF, LOG_LEVEL_ERR_OFF
+#  - ERROR,  LOG_LEVEL_ERR
+#  - WARNING,  LOG_LEVEL_WRN
+#  - INFO,  LOG_LEVEL_INF
+#  - DEBUG, LOG_LEVEL_DBG
+CONFIG_MCUBOOT_LOG_LEVEL_INF=y
diff --git a/config/telink/app/bootloader_compress_lzma.conf b/config/telink/app/bootloader_compress_lzma.conf
index cb349eed0ce387..7a8d9ec950faf4 100644
--- a/config/telink/app/bootloader_compress_lzma.conf
+++ b/config/telink/app/bootloader_compress_lzma.conf
@@ -26,15 +26,13 @@ CONFIG_BOOT_VALIDATE_SLOT0=y
 # Maximum signed image size: 512 * 4096 = 2M Bytes
 CONFIG_BOOT_MAX_IMG_SECTORS=512
 
-# Sets log level for modules which don't specify it explicitly.
-# When set to 0 it means log will not be activated for those modules.
-# Levels are:
-#  - 0 OFF, do not write by default
-#  - 1 ERROR, default to only write LOG_LEVEL_ERR
-#  - 2 WARNING, default to write LOG_LEVEL_WRN
-#  - 3 INFO, default to write LOG_LEVEL_INFO
-#  - 4 DEBUG, default to write LOG_LEVEL_DBG
-CONFIG_LOG_DEFAULT_LEVEL=3
+# MCUBOOT log levels are:
+#  - OFF, LOG_LEVEL_ERR_OFF
+#  - ERROR,  LOG_LEVEL_ERR
+#  - WARNING,  LOG_LEVEL_WRN
+#  - INFO,  LOG_LEVEL_INF
+#  - DEBUG, LOG_LEVEL_DBG
+CONFIG_MCUBOOT_LOG_LEVEL_INF=y
 
 # LZMA used sys_heap based allocators
 CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=78000
diff --git a/config/telink/app/enable-gnu-std.cmake b/config/telink/app/enable-gnu-std.cmake
index b165900d31866a..6ed9507ad9fd4e 100644
--- a/config/telink/app/enable-gnu-std.cmake
+++ b/config/telink/app/enable-gnu-std.cmake
@@ -1,19 +1,6 @@
-#
-#   Copyright (c) 2021 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.
-#
-
 add_library(gnu17 INTERFACE)
-target_compile_options(gnu17 INTERFACE $<$<COMPILE_LANGUAGE:CXX>:-std=gnu++17> $<$<COMPILE_LANGUAGE:CXX>:-Wno-register> -D_DEFAULT_SOURCE)
+target_compile_options(gnu17
+    INTERFACE 
+        $<$<COMPILE_LANGUAGE:CXX>:-std=gnu++17>
+        -D_DEFAULT_SOURCE)
 target_link_libraries(app PRIVATE gnu17)
diff --git a/config/telink/chip-module/CMakeLists.txt b/config/telink/chip-module/CMakeLists.txt
index bb42a26b6ffc06..f6800790deddac 100644
--- a/config/telink/chip-module/CMakeLists.txt
+++ b/config/telink/chip-module/CMakeLists.txt
@@ -174,7 +174,7 @@ add_dependencies(process_binaries ${ZEPHYR_FINAL_EXECUTABLE})
 # Define 'build_mcuboot' target for building the MCUBoot bootloader
 # ==============================================================================
 
-if (CONFIG_BOOTLOADER_MCUBOOT AND (CONFIG_SOC_SERIES_RISCV_TELINK_B9X OR CONFIG_SOC_SERIES_RISCV_TELINK_TLX))
+if (CONFIG_BOOTLOADER_MCUBOOT AND (CONFIG_SOC_RISCV_TELINK_B9X OR CONFIG_SOC_RISCV_TELINK_TLX))
     add_custom_target(build_mcuboot ALL
         COMMAND
         west build -b ${BASE_BOARD} -d build_mcuboot ${ZEPHYR_BASE}/../bootloader/mcuboot/boot/zephyr
diff --git a/config/telink/chip-module/Kconfig b/config/telink/chip-module/Kconfig
index 7e20a82c481142..4bf5c4928670c2 100644
--- a/config/telink/chip-module/Kconfig
+++ b/config/telink/chip-module/Kconfig
@@ -225,15 +225,7 @@ config CHIP_ENABLE_PM_DURING_BLE
 	help
 	  Enable PM during BLE operation.
 
-config CHIP_OPENTHREAD_TX_POWER
-	int "OpenThread Transmission power"
-	range -30 9
-	default 0
-	help
-	  OpenThread Transmission power in dBm.
-
 config SHELL_BACKEND_SERIAL_RX_RING_BUFFER_SIZE
-	int
 	default 255 if SHELL_BACKEND_SERIAL
 
 config CHIP_ENABLE_POWER_ON_FACTORY_RESET
@@ -252,5 +244,5 @@ config CHIP_TASK_STACK_SIZE
 
 config CHIP_USE_MARS_SENSOR
 	bool "Use Mars board sensor"
-	depends on SOC_SERIES_RISCV_TELINK_B9X && (BOARD_TLSR9518ADK80D || BOARD_TLSR9518ADK80D_RETENTION)
+	depends on SOC_RISCV_TELINK_B9X && (BOARD_TLSR9518ADK80D || BOARD_TLSR9518ADK80D_RETENTION)
 	default n
diff --git a/config/telink/chip-module/Kconfig.defaults b/config/telink/chip-module/Kconfig.defaults
index baafafa38a525d..aec634c3544d45 100644
--- a/config/telink/chip-module/Kconfig.defaults
+++ b/config/telink/chip-module/Kconfig.defaults
@@ -149,9 +149,6 @@ config BT_BUF_ACL_TX_SIZE
     default 107 if SOC_RISCV_TELINK_TL321X
     default 251
 
-
-#ifdef CONFIG_SOC_RISCV_TELINK_TL321X
-
 config BT_BUF_EVT_RX_COUNT
     default 4
 
@@ -159,12 +156,8 @@ config BT_BUF_ACL_RX_COUNT
     default 4
 
 config BT_GATT_CACHING
-    bool
     default n
 
-
-#endif
-
 config BT_RX_STACK_SIZE
     default 1352 if BT_B9X || BT_TLX
     default 2048 if BT_W91
@@ -174,10 +167,9 @@ config BT_HCI_TX_STACK_SIZE
     default 2048 if BT_W91
 
 config BT_DEVICE_NAME_GATT_WRITABLE
-    bool
     default n
 
-if SOC_SERIES_RISCV_TELINK_B9X || SOC_SERIES_RISCV_TELINK_TLX
+if SOC_RISCV_TELINK_B9X || SOC_RISCV_TELINK_TLX
 
 config TL_BLE_CTRL_THREAD_STACK_SIZE
     default 648
@@ -197,7 +189,7 @@ choice TL_BLE_CTRL_MAC_TYPE
     default TL_BLE_CTRL_MAC_TYPE_RANDOM_STATIC
 endchoice
 
-endif # SOC_SERIES_RISCV_TELINK_B9X || SOC_SERIES_RISCV_TELINK_TLX
+endif # SOC_RISCV_TELINK_B9X || SOC_RISCV_TELINK_TLX
 
 
 endif # BT
@@ -245,8 +237,8 @@ config CHIP_OTA_REQUESTOR
     default y
 
 config MCUBOOT_SIGNATURE_KEY_FILE
-	default "bootloader/mcuboot/root-ec-p256.pem" if BOARD_TLSR9118BDK40D
-	depends on BOOTLOADER_MCUBOOT
+    default "bootloader/mcuboot/root-ec-p256.pem" if BOARD_TLSR9118BDK40D
+    depends on BOOTLOADER_MCUBOOT
 
 # In current config/zephyr/Kconfig
 # next deprecated values are selected
@@ -290,22 +282,22 @@ choice CHIP_THREAD_DEVICE_ROLE
     prompt "Thread network device role"
     default CHIP_THREAD_DEVICE_ROLE_ROUTER
 config CHIP_THREAD_DEVICE_ROLE_ROUTER
-	depends on !PM
-	bool "thread device router"
+    depends on !PM
+    bool "thread device router"
 config CHIP_THREAD_DEVICE_ROLE_END_DEVICE
-	depends on !PM
-	bool "thread end device"
+    depends on !PM
+    bool "thread end device"
 config CHIP_THREAD_DEVICE_ROLE_SLEEPY_END_DEVICE
-	bool "thread sleepy end device"
+    bool "thread sleepy end device"
 endchoice
 
 choice OPENTHREAD_DEVICE_TYPE
-	default OPENTHREAD_FTD if CHIP_THREAD_DEVICE_ROLE_ROUTER
-	default OPENTHREAD_MTD if CHIP_THREAD_DEVICE_ROLE_END_DEVICE || CHIP_THREAD_DEVICE_ROLE_SLEEPY_END_DEVICE
+    default OPENTHREAD_FTD if CHIP_THREAD_DEVICE_ROLE_ROUTER
+    default OPENTHREAD_MTD if CHIP_THREAD_DEVICE_ROLE_END_DEVICE || CHIP_THREAD_DEVICE_ROLE_SLEEPY_END_DEVICE
 endchoice
 
 config CHIP_ENABLE_ICD_SUPPORT
-	default y if CHIP_THREAD_DEVICE_ROLE_SLEEPY_END_DEVICE
+    default y if CHIP_THREAD_DEVICE_ROLE_SLEEPY_END_DEVICE
 
 config OPENTHREAD_THREAD_STACK_SIZE
     default 2400 if PM || SOC_RISCV_TELINK_TL321X
@@ -338,7 +330,6 @@ config NET_RX_STACK_SIZE
 
 # Disable certain parts of Zephyr IPv6 stack
 config NET_IPV6_NBR_CACHE
-    bool
     default n
 
 config NET_MAX_CONN
@@ -352,69 +343,69 @@ config NET_CONFIG_INIT_TIMEOUT
 
 
 config CHIP_WIFI
-	bool "Enable Telink Wi-Fi support"
-	default y if BOARD_TLSR9118BDK40D || BOARD_TLSR9118BDK40D_V1
-	select WIFI_W91
-	select WIFI
-	select NET_STATISTICS
-	select NET_IPV6_ND # enable Neighbor Discovery to handle Router Advertisements
-	select NET_IPV6_NBR_CACHE
-	select NET_STATISTICS_USER_API
+    bool "Enable Telink Wi-Fi support"
+    default y if BOARD_TLSR9118BDK40D || BOARD_TLSR9118BDK40D_V1
+    select WIFI_W91
+    select WIFI
+    select NET_STATISTICS
+    select NET_IPV6_ND # enable Neighbor Discovery to handle Router Advertisements
+    select NET_IPV6_NBR_CACHE
+    select NET_STATISTICS_USER_API
 
 if CHIP_WIFI
 
 config DEFAULT_WIFI_SSID
-	string "Default WiFi SSID"
-	depends on CHIP_WIFI
-	default ""
-	help
-	  The SSID of network to connect to if no WiFi station configuration exists in NV storage
-	  at the time the device boots.
-	  This option is for testing only and should be disabled in production releases
+    string "Default WiFi SSID"
+    depends on CHIP_WIFI
+    default ""
+    help
+      The SSID of network to connect to if no WiFi station configuration exists in NV storage
+      at the time the device boots.
+      This option is for testing only and should be disabled in production releases
 
 config DEFAULT_WIFI_PASSWORD
-	string "Default WiFi Password"
-	depends on CHIP_WIFI
-	default ""
-	help
-	  The password for the default WiFi network.
-	  This option is for testing only and should be disabled in production releases.
+    string "Default WiFi Password"
+    depends on CHIP_WIFI
+    default ""
+    help
+      The password for the default WiFi network.
+      This option is for testing only and should be disabled in production releases.
 
 config CHIP_WIFI_CONNECTION_RECOVERY_MINIMUM_INTERVAL
-	int "Define the minimum connection recovery time interval in milliseconds"
-	depends on CHIP_WIFI
-	default 500
-	help
-	  Specifies the minimum connection recovery interval (in milliseconds).
+    int "Define the minimum connection recovery time interval in milliseconds"
+    depends on CHIP_WIFI
+    default 500
+    help
+      Specifies the minimum connection recovery interval (in milliseconds).
 
 config CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL
-	int "Define the maximum connection recovery time interval in milliseconds"
-	depends on CHIP_WIFI
-	default 3600000 # 1 hour
-	help
-	  Specifies the maximum connection recovery interval (in milliseconds).
+    int "Define the maximum connection recovery time interval in milliseconds"
+    depends on CHIP_WIFI
+    default 3600000 # 1 hour
+    help
+      Specifies the maximum connection recovery interval (in milliseconds).
 
 config CHIP_WIFI_CONNECTION_RECOVERY_MAX_RETRIES_NUMBER
-	int "Define the maximum amount of connection recovery occurrences"
-	depends on CHIP_WIFI
-	default 0
-	help
-	  Specifies the maximum number of connection recovery attempts.
-	  If set to 0, no limitation is applied and attempts
-	  to recover the connection are performed indefinitely.
+    int "Define the maximum amount of connection recovery occurrences"
+    depends on CHIP_WIFI
+    default 0
+    help
+      Specifies the maximum number of connection recovery attempts.
+      If set to 0, no limitation is applied and attempts
+      to recover the connection are performed indefinitely.
 
 config CHIP_WIFI_CONNECTION_RECOVERY_JITTER
-	int "Define the connection recovery jitter in milliseconds"
-	depends on CHIP_WIFI
-	default 2000
-	help
-	  Specifies the maximum connection recovery jitter interval (in milliseconds).
-	  Once the wait time reaches the current maximum value (defined by CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL),
-	  a random jitter interval is added to it to avoid periodicity. The random jitter is selected
-	  within range [-JITTER; +JITTER].
+    int "Define the connection recovery jitter in milliseconds"
+    depends on CHIP_WIFI
+    default 2000
+    help
+      Specifies the maximum connection recovery jitter interval (in milliseconds).
+      Once the wait time reaches the current maximum value (defined by CHIP_WIFI_CONNECTION_RECOVERY_MAXIMUM_INTERVAL),
+      a random jitter interval is added to it to avoid periodicity. The random jitter is selected
+      within range [-JITTER; +JITTER].
 
 config NET_MGMT_EVENT_STACK_SIZE
-	default 1128
+    default 1128
 
 endif # CHIP_WIFI
 
@@ -427,7 +418,7 @@ config CHIP_ENABLE_PAIRING_AUTOSTART
 
 # Configure MBEDTLS lib
 config MBEDTLS
-	default y
+    default y
 
 config MBEDTLS_USER_CONFIG_ENABLE
     default y
@@ -436,22 +427,22 @@ config MBEDTLS_USER_CONFIG_FILE
     default "telink-mbedtls-config.h"
 
 config MBEDTLS_CIPHER_CCM_ENABLED
-	default y
+    default y
 
 config MBEDTLS_PK_WRITE_C
     default y
 
 config MBEDTLS_ECP_C
-	default y
+    default y
 
 config MBEDTLS_ECP_DP_SECP256R1_ENABLED
-	default y
+    default y
 
 config MBEDTLS_ECDH_C
-	default y
+    default y
 
 config MBEDTLS_ECDSA_C
-	default y
+    default y
 
 # getopt version
 config GETOPT_LONG
diff --git a/config/zephyr/chip-module/Kconfig.mbedtls b/config/zephyr/chip-module/Kconfig.mbedtls
index 72b1563b1e808d..f4b3947db6a22e 100644
--- a/config/zephyr/chip-module/Kconfig.mbedtls
+++ b/config/zephyr/chip-module/Kconfig.mbedtls
@@ -22,9 +22,6 @@ config MBEDTLS
 config MBEDTLS_ENTROPY_ENABLED
     default y
 
-config MBEDTLS_ENTROPY_ENABLED
-    default y
-
 config MBEDTLS_ZEPHYR_ENTROPY
     default y
 
@@ -68,4 +65,3 @@ config MBEDTLS_PK_WRITE_C
     default y
 
 endif #CHIP
-
diff --git a/examples/all-clusters-app/ameba/README.md b/examples/all-clusters-app/ameba/README.md
index d00ff787640d1a..c2a33bbb173a1b 100644
--- a/examples/all-clusters-app/ameba/README.md
+++ b/examples/all-clusters-app/ameba/README.md
@@ -27,11 +27,11 @@ The CHIP demo application is supported on
 
 -   Pull docker image:
 
-          $ docker pull ghcr.io/project-chip/chip-build-ameba:104
+          $ docker pull ghcr.io/project-chip/chip-build-ameba:112
 
 -   Run docker container:
 
-          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:104
+          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:112
 
 -   Setup build environment:
 
diff --git a/examples/all-clusters-minimal-app/ameba/README.md b/examples/all-clusters-minimal-app/ameba/README.md
index e57074ae1621ec..f8d343a1d2f300 100644
--- a/examples/all-clusters-minimal-app/ameba/README.md
+++ b/examples/all-clusters-minimal-app/ameba/README.md
@@ -27,13 +27,13 @@ The CHIP demo application is supported on
 -   Pull docker image:
 
           ```
-          $ docker pull ghcr.io/project-chip/chip-build-ameba:104
+          $ docker pull ghcr.io/project-chip/chip-build-ameba:112
           ```
 
 -   Run docker container:
 
           ```
-          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:104
+          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:112
           ```
 
 -   Setup build environment:
diff --git a/examples/fabric-admin/README.md b/examples/fabric-admin/README.md
index 600d50cd5a4ffa..be8d5effa8d8b4 100644
--- a/examples/fabric-admin/README.md
+++ b/examples/fabric-admin/README.md
@@ -23,13 +23,13 @@ For Raspberry Pi 4 example:
 ### Pull Docker Images
 
 ```
-docker pull ghcr.io/project-chip/chip-build-crosscompile:104
+docker pull ghcr.io/project-chip/chip-build-crosscompile:112
 ```
 
 ### Run docker
 
 ```
-docker run -it -v ~/connectedhomeip:/var/connectedhomeip ghcr.io/project-chip/chip-build-crosscompile:104 /bin/bash
+docker run -it -v ~/connectedhomeip:/var/connectedhomeip ghcr.io/project-chip/chip-build-crosscompile:112 /bin/bash
 ```
 
 ### Build
diff --git a/examples/fabric-bridge-app/linux/README.md b/examples/fabric-bridge-app/linux/README.md
index 20889041007b97..1a9ee06bb8f596 100644
--- a/examples/fabric-bridge-app/linux/README.md
+++ b/examples/fabric-bridge-app/linux/README.md
@@ -100,13 +100,13 @@ defined:
     Pull Docker Images
 
     ```
-    docker pull ghcr.io/project-chip/chip-build-crosscompile:104
+    docker pull ghcr.io/project-chip/chip-build-crosscompile:112
     ```
 
     Run docker
 
     ```
-    docker run -it -v ~/connectedhomeip:/var/connectedhomeip ghcr.io/project-chip/chip-build-crosscompile:104 /bin/bash
+    docker run -it -v ~/connectedhomeip:/var/connectedhomeip ghcr.io/project-chip/chip-build-crosscompile:112 /bin/bash
     ```
 
     Build
diff --git a/examples/fabric-sync/README.md b/examples/fabric-sync/README.md
index 64fee61b3431de..9848d33d867d72 100644
--- a/examples/fabric-sync/README.md
+++ b/examples/fabric-sync/README.md
@@ -92,13 +92,13 @@ defined:
     Pull Docker Images
 
     ```sh
-    docker pull ghcr.io/project-chip/chip-build-crosscompile:104
+    docker pull ghcr.io/project-chip/chip-build-crosscompile:112
     ```
 
     Run docker
 
     ```sh
-    docker run -it -v ~/connectedhomeip:/var/connectedhomeip ghcr.io/project-chip/chip-build-crosscompile:104 /bin/bash
+    docker run -it -v ~/connectedhomeip:/var/connectedhomeip ghcr.io/project-chip/chip-build-crosscompile:112 /bin/bash
     ```
 
     Build
diff --git a/examples/light-switch-app/ameba/README.md b/examples/light-switch-app/ameba/README.md
index a57df10e44e032..9c15bb601ceb6d 100644
--- a/examples/light-switch-app/ameba/README.md
+++ b/examples/light-switch-app/ameba/README.md
@@ -26,11 +26,11 @@ The CHIP demo application is supported on
 
 -   Pull docker image:
 
-          $ docker pull ghcr.io/project-chip/chip-build-ameba:104
+          $ docker pull ghcr.io/project-chip/chip-build-ameba:112
 
 -   Run docker container:
 
-          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:104
+          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:112
 
 -   Setup build environment:
 
diff --git a/examples/lighting-app/ameba/README.md b/examples/lighting-app/ameba/README.md
index ad6e173246489e..bca3ba5a828650 100644
--- a/examples/lighting-app/ameba/README.md
+++ b/examples/lighting-app/ameba/README.md
@@ -23,11 +23,11 @@ The CHIP demo application is supported on
 
 -   Pull docker image:
 
-          $ docker pull ghcr.io/project-chip/chip-build-ameba:104
+          $ docker pull ghcr.io/project-chip/chip-build-ameba:112
 
 -   Run docker container:
 
-          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:104
+          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:112
 
 -   Setup build environment:
 
diff --git a/examples/ota-requestor-app/ameba/README.md b/examples/ota-requestor-app/ameba/README.md
index f7c2fef69b37e3..25adb797a37b67 100644
--- a/examples/ota-requestor-app/ameba/README.md
+++ b/examples/ota-requestor-app/ameba/README.md
@@ -6,11 +6,11 @@ A prototype application that demonstrates OTA Requestor capabilities.
 
 -   Pull docker image:
 
-          $ docker pull ghcr.io/project-chip/chip-build-ameba:104
+          $ docker pull ghcr.io/project-chip/chip-build-ameba:112
 
 -   Run docker container:
 
-          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:104
+          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:112
 
 -   Setup build environment:
 
diff --git a/examples/pigweed-app/ameba/README.md b/examples/pigweed-app/ameba/README.md
index 286090e10dce01..b8895d747b52e0 100644
--- a/examples/pigweed-app/ameba/README.md
+++ b/examples/pigweed-app/ameba/README.md
@@ -31,11 +31,11 @@ following features are available:
 
 -   Pull docker image:
 
-          $ docker pull ghcr.io/project-chip/chip-build-ameba:104
+          $ docker pull ghcr.io/project-chip/chip-build-ameba:112
 
 -   Run docker container:
 
-          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:104
+          $ docker run -it -v ${CHIP_DIR}:/root/chip ghcr.io/project-chip/chip-build-ameba:112
 
 -   Setup build environment:
 
diff --git a/examples/platform/telink/common/include/AppTaskCommon.h b/examples/platform/telink/common/include/AppTaskCommon.h
index ac10ef587d2be9..25e0e4c8da481c 100644
--- a/examples/platform/telink/common/include/AppTaskCommon.h
+++ b/examples/platform/telink/common/include/AppTaskCommon.h
@@ -76,8 +76,11 @@ class AppTaskCommon
     {
         kButtonId_ExampleAction = 1,
         kButtonId_FactoryReset,
-        kButtonId_StartWiFi,
+#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
         kButtonId_StartThread,
+#elif CHIP_DEVICE_CONFIG_ENABLE_WIFI
+        kButtonId_StartWiFi,
+#endif
         kButtonId_StartBleAdv
     } ButtonId;
 #endif
diff --git a/examples/platform/telink/common/include/SensorManagerCommon.h b/examples/platform/telink/common/include/SensorManagerCommon.h
index 25e800b078e021..6cce353f25439d 100644
--- a/examples/platform/telink/common/include/SensorManagerCommon.h
+++ b/examples/platform/telink/common/include/SensorManagerCommon.h
@@ -26,7 +26,7 @@
 #include <app-common/zap-generated/attributes/Accessors.h>
 #include <lib/core/CHIPError.h>
 
-#if defined(CONFIG_CHIP_USE_MARS_SENSOR) && defined(CONFIG_WS2812_STRIP) && !defined(CONFIG_PM)
+#if defined(CONFIG_CHIP_USE_MARS_SENSOR) && defined(CONFIG_WS2812_STRIP_GPIO_TELINK) && !defined(CONFIG_PM)
 #define USE_COLOR_TEMPERATURE_LIGHT
 #endif
 
diff --git a/examples/platform/telink/common/src/AppTaskCommon.cpp b/examples/platform/telink/common/src/AppTaskCommon.cpp
index c5807b035b191a..d898297670967c 100644
--- a/examples/platform/telink/common/src/AppTaskCommon.cpp
+++ b/examples/platform/telink/common/src/AppTaskCommon.cpp
@@ -424,7 +424,7 @@ void AppTaskCommon::InitPwms()
 
     LinkPwms(pwmManager);
 
-#if CONFIG_WS2812_STRIP
+#if CONFIG_WS2812_STRIP_GPIO_TELINK
     pwmManager.linkBackend(Ws2812Strip::getInstance());
 #elif CONFIG_PWM
     pwmManager.linkBackend(PwmPool::getInstance());
@@ -437,7 +437,7 @@ void AppTaskCommon::LinkPwms(PwmManager & pwmManager)
 {
 #if CONFIG_BOARD_TLSR9118BDK40D_V1 && CONFIG_PWM // TLSR9118BDK40D_V1 EVK supports single LED PWM channel
     pwmManager.linkPwm(PwmManager::EAppPwm_Red, 0);
-#elif CONFIG_WS2812_STRIP
+#elif CONFIG_WS2812_STRIP_GPIO_TELINK
     pwmManager.linkPwm(PwmManager::EAppPwm_Red, 0);
     pwmManager.linkPwm(PwmManager::EAppPwm_Green, 1);
     pwmManager.linkPwm(PwmManager::EAppPwm_Blue, 2);
@@ -446,7 +446,7 @@ void AppTaskCommon::LinkPwms(PwmManager & pwmManager)
     pwmManager.linkPwm(PwmManager::EAppPwm_Red, 1);
     pwmManager.linkPwm(PwmManager::EAppPwm_Green, 2);
     pwmManager.linkPwm(PwmManager::EAppPwm_Blue, 3);
-#endif // CONFIG_WS2812_STRIP
+#endif
 }
 
 void AppTaskCommon::InitButtons(void)
diff --git a/examples/platform/telink/common/src/mainCommon.cpp b/examples/platform/telink/common/src/mainCommon.cpp
index 583d61c0082c57..099ffec0debc41 100644
--- a/examples/platform/telink/common/src/mainCommon.cpp
+++ b/examples/platform/telink/common/src/mainCommon.cpp
@@ -174,6 +174,6 @@ int main(void)
     err = GetAppTask().StartApp();
 
 exit:
-    LOG_ERR("Exit err %" CHIP_ERROR_FORMAT, err.Format());
+    LOG_ERR("Exit err %d", err.Format());
     return (err == CHIP_NO_ERROR) ? EXIT_SUCCESS : EXIT_FAILURE;
 }
diff --git a/examples/platform/telink/util/include/PWMManager.h b/examples/platform/telink/util/include/PWMManager.h
index 717180a9fa4f01..eced61e7614286 100644
--- a/examples/platform/telink/util/include/PWMManager.h
+++ b/examples/platform/telink/util/include/PWMManager.h
@@ -110,7 +110,7 @@ class PwmManager
     PwmBackend * m_backend;
 };
 
-#if CONFIG_WS2812_STRIP
+#if CONFIG_WS2812_STRIP_GPIO_TELINK
 
 class Ws2812Strip : public PwmBackend
 {
@@ -170,4 +170,4 @@ class PwmDummy : public PwmBackend
     PwmDummy(){};
 };
 
-#endif // CONFIG_WS2812_STRIP
+#endif // CONFIG_WS2812_STRIP_GPIO_TELINK
diff --git a/examples/platform/telink/util/src/ColorFormat.cpp b/examples/platform/telink/util/src/ColorFormat.cpp
index 0c92c9bc0a02e6..ac648e0ddc1d9b 100644
--- a/examples/platform/telink/util/src/ColorFormat.cpp
+++ b/examples/platform/telink/util/src/ColorFormat.cpp
@@ -116,9 +116,9 @@ RgbColor_t XYToRgb(uint8_t Level, uint16_t currentX, uint16_t currentY)
     b = (X * 0.0557f) - (Y * 0.2040f) + (Z * 1.0570f);
 
     // apply gamma 2.2 correction
-    r = (r <= 0.0031308f ? 12.92f * r : (1.055f) * pow(r, (1.0f / 2.4f)) - 0.055f);
-    g = (g <= 0.0031308f ? 12.92f * g : (1.055f) * pow(g, (1.0f / 2.4f)) - 0.055f);
-    b = (b <= 0.0031308f ? 12.92f * b : (1.055f) * pow(b, (1.0f / 2.4f)) - 0.055f);
+    r = (r <= 0.0031308f ? 12.92f * r : (1.055f) * powf(r, (1.0f / 2.4f)) - 0.055f);
+    g = (g <= 0.0031308f ? 12.92f * g : (1.055f) * powf(g, (1.0f / 2.4f)) - 0.055f);
+    b = (b <= 0.0031308f ? 12.92f * b : (1.055f) * powf(b, (1.0f / 2.4f)) - 0.055f);
 
     // Round off
     r = clamp(r, 0, 1);
@@ -150,17 +150,17 @@ RgbColor_t CTToRgb(CtColor_t ct)
     }
     else
     {
-        r = 329.698727446f * pow(ctCentiKelvin - 60, -0.1332047592f);
+        r = 329.698727446f * powf(ctCentiKelvin - 60, -0.1332047592f);
     }
 
     // Green
     if (ctCentiKelvin <= 66)
     {
-        g = 99.4708025861f * log(ctCentiKelvin) - 161.1195681661f;
+        g = 99.4708025861f * logf(ctCentiKelvin) - 161.1195681661f;
     }
     else
     {
-        g = 288.1221695283f * pow(ctCentiKelvin - 60, -0.0755148492f);
+        g = 288.1221695283f * powf(ctCentiKelvin - 60, -0.0755148492f);
     }
 
     // Blue
diff --git a/examples/platform/telink/util/src/PWMManager.cpp b/examples/platform/telink/util/src/PWMManager.cpp
index aa747974c93b31..b3502723dbf4d4 100644
--- a/examples/platform/telink/util/src/PWMManager.cpp
+++ b/examples/platform/telink/util/src/PWMManager.cpp
@@ -142,7 +142,7 @@ void PwmManager::linkBackend(PwmBackend & backend)
     }
 }
 
-#if CONFIG_WS2812_STRIP
+#if CONFIG_WS2812_STRIP_GPIO_TELINK
 
 #include <zephyr_ws2812.h>
 
@@ -297,4 +297,4 @@ void PwmDummy::setPwmHWBreath(size_t pwm, size_t breathMs)
     LOG_WRN("PWM Dummy setPwmHWBreath not supported");
 }
 
-#endif // CONFIG_WS2812_STRIP
+#endif // CONFIG_WS2812_STRIP_GPIO_TELINK
diff --git a/examples/platform/telink/zephyr_ext/zephyr_key_matrix.c b/examples/platform/telink/zephyr_ext/zephyr_key_matrix.c
index 00ea46c82d0e2f..e81fe8d3eff908 100644
--- a/examples/platform/telink/zephyr_ext/zephyr_key_matrix.c
+++ b/examples/platform/telink/zephyr_ext/zephyr_key_matrix.c
@@ -47,7 +47,7 @@ static void key_matrix_poll(struct key_matrix_data * key_matrix, bool init)
 /* Key matrix scan worker */
 static void key_matrix_scan_work(struct k_work * item)
 {
-    struct key_matrix_data * key_matrix = CONTAINER_OF(item, struct key_matrix_data, work);
+    struct key_matrix_data * key_matrix = CONTAINER_OF(k_work_delayable_from_work(item), struct key_matrix_data, work);
 
     (void) k_work_schedule(&key_matrix->work, K_MSEC(KEY_MATRIX_SCAN_PERIOD_MS));
     key_matrix_poll(key_matrix, false);
diff --git a/examples/platform/telink/zephyr_ext/zephyr_key_pool.c b/examples/platform/telink/zephyr_ext/zephyr_key_pool.c
index 5a88d15303fde9..c3fa044dc1f924 100644
--- a/examples/platform/telink/zephyr_ext/zephyr_key_pool.c
+++ b/examples/platform/telink/zephyr_ext/zephyr_key_pool.c
@@ -75,7 +75,7 @@ static void key_pool_poll(struct key_pool_data * key_pool, bool init)
 /* Key pool scan worker */
 static void key_pool_event_work(struct k_work * item)
 {
-    struct key_pool_data * key_pool = CONTAINER_OF(item, struct key_pool_data, work);
+    struct key_pool_data * key_pool = CONTAINER_OF(k_work_delayable_from_work(item), struct key_pool_data, work);
 
     key_pool_poll(key_pool, false);
 }
diff --git a/examples/platform/telink/zephyr_ext/zephyr_led_pool.c b/examples/platform/telink/zephyr_ext/zephyr_led_pool.c
index f8ced2d413fd63..a00544c403861f 100644
--- a/examples/platform/telink/zephyr_ext/zephyr_led_pool.c
+++ b/examples/platform/telink/zephyr_ext/zephyr_led_pool.c
@@ -80,7 +80,7 @@ static void led_pool_aux_update(const struct led_pool_data * led_pool)
 /* Led pool worker */
 static void led_pool_event_work(struct k_work * item)
 {
-    struct led_pool_data * led_pool = CONTAINER_OF(item, struct led_pool_data, work);
+    struct led_pool_data * led_pool = CONTAINER_OF(k_work_delayable_from_work(item), struct led_pool_data, work);
 
     led_pool_aux_update(led_pool);
     (void) k_work_reschedule(&led_pool->work, led_pool_aux_timeout(led_pool));
diff --git a/examples/platform/telink/zephyr_ext/zephyr_pwm_pool.c b/examples/platform/telink/zephyr_ext/zephyr_pwm_pool.c
index 3f1651844f1cec..0322e812b62a92 100644
--- a/examples/platform/telink/zephyr_ext/zephyr_pwm_pool.c
+++ b/examples/platform/telink/zephyr_ext/zephyr_pwm_pool.c
@@ -140,7 +140,7 @@ static void pwm_pool_aux_update(const struct pwm_pool_data * pwm_pool)
 /* Pwm pool worker */
 static void pwm_pool_event_work(struct k_work * item)
 {
-    struct pwm_pool_data * pwm_pool = CONTAINER_OF(item, struct pwm_pool_data, work);
+    struct pwm_pool_data * pwm_pool = CONTAINER_OF(k_work_delayable_from_work(item), struct pwm_pool_data, work);
 
     pwm_pool_aux_update(pwm_pool);
     (void) k_work_reschedule(&pwm_pool->work, pwm_pool_aux_timeout(pwm_pool));
diff --git a/integrations/cloudbuild/chef.yaml b/integrations/cloudbuild/chef.yaml
index 45c4df62387847..17a45e36233187 100644
--- a/integrations/cloudbuild/chef.yaml
+++ b/integrations/cloudbuild/chef.yaml
@@ -1,5 +1,5 @@
 steps:
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       entrypoint: "bash"
       args:
           - "-c"
@@ -7,7 +7,7 @@ steps:
               git config --global --add safe.directory "*"
               python scripts/checkout_submodules.py --shallow --recursive --platform esp32 nrfconnect silabs linux android 
       id: Submodules
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       # NOTE: silabs boostrap is NOT done with the rest as it requests a conflicting
       #       jinja2 version (asks for 3.1.3 when constraints.txt asks for 3.0.3)
       env:
@@ -23,7 +23,7 @@ steps:
           - name: pwenv
             path: /pwenv
       timeout: 900s
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
       args:
@@ -38,7 +38,7 @@ steps:
           - name: pwenv
             path: /pwenv
 
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
       args:
diff --git a/integrations/cloudbuild/smoke-test.yaml b/integrations/cloudbuild/smoke-test.yaml
index 715019984f2b50..b1100a8adc166f 100644
--- a/integrations/cloudbuild/smoke-test.yaml
+++ b/integrations/cloudbuild/smoke-test.yaml
@@ -1,5 +1,5 @@
 steps:
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       entrypoint: "bash"
       args:
           - "-c"
@@ -7,7 +7,7 @@ steps:
               git config --global --add safe.directory "*"
               python scripts/checkout_submodules.py --shallow --recursive --platform esp32 nrfconnect silabs linux android 
       id: Submodules
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       # NOTE: silabs boostrap is NOT done with the rest as it requests a conflicting
       #       jinja2 version (asks for 3.1.3 when constraints.txt asks for 3.0.3)
       env:
@@ -24,7 +24,7 @@ steps:
             path: /pwenv
       timeout: 900s
 
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       id: ESP32
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
@@ -44,7 +44,7 @@ steps:
       volumes:
           - name: pwenv
             path: /pwenv
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       id: NRFConnect
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
@@ -65,7 +65,7 @@ steps:
           - name: pwenv
             path: /pwenv
 
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       id: EFR32
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
@@ -87,7 +87,7 @@ steps:
           - name: pwenv
             path: /pwenv
 
-    - name: "ghcr.io/project-chip/chip-build-vscode:104"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       id: Linux
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
@@ -140,7 +140,7 @@ steps:
           - name: pwenv
             path: /pwenv
 
-    - name: "ghcr.io/project-chip/chip-build-vscode:108"
+    - name: "ghcr.io/project-chip/chip-build-vscode:112"
       id: Android
       env:
           - PW_ENVIRONMENT_ROOT=/pwenv
diff --git a/scripts/tools/telink/process_binaries.py b/scripts/tools/telink/process_binaries.py
index 5144920dd86823..27443ba072e5d6 100755
--- a/scripts/tools/telink/process_binaries.py
+++ b/scripts/tools/telink/process_binaries.py
@@ -103,7 +103,7 @@ def compress_lzma_firmware(input_file, output_file):
     os.remove('merged.bin')
 
 # Telink W91 dual-core SoC binary operations
-if build_conf.getboolean('CONFIG_SOC_SERIES_RISCV_TELINK_W91'):
+if build_conf.getboolean('CONFIG_SOC_RISCV_TELINK_W91'):
     n22_partition_offset = build_conf['CONFIG_TELINK_W91_N22_PARTITION_ADDR']
     if build_conf.getboolean('CONFIG_BOOTLOADER_MCUBOOT'):
         n22_partition_offset -= build_conf['CONFIG_FLASH_LOAD_OFFSET']
diff --git a/src/platform/Zephyr/InetUtils.cpp b/src/platform/Zephyr/InetUtils.cpp
index a4879884da41f0..b692cdafa80c59 100644
--- a/src/platform/Zephyr/InetUtils.cpp
+++ b/src/platform/Zephyr/InetUtils.cpp
@@ -45,7 +45,7 @@ net_if * GetWiFiInterface()
 {
 // TODO: Remove dependency after Telink Zephyr update
 // net_if_get_first_wifi() is not available in Zephyr 3.3.99
-#if !defined(CONFIG_SOC_SERIES_RISCV_TELINK_W91)
+#if !defined(CONFIG_SOC_RISCV_TELINK_W91)
     return net_if_get_first_wifi();
 #else
     return GetInterface();
diff --git a/src/platform/telink/BLEManagerImpl.cpp b/src/platform/telink/BLEManagerImpl.cpp
index 819d2614ce349d..6752b8bc63811e 100644
--- a/src/platform/telink/BLEManagerImpl.cpp
+++ b/src/platform/telink/BLEManagerImpl.cpp
@@ -46,7 +46,13 @@
 #include <zephyr/sys/util.h>
 
 extern "C" {
+#if defined(CONFIG_BT_B9X)
+extern __attribute__((noinline)) int b9x_bt_blc_mac_init(uint8_t * bt_mac);
+#elif defined(CONFIG_BT_TLX)
+extern __attribute__((noinline)) int tlx_bt_blc_mac_init(uint8_t * bt_mac);
+#elif defined(CONFIG_BT_W91)
 extern __attribute__((noinline)) void telink_bt_blc_mac_init(uint8_t * bt_mac);
+#endif
 }
 
 #if defined(CONFIG_PM) && !defined(CONFIG_CHIP_ENABLE_PM_DURING_BLE)
@@ -117,7 +123,13 @@ CHIP_ERROR InitBLEMACAddress()
     int error = 0;
     bt_addr_le_t addr;
 
+#if defined(CONFIG_BT_B9X)
+    b9x_bt_blc_mac_init(addr.a.val);
+#elif defined(CONFIG_BT_TLX)
+    tlx_bt_blc_mac_init(addr.a.val);
+#elif defined(CONFIG_BT_W91)
     telink_bt_blc_mac_init(addr.a.val);
+#endif
 
     if (BT_ADDR_IS_STATIC(&addr.a)) // in case of Random static address, create a new id
     {
diff --git a/src/platform/telink/CHIPDevicePlatformConfig.h b/src/platform/telink/CHIPDevicePlatformConfig.h
index 655ac128953bee..8229b781a22a94 100644
--- a/src/platform/telink/CHIPDevicePlatformConfig.h
+++ b/src/platform/telink/CHIPDevicePlatformConfig.h
@@ -145,6 +145,8 @@
 #if !defined(CONFIG_CHIP_MALLOC_SYS_HEAP) && defined(CONFIG_NEWLIB_LIBC)
 /// Use mallinfo() to obtain the heap usage statistics exposed by SoftwareDiagnostics cluster attributes.
 #define CHIP_DEVICE_CONFIG_HEAP_STATISTICS_MALLINFO 1
+#else
+#define CHIP_DEVICE_CONFIG_HEAP_STATISTICS_MALLINFO 0
 #endif // !defined(CONFIG_CHIP_MALLOC_SYS_HEAP) && defined(CONFIG_NEWLIB_LIBC)
 #endif // CHIP_DEVICE_CONFIG_HEAP_STATISTICS_MALLINFO
 
diff --git a/src/platform/telink/tl3218x_2m_flash.overlay b/src/platform/telink/tl3218x_2m_flash.overlay
index 53114e6ac6054d..bff368eea1578a 100644
--- a/src/platform/telink/tl3218x_2m_flash.overlay
+++ b/src/platform/telink/tl3218x_2m_flash.overlay
@@ -9,27 +9,27 @@
 
 		boot_partition: partition@0 {
 			label = "mcuboot";
-			reg = <0x00000000 0x13000>;
+			reg = <0x00000000 0xf000>;
 		};
-		slot0_partition: partition@13000 {
+		slot0_partition: partition@f000 {
 			label = "image-0";
-			reg = <0x13000 0xef000>;
+			reg = <0xf000 0xf1000>;
 		};
-		factory_partition: partition@102000 {
+		factory_partition: partition@100000 {
 			label = "factory-data";
-			reg = <0x102000 0x800>;
+			reg = <0x100000 0x800>;
 		};
-		factory_rfu_partition: partition@102800 {
+		factory_rfu_partition: partition@100800 {
 			label = "factory-data-rfu";
-			reg = <0x102800 0x800>;
+			reg = <0x100800 0x800>;
 		};
-		storage_partition: partition@103000 {
+		storage_partition: partition@101000 {
 			label = "storage";
-			reg = <0x103000 0xc000>;
+			reg = <0x101000 0xc000>;
 		};
-		slot1_partition: partition@10f000 {
+		slot1_partition: partition@10d000 {
 			label = "image-1";
-			reg = <0x10f000 0xef000>;
+			reg = <0x10d000 0xf1000>;
 		};
 		vendor_partition: partition@1fe000 {
 			label = "vendor-data";
diff --git a/src/platform/telink/tl7218x_2m_flash.overlay b/src/platform/telink/tl7218x_2m_flash.overlay
index 53114e6ac6054d..d08d0e4ff4a6ba 100644
--- a/src/platform/telink/tl7218x_2m_flash.overlay
+++ b/src/platform/telink/tl7218x_2m_flash.overlay
@@ -9,27 +9,23 @@
 
 		boot_partition: partition@0 {
 			label = "mcuboot";
-			reg = <0x00000000 0x13000>;
+			reg = <0x00000000 0xf000>;
 		};
-		slot0_partition: partition@13000 {
+		slot0_partition: partition@f000 {
 			label = "image-0";
-			reg = <0x13000 0xef000>;
+			reg = <0xf000 0xf1000>;
 		};
-		factory_partition: partition@102000 {
+		factory_partition: partition@100000 {
 			label = "factory-data";
-			reg = <0x102000 0x800>;
+			reg = <0x100000 0x1000>;
 		};
-		factory_rfu_partition: partition@102800 {
-			label = "factory-data-rfu";
-			reg = <0x102800 0x800>;
-		};
-		storage_partition: partition@103000 {
+		storage_partition: partition@101000 {
 			label = "storage";
-			reg = <0x103000 0xc000>;
+			reg = <0x101000 0xc000>;
 		};
-		slot1_partition: partition@10f000 {
+		slot1_partition: partition@10d000 {
 			label = "image-1";
-			reg = <0x10f000 0xef000>;
+			reg = <0x10d000 0xf1000>;
 		};
 		vendor_partition: partition@1fe000 {
 			label = "vendor-data";
diff --git a/src/platform/telink/tlsr9518adk80d_1m_flash.overlay b/src/platform/telink/tlsr9518adk80d_1m_flash.overlay
index ba55da341398f5..1a49a150cf3206 100644
--- a/src/platform/telink/tlsr9518adk80d_1m_flash.overlay
+++ b/src/platform/telink/tlsr9518adk80d_1m_flash.overlay
@@ -9,11 +9,11 @@
 
 		boot_partition: partition@0 {
 			label = "mcuboot";
-			reg = <0x00000000 0x19000>;
+			reg = <0x00000000 0xf000>;
 		};
-		slot0_partition: partition@19000 {
+		slot0_partition: partition@f000 {
 			label = "image-0";
-			reg = <0x19000 0xd9000>;
+			reg = <0xf000 0xe3000>;
 		};
 		factory_partition: partition@f2000 {
 			label = "factory-data";
diff --git a/src/platform/telink/tlsr9518adk80d_2m_flash.overlay b/src/platform/telink/tlsr9518adk80d_2m_flash.overlay
index 4fd5fd13086046..62c17e96bd0031 100644
--- a/src/platform/telink/tlsr9518adk80d_2m_flash.overlay
+++ b/src/platform/telink/tlsr9518adk80d_2m_flash.overlay
@@ -9,23 +9,23 @@
 
 		boot_partition: partition@0 {
 			label = "mcuboot";
-			reg = <0x00000000 0x19000>;
+			reg = <0x00000000 0xd000>;
 		};
-		slot0_partition: partition@19000 {
+		slot0_partition: partition@d000 {
 			label = "image-0";
-			reg = <0x19000 0xec000>;
+			reg = <0xd000 0xf2000>;
 		};
-		factory_partition: partition@105000 {
+		factory_partition: partition@ff000 {
 			label = "factory-data";
-			reg = <0x105000 0x1000>;
+			reg = <0xff000 0x1000>;
 		};
-		storage_partition: partition@106000 {
+		storage_partition: partition@100000 {
 			label = "storage";
-			reg = <0x106000 0xc000>;
+			reg = <0x100000 0xc000>;
 		};
-		slot1_partition: partition@112000 {
+		slot1_partition: partition@10c000 {
 			label = "image-1";
-			reg = <0x112000 0xec000>;
+			reg = <0x10c000 0xf2000>;
 		};
 		vendor_partition: partition@1fe000 {
 			label = "vendor-data";
diff --git a/src/platform/telink/tlsr9518adk80d_mars.conf b/src/platform/telink/tlsr9518adk80d_mars.conf
index 1b7b4a47378f6c..268a64d1d03c91 100644
--- a/src/platform/telink/tlsr9518adk80d_mars.conf
+++ b/src/platform/telink/tlsr9518adk80d_mars.conf
@@ -8,7 +8,6 @@ CONFIG_SENSOR=y
 # WS2812
 CONFIG_LED_STRIP=y
 CONFIG_LED_STRIP_LOG_LEVEL_DBG=y
-CONFIG_WS2812_STRIP=y
 CONFIG_WS2812_STRIP_GPIO_TELINK=y
 
 # DFU via USB
diff --git a/src/platform/telink/tlsr9528a_2m_flash.overlay b/src/platform/telink/tlsr9528a_2m_flash.overlay
index 35d72affa95023..d08d0e4ff4a6ba 100644
--- a/src/platform/telink/tlsr9528a_2m_flash.overlay
+++ b/src/platform/telink/tlsr9528a_2m_flash.overlay
@@ -9,31 +9,23 @@
 
 		boot_partition: partition@0 {
 			label = "mcuboot";
-			reg = <0x00000000 0x13000>;
+			reg = <0x00000000 0xf000>;
 		};
-		slot0_partition: partition@13000 {
+		slot0_partition: partition@f000 {
 			label = "image-0";
-			reg = <0x13000 0xec000>;
+			reg = <0xf000 0xf1000>;
 		};
-		factory_partition: partition@ff000 {
+		factory_partition: partition@100000 {
 			label = "factory-data";
-			reg = <0xff000 0x1000>;
+			reg = <0x100000 0x1000>;
 		};
-		dac_keypair_partition: partition@100000 {
- 			label = "dac-keypair";
-			reg = <0x100000 0x1000>; //store dac and key pair.
- 		};
-		descriptor_partition: partition@101000 {
-			label = "sboot-descriptor";
-			reg = <0x101000 0x2000>;
-		};
-		storage_partition: partition@103000 {
+		storage_partition: partition@101000 {
 			label = "storage";
-			reg = <0x103000 0xf000>;
+			reg = <0x101000 0xc000>;
 		};
-		slot1_partition: partition@112000 {
+		slot1_partition: partition@10d000 {
 			label = "image-1";
-			reg = <0x112000 0xec000>;
+			reg = <0x10d000 0xf1000>;
 		};
 		vendor_partition: partition@1fe000 {
 			label = "vendor-data";