[Infineon] Update OTA asset and remove OTA REQUESTOR example app for P6 (#21552)

diff --git a/docs/guides/infineon_p6_software_update.md b/docs/guides/infineon_p6_software_update.md
index ae88abc..136f577 100644
--- a/docs/guides/infineon_p6_software_update.md
+++ b/docs/guides/infineon_p6_software_update.md
@@ -23,11 +23,18 @@
 
 -   Build the P6 OTA Requestor application from the chip root dir:
 
-          $ ./examples/<example directory>/p6/ota_base_build.sh
+           ```
+           $ scripts/build/build_examples.py --enable-flashbundle --target infineon-p6-lock-ota build
+           $ third_party/p6/p6_sdk/ota/ota_base_build.sh out/infineon-p6-lock-ota chip-p6-lock-example
+           ```
 
--   Build the P6 OTA Update application from the chip root dir:
+-   Build the P6 OTA Update application from the chip root dir and create OTA
+    file
 
-          $ ./examples/<example directory>/p6/ota_update_build.sh
+           ```
+           $ scripts/build/build_examples.py --enable-flashbundle --no-log-timestamps --target infineon-p6-lock-ota-updateimage build
+           $ third_party/p6/p6_sdk/ota/ota_update_build.sh out/infineon-p6-lock-ota-updateimage chip-p6-lock-example
+           ```
 
 *   Additionally a pre-compiled bootloader must be flashed to the board using
     [Cypress Programmer](https://softwaretools.infineon.com/tools/com.ifx.tb.tool.cypressprogrammer).
@@ -40,7 +47,7 @@
 
            ```
            rm -r /tmp/chip_*
-           ./out/debug/chip-ota-provider-app -f chip-p6-lighting-example.ota
+           ./out/debug/chip-ota-provider-app -f chip-p6-lock-example.ota
            ```
 
 *   In a separate terminal run the chip-tool commands to provision the Provider:
diff --git a/examples/all-clusters-app/p6/BUILD.gn b/examples/all-clusters-app/p6/BUILD.gn
index 07dae88..1ad3458 100644
--- a/examples/all-clusters-app/p6/BUILD.gn
+++ b/examples/all-clusters-app/p6/BUILD.gn
@@ -75,8 +75,6 @@
 
   if (build_update_image) {
     defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ]
-  } else {
-    defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ]
   }
 }
 
@@ -98,23 +96,6 @@
   public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
 
   if (chip_enable_ota_requestor) {
-    sources += [
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
-    ]
-    include_dirs += [
-      "${p6_sdk_root}/ota/config",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/sysflash/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/include",
-    ]
     public_configs += [ ":p6_ota_config" ]
   }
 }
diff --git a/examples/all-clusters-app/p6/README.md b/examples/all-clusters-app/p6/README.md
index 1a859b7..d218c24 100644
--- a/examples/all-clusters-app/p6/README.md
+++ b/examples/all-clusters-app/p6/README.md
@@ -53,16 +53,13 @@
 
 *   Build the example application:
 
-          ```
-          $ ./scripts/examples/gn_p6_example.sh ./examples/all-clusters-app/p6 out/clusters_app_p6
-          ```
+          $ source scripts/activate.sh
+          $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-all-clusters' build
 
 -   To delete generated executable, libraries and object files use:
 
-          ```
           $ cd ~/connectedhomeip
           $ rm -rf out/
-          ```
 
 <a name="flashing"></a>
 
@@ -74,10 +71,8 @@
 
 -   On the command line:
 
-          ```
           $ cd ~/connectedhomeip
-          $ python3 out/clusters_app_p6/chip-p6-clusters-example.flash.py
-          ```
+          $ python3 out/infineon-p6-all-clusters/chip-p6-clusters-example.flash.py
 
 <a name="Commissioning and cluster control"></a>
 
@@ -94,16 +89,12 @@
 
 -   Set up python controller.
 
-           ```
            $ cd {path-to-connectedhomeip}
            $ ./scripts/examples/gn_build_example.sh examples/chip-tool out/debug
-           ```
 
 -   Execute the controller.
 
-           ```
            $ ./out/debug/chip-tool
-           ```
 
 <a name="Commissioning over BLE"></a>
 
@@ -112,7 +103,6 @@
 Run the built executable and pass it the discriminator and pairing code of the
 remote device, as well as the network credentials to use.
 
-         ```
          $ ./out/debug/chip-tool pairing ble-wifi 1234 ${SSID} ${PASSWORD} 20202021 3840
 
          Parameters:
@@ -121,7 +111,6 @@
          3. Node ID: 1234 (you can assign any node id)
          4. SSID : Wi-Fi SSID
          5. PASSWORD : Wi-Fi Password
-         ```
 
 <a name="Notes"></a>
 
@@ -130,11 +119,9 @@
 Raspberry Pi 4 BLE connection issues can be avoided by running the following
 commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
 
-          ```
-          sudo btmgmt -i hci0 power off
-          sudo btmgmt -i hci0 bredr off
-          sudo btmgmt -i hci0 power on
-          ```
+          $ sudo btmgmt -i hci0 power off
+          $ sudo btmgmt -i hci0 bredr off
+          $ sudo btmgmt -i hci0 power on
 
 ## OTA Software Update
 
diff --git a/examples/all-clusters-app/p6/include/CHIPProjectConfig.h b/examples/all-clusters-app/p6/include/CHIPProjectConfig.h
index f582a28..3f304a5 100644
--- a/examples/all-clusters-app/p6/include/CHIPProjectConfig.h
+++ b/examples/all-clusters-app/p6/include/CHIPProjectConfig.h
@@ -38,6 +38,21 @@
 #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
 #endif
 
+/* The ProductID attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8003
+
+/* The ProductName attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "P6-CYW43012 All Clusters"
+
+/* The HardwareVersionString attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "P6-43012"
+
+/* The HardwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION 43012
+
+/* The SoftwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 1
+
 // For convenience, Chip Security Test Mode can be enabled and the
 // requirement for authentication in various protocols can be disabled.
 //
@@ -54,7 +69,7 @@
  * physical device, a change to its packaging, and/or a change to its marketing presentation.
  * This value is generally *not* incremented for device software versions.
  */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1
+#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 43012
 
 /**
  * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
@@ -64,7 +79,7 @@
  * {MAJOR_VERSION}.0d{MINOR_VERSION}
  */
 #ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "1.0"
 #endif
 /**
  * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
diff --git a/examples/all-clusters-app/p6/ota_base_build.sh b/examples/all-clusters-app/p6/ota_base_build.sh
deleted file mode 100755
index 61bb808..0000000
--- a/examples/all-clusters-app/p6/ota_base_build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-OUT_DIR=out/all-clusters-app/
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-scripts/examples/gn_p6_example.sh examples/all-clusters-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true
-
-mv "$OUT_DIR"/chip-p6-clusters-example.hex "$OUT_DIR"/chip-p6-clusters-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy ""
diff --git a/examples/all-clusters-app/p6/ota_update_build.sh b/examples/all-clusters-app/p6/ota_update_build.sh
deleted file mode 100755
index 58f8709..0000000
--- a/examples/all-clusters-app/p6/ota_update_build.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-OUT_DIR=out/all-clusters-app-ota
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-./scripts/examples/gn_p6_example.sh examples/all-clusters-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true
-
-mv "$OUT_DIR"/chip-p6-clusters-example.hex "$OUT_DIR"/chip-p6-clusters-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem"
-
-if [ -f "$OUT_DIR"/chip-p6-clusters-example.ota ]; then
-    rm "$OUT_DIR"/chip-p6-clusters-example.ota
-fi
-
-src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-clusters-example.bin "$OUT_DIR"/chip-p6-clusters-example.ota
diff --git a/examples/all-clusters-app/p6/src/AppTask.cpp b/examples/all-clusters-app/p6/src/AppTask.cpp
index 4b99db7..bdbc976 100644
--- a/examples/all-clusters-app/p6/src/AppTask.cpp
+++ b/examples/all-clusters-app/p6/src/AppTask.cpp
@@ -50,9 +50,7 @@
 #include <app/clusters/ota-requestor/DefaultOTARequestorDriver.h>
 #include <app/clusters/ota-requestor/DefaultOTARequestorStorage.h>
 #include <platform/P6/OTAImageProcessorImpl.h>
-extern "C" {
-#include "cy_smif_psoc6.h"
-}
+
 using chip::BDXDownloader;
 using chip::CharSpan;
 using chip::DefaultOTARequestor;
@@ -60,7 +58,7 @@
 using chip::GetRequestorInstance;
 using chip::NodeId;
 using chip::OTADownloader;
-using chip::OTAImageProcessorImpl;
+using chip::DeviceLayer::OTAImageProcessorImpl;
 using chip::System::Layer;
 
 using namespace ::chip;
@@ -314,35 +312,16 @@
 #if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
 void AppTask::InitOTARequestor()
 {
-    CHIP_ERROR err = CHIP_NO_ERROR;
     SetRequestorInstance(&gRequestorCore);
+    ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage());
     gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader);
     gImageProcessor.SetOTADownloader(&gDownloader);
     gDownloader.SetImageProcessorDelegate(&gImageProcessor);
+
     gRequestorUser.Init(&gRequestorCore, &gImageProcessor);
 
-    uint32_t savedSoftwareVersion;
-    err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion);
-    if (err != CHIP_NO_ERROR)
-    {
-        P6_LOG("Can't get saved software version");
-        appError(err);
-    }
-
-    if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION)
-    {
-        ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-
-        P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-        chip::OTARequestorInterface * requestor = chip::GetRequestorInstance();
-        if (requestor != nullptr)
-        {
-            requestor->NotifyUpdateApplied();
-        }
-    }
-
     P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-    P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
+    P6_LOG("Current Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
 }
 #endif
diff --git a/examples/all-clusters-app/p6/src/main.cpp b/examples/all-clusters-app/p6/src/main.cpp
index d365f9f..7f38b51 100644
--- a/examples/all-clusters-app/p6/src/main.cpp
+++ b/examples/all-clusters-app/p6/src/main.cpp
@@ -143,7 +143,7 @@
 #endif
 
     P6_LOG("==================================================\r\n");
-    P6_LOG("chip-p6-all-clusters-example starting\r\n");
+    P6_LOG("chip-p6-all-clusters-example starting Version %d\r\n", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     P6_LOG("==================================================\r\n");
 
     /* Start the FreeRTOS scheduler */
diff --git a/examples/all-clusters-minimal-app/p6/BUILD.gn b/examples/all-clusters-minimal-app/p6/BUILD.gn
index b7e60c5..980085b 100644
--- a/examples/all-clusters-minimal-app/p6/BUILD.gn
+++ b/examples/all-clusters-minimal-app/p6/BUILD.gn
@@ -75,8 +75,6 @@
 
   if (build_update_image) {
     defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ]
-  } else {
-    defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ]
   }
 }
 
@@ -98,23 +96,6 @@
   public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
 
   if (chip_enable_ota_requestor) {
-    sources += [
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
-    ]
-    include_dirs += [
-      "${p6_sdk_root}/ota/config",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/sysflash/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/include",
-    ]
     public_configs += [ ":p6_ota_config" ]
   }
 }
diff --git a/examples/all-clusters-minimal-app/p6/README.md b/examples/all-clusters-minimal-app/p6/README.md
index c6b752d..730891c 100644
--- a/examples/all-clusters-minimal-app/p6/README.md
+++ b/examples/all-clusters-minimal-app/p6/README.md
@@ -53,16 +53,13 @@
 
 *   Build the example application:
 
-          ```
-          $ ./scripts/examples/gn_p6_example.sh ./examples/all-clusters-minimal-app/p6 out/minimal_clusters_app_p6
-          ```
+          $ source scripts/activate.sh
+          $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-all-clusters-minimal' build
 
 -   To delete generated executable, libraries and object files use:
 
-          ```
           $ cd ~/connectedhomeip
           $ rm -rf out/
-          ```
 
 <a name="flashing"></a>
 
@@ -74,10 +71,8 @@
 
 -   On the command line:
 
-          ```
           $ cd ~/connectedhomeip
-          $ python3 out/clusters_app_p6/chip-p6-clusters-minimal-example.flash.py
-          ```
+          $ python3 out/infineon-p6-all-clusters-minimal/chip-p6-clusters-minimal-example.flash.py
 
 <a name="Commissioning and cluster control"></a>
 
@@ -94,16 +89,12 @@
 
 -   Set up python controller.
 
-           ```
            $ cd {path-to-connectedhomeip}
            $ ./scripts/examples/gn_build_example.sh examples/chip-tool out/debug
-           ```
 
 -   Execute the controller.
 
-           ```
            $ ./out/debug/chip-tool
-           ```
 
 <a name="Commissioning over BLE"></a>
 
@@ -112,7 +103,6 @@
 Run the built executable and pass it the discriminator and pairing code of the
 remote device, as well as the network credentials to use.
 
-         ```
          $ ./out/debug/chip-tool pairing ble-wifi 1234 ${SSID} ${PASSWORD} 20202021 3840
 
          Parameters:
@@ -121,7 +111,6 @@
          3. Node ID: 1234 (you can assign any node id)
          4. SSID : Wi-Fi SSID
          5. PASSWORD : Wi-Fi Password
-         ```
 
 <a name="Notes"></a>
 
@@ -130,11 +119,9 @@
 Raspberry Pi 4 BLE connection issues can be avoided by running the following
 commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
 
-          ```
-          sudo btmgmt -i hci0 power off
-          sudo btmgmt -i hci0 bredr off
-          sudo btmgmt -i hci0 power on
-          ```
+          $ sudo btmgmt -i hci0 power off
+          $ sudo btmgmt -i hci0 bredr off
+          $ sudo btmgmt -i hci0 power on
 
 ## OTA Software Update
 
diff --git a/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h b/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h
index f582a28..69252cf 100644
--- a/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h
+++ b/examples/all-clusters-minimal-app/p6/include/CHIPProjectConfig.h
@@ -38,6 +38,21 @@
 #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
 #endif
 
+/* The ProductID attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8004
+
+/* The ProductName attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "P6-CYW43012 Clusters Minimal"
+
+/* The HardwareVersionString attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "P6-43012"
+
+/* The HardwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION 43012
+
+/* The SoftwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 1
+
 // For convenience, Chip Security Test Mode can be enabled and the
 // requirement for authentication in various protocols can be disabled.
 //
@@ -54,7 +69,7 @@
  * physical device, a change to its packaging, and/or a change to its marketing presentation.
  * This value is generally *not* incremented for device software versions.
  */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1
+#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 43012
 
 /**
  * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
@@ -64,7 +79,7 @@
  * {MAJOR_VERSION}.0d{MINOR_VERSION}
  */
 #ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "1.0"
 #endif
 /**
  * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
diff --git a/examples/all-clusters-minimal-app/p6/ota_base_build.sh b/examples/all-clusters-minimal-app/p6/ota_base_build.sh
deleted file mode 100755
index c49fad5..0000000
--- a/examples/all-clusters-minimal-app/p6/ota_base_build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-OUT_DIR=out/all-clusters-minimal-app/
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-scripts/examples/gn_p6_example.sh examples/all-clusters-minimal-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true
-
-mv "$OUT_DIR"/chip-p6-clusters-minimal-example.hex "$OUT_DIR"/chip-p6-clusters-minimal-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-minimal-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy ""
diff --git a/examples/all-clusters-minimal-app/p6/ota_update_build.sh b/examples/all-clusters-minimal-app/p6/ota_update_build.sh
deleted file mode 100755
index 2aa7902..0000000
--- a/examples/all-clusters-minimal-app/p6/ota_update_build.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-OUT_DIR=out/all-clusters-minimal-app-ota
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-./scripts/examples/gn_p6_example.sh examples/all-clusters-minimal-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true
-
-mv "$OUT_DIR"/chip-p6-clusters-minimal-example.hex "$OUT_DIR"/chip-p6-clusters-minimal-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-clusters-minimal-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem"
-
-if [ -f "$OUT_DIR"/chip-p6-clusters-minimal-example.ota ]; then
-    rm "$OUT_DIR"/chip-p6-clusters-minimal-example.ota
-fi
-src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-clusters-minimal-example.bin "$OUT_DIR"/chip-p6-clusters-minimal-example.ota
diff --git a/examples/all-clusters-minimal-app/p6/src/AppTask.cpp b/examples/all-clusters-minimal-app/p6/src/AppTask.cpp
index c8717c3..b8b51b9 100644
--- a/examples/all-clusters-minimal-app/p6/src/AppTask.cpp
+++ b/examples/all-clusters-minimal-app/p6/src/AppTask.cpp
@@ -50,9 +50,7 @@
 #include <app/clusters/ota-requestor/DefaultOTARequestorDriver.h>
 #include <app/clusters/ota-requestor/DefaultOTARequestorStorage.h>
 #include <platform/P6/OTAImageProcessorImpl.h>
-extern "C" {
-#include "cy_smif_psoc6.h"
-}
+
 using chip::BDXDownloader;
 using chip::CharSpan;
 using chip::DefaultOTARequestor;
@@ -60,7 +58,7 @@
 using chip::GetRequestorInstance;
 using chip::NodeId;
 using chip::OTADownloader;
-using chip::OTAImageProcessorImpl;
+using chip::DeviceLayer::OTAImageProcessorImpl;
 using chip::System::Layer;
 
 using namespace ::chip;
@@ -314,35 +312,16 @@
 #if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
 void AppTask::InitOTARequestor()
 {
-    CHIP_ERROR err = CHIP_NO_ERROR;
     SetRequestorInstance(&gRequestorCore);
+    ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage());
     gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader);
     gImageProcessor.SetOTADownloader(&gDownloader);
     gDownloader.SetImageProcessorDelegate(&gImageProcessor);
+
     gRequestorUser.Init(&gRequestorCore, &gImageProcessor);
 
-    uint32_t savedSoftwareVersion;
-    err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion);
-    if (err != CHIP_NO_ERROR)
-    {
-        P6_LOG("Can't get saved software version");
-        appError(err);
-    }
-
-    if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION)
-    {
-        ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-
-        P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-        chip::OTARequestorInterface * requestor = chip::GetRequestorInstance();
-        if (requestor != nullptr)
-        {
-            requestor->NotifyUpdateApplied();
-        }
-    }
-
     P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-    P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
+    P6_LOG("Current Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
 }
 #endif
diff --git a/examples/all-clusters-minimal-app/p6/src/main.cpp b/examples/all-clusters-minimal-app/p6/src/main.cpp
index d365f9f..7f38b51 100644
--- a/examples/all-clusters-minimal-app/p6/src/main.cpp
+++ b/examples/all-clusters-minimal-app/p6/src/main.cpp
@@ -143,7 +143,7 @@
 #endif
 
     P6_LOG("==================================================\r\n");
-    P6_LOG("chip-p6-all-clusters-example starting\r\n");
+    P6_LOG("chip-p6-all-clusters-example starting Version %d\r\n", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     P6_LOG("==================================================\r\n");
 
     /* Start the FreeRTOS scheduler */
diff --git a/examples/lighting-app/p6/BUILD.gn b/examples/lighting-app/p6/BUILD.gn
index d109d59..b0619c0 100644
--- a/examples/lighting-app/p6/BUILD.gn
+++ b/examples/lighting-app/p6/BUILD.gn
@@ -75,8 +75,6 @@
 
   if (build_update_image) {
     defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ]
-  } else {
-    defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ]
   }
 }
 
@@ -97,23 +95,6 @@
   public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
 
   if (chip_enable_ota_requestor) {
-    sources += [
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
-    ]
-    include_dirs += [
-      "${p6_sdk_root}/ota/config",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/sysflash/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/include",
-    ]
     public_configs += [ ":p6_ota_config" ]
   }
 }
diff --git a/examples/lighting-app/p6/README.md b/examples/lighting-app/p6/README.md
index 45d536e..e37894e 100644
--- a/examples/lighting-app/p6/README.md
+++ b/examples/lighting-app/p6/README.md
@@ -50,7 +50,8 @@
 
 *   Build the example application:
 
-          $ ./scripts/examples/gn_p6_example.sh ./examples/lighting-app/p6 out/lighting_app_p6
+          $ source scripts/activate.sh
+          $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-light' build
 
 -   To delete generated executable, libraries and object files use:
 
@@ -68,7 +69,7 @@
 -   On the command line:
 
           $ cd ~/connectedhomeip
-          $ python3 out/lighting_app_p6/chip-p6-lock-example.flash.py
+          $ python3 out/infineon-p6-light/chip-p6-lighting-example.flash.py
 
 <a name="Commissioning and cluster control"></a>
 
diff --git a/examples/lighting-app/p6/include/CHIPProjectConfig.h b/examples/lighting-app/p6/include/CHIPProjectConfig.h
index 2609a42..60aa10e 100644
--- a/examples/lighting-app/p6/include/CHIPProjectConfig.h
+++ b/examples/lighting-app/p6/include/CHIPProjectConfig.h
@@ -47,7 +47,22 @@
 #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
 #endif
 
-// define Device type based on the application
+/* The ProductID attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005
+
+/* The ProductName attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "P6-CYW43012 Light"
+
+/* The HardwareVersionString attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "P6-43012"
+
+/* The HardwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION 43012
+
+/* The SoftwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 1
+
+/* define Device type based on the application */
 #define CHIP_DEVICE_CONFIG_DEVICE_TYPE 257 // 0x0101  Dimmable Bulb
 
 // For convenience, Chip Security Test Mode can be enabled and the
@@ -76,7 +91,7 @@
  * {MAJOR_VERSION}.0d{MINOR_VERSION}
  */
 #ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "1.0"
 #endif
 /**
  * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
diff --git a/examples/lighting-app/p6/ota_base_build.sh b/examples/lighting-app/p6/ota_base_build.sh
deleted file mode 100755
index 5cdaf4d..0000000
--- a/examples/lighting-app/p6/ota_base_build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-OUT_DIR=out/lighting-app/
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-scripts/examples/gn_p6_example.sh examples/lighting-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true
-
-mv "$OUT_DIR"/chip-p6-lighting-example.hex "$OUT_DIR"/chip-p6-lighting-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lighting-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy ""
diff --git a/examples/lighting-app/p6/ota_update_build.sh b/examples/lighting-app/p6/ota_update_build.sh
deleted file mode 100755
index 1c5c301..0000000
--- a/examples/lighting-app/p6/ota_update_build.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-OUT_DIR=out/lighting-app-ota
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-./scripts/examples/gn_p6_example.sh examples/lighting-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true
-
-mv "$OUT_DIR"/chip-p6-lighting-example.hex "$OUT_DIR"/chip-p6-lighting-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lighting-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem"
-
-if [ -f "$OUT_DIR"/chip-p6-lighting-example.ota ]; then
-    rm "$OUT_DIR"/chip-p6-lighting-example.ota
-fi
-
-src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-lighting-example.bin "$OUT_DIR"/chip-p6-lighting-example.ota
diff --git a/examples/lighting-app/p6/src/AppTask.cpp b/examples/lighting-app/p6/src/AppTask.cpp
index d6a92f2..9e465ec 100644
--- a/examples/lighting-app/p6/src/AppTask.cpp
+++ b/examples/lighting-app/p6/src/AppTask.cpp
@@ -48,9 +48,7 @@
 #include <app/clusters/ota-requestor/DefaultOTARequestorDriver.h>
 #include <app/clusters/ota-requestor/DefaultOTARequestorStorage.h>
 #include <platform/P6/OTAImageProcessorImpl.h>
-extern "C" {
-#include "cy_smif_psoc6.h"
-}
+
 using chip::BDXDownloader;
 using chip::CharSpan;
 using chip::DefaultOTARequestor;
@@ -58,7 +56,7 @@
 using chip::GetRequestorInstance;
 using chip::NodeId;
 using chip::OTADownloader;
-using chip::OTAImageProcessorImpl;
+using chip::DeviceLayer::OTAImageProcessorImpl;
 using chip::System::Layer;
 
 using namespace ::chip;
@@ -572,35 +570,16 @@
 #if CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR
 void AppTask::InitOTARequestor()
 {
-    CHIP_ERROR err = CHIP_NO_ERROR;
     SetRequestorInstance(&gRequestorCore);
+    ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage());
     gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader);
     gImageProcessor.SetOTADownloader(&gDownloader);
     gDownloader.SetImageProcessorDelegate(&gImageProcessor);
+
     gRequestorUser.Init(&gRequestorCore, &gImageProcessor);
 
-    uint32_t savedSoftwareVersion;
-    err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion);
-    if (err != CHIP_NO_ERROR)
-    {
-        P6_LOG("Can't get saved software version");
-        appError(err);
-    }
-
-    if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION)
-    {
-        ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-
-        P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-        chip::OTARequestorInterface * requestor = chip::GetRequestorInstance();
-        if (requestor != nullptr)
-        {
-            requestor->NotifyUpdateApplied();
-        }
-    }
-
     P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-    P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
+    P6_LOG("Current Software Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
 }
 #endif
diff --git a/examples/lighting-app/p6/src/main.cpp b/examples/lighting-app/p6/src/main.cpp
index 8e4105b..9c5daa7 100644
--- a/examples/lighting-app/p6/src/main.cpp
+++ b/examples/lighting-app/p6/src/main.cpp
@@ -142,7 +142,7 @@
 #endif
 
     P6_LOG("==================================================\r\n");
-    P6_LOG("chip-p6-lighting-example starting\r\n");
+    P6_LOG("chip-p6-lighting-example starting Version %d\r\n", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     P6_LOG("==================================================\r\n");
 
     /* Start the FreeRTOS scheduler */
diff --git a/examples/lock-app/p6/BUILD.gn b/examples/lock-app/p6/BUILD.gn
index 1468498..d2c45b8 100644
--- a/examples/lock-app/p6/BUILD.gn
+++ b/examples/lock-app/p6/BUILD.gn
@@ -72,8 +72,6 @@
 
   if (build_update_image) {
     defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ]
-  } else {
-    defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ]
   }
 }
 p6_sdk_sources("lock_app_sdk_sources") {
@@ -94,23 +92,6 @@
   public_configs = [ "${chip_root}/third_party/p6:p6_sdk_config" ]
 
   if (chip_enable_ota_requestor) {
-    sources += [
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
-    ]
-    include_dirs += [
-      "${p6_sdk_root}/ota/config",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/sysflash/",
-      "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/include",
-    ]
     public_configs += [ ":p6_ota_config" ]
   }
 }
diff --git a/examples/lock-app/p6/README.md b/examples/lock-app/p6/README.md
index 36b1ed1..3457822 100644
--- a/examples/lock-app/p6/README.md
+++ b/examples/lock-app/p6/README.md
@@ -50,7 +50,8 @@
 
 *   Build the example application:
 
-          $ ./scripts/examples/gn_p6_example.sh examples/lock-app/p6 out/lock_app_p6
+          $ source scripts/activate.sh
+          $ scripts/build/build_examples.py --no-log-timestamps --target 'infineon-p6-lock' build
 
 -   To delete generated executable, libraries and object files use:
 
@@ -68,7 +69,7 @@
 -   On the command line:
 
           $ cd ~/connectedhomeip
-          $ python3 out/lock_app_p6/chip-p6-lock-example.flash.py
+          $ python3 out/infineon-p6-lock/chip-p6-lock-example.flash.py
 
 <a name="Commissioning and cluster control"></a>
 
diff --git a/examples/lock-app/p6/include/CHIPProjectConfig.h b/examples/lock-app/p6/include/CHIPProjectConfig.h
index db1cfff..d6d5fe3 100644
--- a/examples/lock-app/p6/include/CHIPProjectConfig.h
+++ b/examples/lock-app/p6/include/CHIPProjectConfig.h
@@ -34,7 +34,22 @@
 #endif
 #define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
 
-// define Device type based on the application
+/* The ProductID attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8006
+
+/* The ProductName attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_NAME "P6-CYW43012 Lock"
+
+/* The HardwareVersionString attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION_STRING "P6-43012"
+
+/* The HardwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION 43012
+
+/* The SoftwareVersion attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 1
+
+/* define Device type based on the application */
 #define CHIP_DEVICE_CONFIG_DEVICE_TYPE 10 // 0x00A Door lock
 
 // For convenience, Chip Security Test Mode can be enabled and the
@@ -53,7 +68,7 @@
  * physical device, a change to its packaging, and/or a change to its marketing presentation.
  * This value is generally *not* incremented for device software versions.
  */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1
+#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 43012
 
 /**
  * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
@@ -63,7 +78,7 @@
  * {MAJOR_VERSION}.0d{MINOR_VERSION}
  */
 #ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
+#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "1.0"
 #endif
 /**
  * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
diff --git a/examples/lock-app/p6/ota_base_build.sh b/examples/lock-app/p6/ota_base_build.sh
deleted file mode 100755
index 7ab6e27..0000000
--- a/examples/lock-app/p6/ota_base_build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-OUT_DIR=out/lock-app/
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-scripts/examples/gn_p6_example.sh examples/lock-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true
-
-mv "$OUT_DIR"/chip-p6-lock-example.hex "$OUT_DIR"/chip-p6-lock-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lock-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy ""
diff --git a/examples/lock-app/p6/ota_update_build.sh b/examples/lock-app/p6/ota_update_build.sh
deleted file mode 100755
index ac5d674..0000000
--- a/examples/lock-app/p6/ota_update_build.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-OUT_DIR=out/lock-app-ota
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-./scripts/examples/gn_p6_example.sh examples/lock-app/p6 "$OUT_DIR" chip_enable_ota_requestor=true build_update_image=true
-
-mv "$OUT_DIR"/chip-p6-lock-example.hex "$OUT_DIR"/chip-p6-lock-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-lock-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem"
-
-if [ -f "$OUT_DIR"/chip-p6-lock-example.ota ]; then
-    rm "$OUT_DIR"/chip-p6-lock-example.ota
-fi
-
-src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-lock-example.bin "$OUT_DIR"/chip-p6-lock-example.ota
diff --git a/examples/lock-app/p6/src/AppTask.cpp b/examples/lock-app/p6/src/AppTask.cpp
index 7c4dd3d..f26dc79 100644
--- a/examples/lock-app/p6/src/AppTask.cpp
+++ b/examples/lock-app/p6/src/AppTask.cpp
@@ -56,9 +56,7 @@
 #include <app/clusters/ota-requestor/DefaultOTARequestorDriver.h>
 #include <app/clusters/ota-requestor/DefaultOTARequestorStorage.h>
 #include <platform/P6/OTAImageProcessorImpl.h>
-extern "C" {
-#include "cy_smif_psoc6.h"
-}
+
 using chip::BDXDownloader;
 using chip::CharSpan;
 using chip::DefaultOTARequestor;
@@ -284,11 +282,11 @@
     sLockLED.Init(LOCK_STATE_LED);
     if (state.Value() == DlLockState::kUnlocked)
     {
-        sLockLED.Set(true);
+        sLockLED.Set(false);
     }
     else
     {
-        sLockLED.Set(false);
+        sLockLED.Set(true);
     }
 
     ConfigurationMgr().LogDeviceConfig();
@@ -663,11 +661,12 @@
 void AppTask::InitOTARequestor()
 {
     SetRequestorInstance(&gRequestorCore);
+    ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage());
     gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader);
     gImageProcessor.SetOTADownloader(&gDownloader);
     gDownloader.SetImageProcessorDelegate(&gImageProcessor);
-    ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
+
     gRequestorUser.Init(&gRequestorCore, &gImageProcessor);
 
     P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
diff --git a/examples/lock-app/p6/src/main.cpp b/examples/lock-app/p6/src/main.cpp
index 6b4e07c..f998b3c 100644
--- a/examples/lock-app/p6/src/main.cpp
+++ b/examples/lock-app/p6/src/main.cpp
@@ -136,7 +136,7 @@
 #endif
 
     P6_LOG("==================================================\r\n");
-    P6_LOG("chip-p6-lock-example starting\r\n");
+    P6_LOG("chip-p6-lock-example starting Version %d\r\n", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
     P6_LOG("==================================================\r\n");
 
     /* Start the FreeRTOS scheduler */
diff --git a/examples/ota-requestor-app/p6/.gn b/examples/ota-requestor-app/p6/.gn
deleted file mode 100644
index 81cec9d..0000000
--- a/examples/ota-requestor-app/p6/.gn
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-import("//build_overrides/build.gni")
-
-# The location of the build configuration file.
-buildconfig = "${build_root}/config/BUILDCONFIG.gn"
-
-# CHIP uses angle bracket includes.
-check_system_includes = true
-
-default_args = {
-  target_cpu = "arm"
-  target_os = "freertos"
-
-  import("//args.gni")
-}
diff --git a/examples/ota-requestor-app/p6/BUILD.gn b/examples/ota-requestor-app/p6/BUILD.gn
deleted file mode 100644
index d370d72..0000000
--- a/examples/ota-requestor-app/p6/BUILD.gn
+++ /dev/null
@@ -1,174 +0,0 @@
-# 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.
-
-import("//build_overrides/build.gni")
-import("//build_overrides/chip.gni")
-import("//build_overrides/p6.gni")
-
-import("${build_root}/config/defaults.gni")
-import("${p6_sdk_build_root}/p6_executable.gni")
-import("${p6_sdk_build_root}/p6_sdk.gni")
-
-assert(current_os == "freertos")
-
-p6_project_dir = "${chip_root}/examples/ota-requestor-app/p6"
-examples_plat_dir = "${chip_root}/examples/platform/p6"
-
-declare_args() {
-  # Dump memory usage at link time.
-  chip_print_memory_usage = false
-
-  # PIN code for PASE session establishment.
-  setup_pin_code = 20202021
-
-  # Monitor & log memory usage at runtime.
-  enable_heap_monitoring = false
-
-  # Build update app
-  build_update_image = false
-}
-
-config("p6_ota_config") {
-  linker_script = "${p6_sdk_root}/ota/cy8c6xxa_cm4_dual_ota_int.ld"
-
-  ldflags = [ "-T" + rebase_path(linker_script, root_build_dir) ]
-
-  ldflags += [ "-Wl,--defsym,MCUBOOT_HEADER_SIZE=0x400,--defsym,MCUBOOT_BOOTLOADER_SIZE=0x18000,--defsym,CY_BOOT_PRIMARY_1_SIZE=0x1C0000" ]
-
-  defines = [
-    "P6_OTA",
-    "OTA_SUPPORT ",
-    "OTA_USE_EXTERNAL_FLASH",
-    "CY_BOOT_USE_EXTERNAL_FLASH",
-    "MCUBOOT_HEADER_SIZE=0x400",
-    "MCUBOOT_MAX_IMG_SECTORS=3584",
-    "CY_BOOT_SCRATCH_SIZE=0x00004000",
-    "MCUBOOT_BOOTLOADER_SIZE=0x00018000",
-    "CY_BOOT_BOOTLOADER_SIZE=0x00018000",
-    "CY_BOOT_PRIMARY_1_START=0x00018000",
-    "CY_BOOT_PRIMARY_1_SIZE=0x1C0000",
-    "CY_BOOT_SECONDARY_1_START=0x00000000",
-    "CY_BOOT_SECONDARY_1_SIZE=0x001C0000",
-    "CY_FLASH_ERASE_VALUE=0xFF",
-    "MCUBOOT_IMAGE_NUMBER=1",
-    "MCUBOOT_SLOT_SIZE=0x1C0000",
-    "MCUBOOT_SCRATCH_SIZE=0x4000",
-    "MCUBOOT_SECTOR_SIZE = 512",
-    "APP_VERSION_MAJOR=1",
-    "APP_VERSION_MINOR=0",
-    "APP_VERSION_BUILD=0",
-    "MCUBOOT_OVERWRITE_ONLY",
-    "CY_ENABLE_XIP_PROGRAM",
-  ]
-
-  if (build_update_image) {
-    defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=2" ]
-  } else {
-    defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION=1" ]
-  }
-}
-
-# Warning: Don't change the name of this target without also modifying
-# third_party/p6/BUILD.gn and third_party/p6/p6_sdk.gn. There are conditionals
-# relying on this name.
-p6_sdk_sources("ota_requestor_app_sdk_sources") {
-  include_dirs = [
-    "${chip_root}/src/platform/P6",
-    "${p6_project_dir}/include",
-    "${examples_plat_dir}",
-    "${p6_sdk_root}/ota/config",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/include/flash_map_backend/",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/sysflash/",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/include",
-  ]
-
-  defines = [
-    "BOARD_ID=${p6_board}",
-    "P6_LOG_ENABLED=1",
-    "CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE=${setup_pin_code}",
-  ]
-
-  sources = [
-    "${p6_project_dir}/include/CHIPProjectConfig.h",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/bootutil/src/bootutil_misc.c",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_map.c",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/cy_smif_psoc6.c",
-    "${p6_sdk_root}/libs/anycloud-ota/source/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
-  ]
-
-  public_configs = [
-    "${chip_root}/third_party/p6:p6_sdk_config",
-    ":p6_ota_config",
-  ]
-}
-
-p6_executable("ota_requestor_app") {
-  include_dirs = []
-  defines = []
-  output_name = "chip-p6-ota-requestor-example.out"
-
-  sources = [
-    "${examples_plat_dir}/LEDWidget.cpp",
-    "${examples_plat_dir}/init_p6Platform.cpp",
-    "src/AppTask.cpp",
-    "src/ButtonHandler.cpp",
-    "src/ZclCallbacks.cpp",
-    "src/main.cpp",
-  ]
-
-  deps = [
-    ":ota_requestor_app_sdk_sources",
-    "${chip_root}/examples/common/QRCode",
-    "${chip_root}/examples/ota-requestor-app/ota-requestor-common",
-    "${chip_root}/src/app/server",
-    "${chip_root}/src/lib",
-    "${chip_root}/src/setup_payload",
-  ]
-
-  include_dirs += [
-    "include",
-    "${examples_plat_dir}",
-    "${p6_project_dir}/include",
-    "${chip_root}/examples/ota-requestor-app/ota-requestor-common/include",
-  ]
-
-  defines = []
-
-  if (enable_heap_monitoring) {
-    sources += [ "${examples_plat_dir}/MemMonitoring.cpp" ]
-    defines += [ "HEAP_MONITORING" ]
-  }
-
-  if (chip_print_memory_usage) {
-    ldflags += [
-      "-Wl,--print-memory-usage",
-      "-fstack-usage",
-    ]
-  }
-
-  output_dir = root_out_dir
-}
-
-group("p6") {
-  deps = [ ":ota_requestor_app" ]
-}
-
-group("default") {
-  deps = [ ":p6" ]
-}
diff --git a/examples/ota-requestor-app/p6/README.md b/examples/ota-requestor-app/p6/README.md
deleted file mode 100644
index dc58d3d..0000000
--- a/examples/ota-requestor-app/p6/README.md
+++ /dev/null
@@ -1,138 +0,0 @@
-#CHIP P6 OTA Requestor Example
-
-An example demonstrating the OTA Requestor cluster on a Infineon
-CY8CKIT-062S2-43012 board.
-
-<hr>
-
--   [Matter P6 OTA Requestor Example](#chip-p6-ota-requestor-example)
-    -   [Introduction](#introduction)
-    -   [Building](#building)
-    -   [Flashing the Application](#flashing-the-application)
-    -   [Running OTA Update Process](#running-ota-update-process)
-    -   [Notes](#notes)
-
-<hr>
-
-<a name="introduction"></a>
-
-## Introduction
-
-The P6 OTA Requestor example provides a baseline demonstration of a OTA
-requestor device, built using Matter and the Infineon Modustoolbox SDK. It can
-be controlled by Matter controller over Wi-Fi network.
-
-The P6 device can be commissioned over Bluetooth Low Energy where the device and
-the Matter controller will exchange security information with the Rendezvous
-procedure. Wi-Fi Network credentials are then provided to the P6 device which
-will then join the network.
-
-<a name="building"></a>
-
-## Building
-
--   [Modustoolbox Software](https://www.cypress.com/products/modustoolbox)
-
-    Refer to `integrations/docker/images/chip-build-infineon/Dockerfile` or
-    `scripts/examples/gn_p6_example.sh` for downloading the Software and related
-    tools.
-
--   Install some additional tools (likely already present for Matter
-    developers): \$ sudo apt install gcc g++ clang ninja-build python
-    python3-venv libssl-dev libavahi-client-dev libglib2.0-dev git cmake
-    python3-pip
-
--   Supported hardware:
-    [CY8CKIT-062S2-43012](https://www.cypress.com/CY8CKIT-062S2-43012)
-
-*   The following applications must be built to demonstrate the OTA process:
-
-          - The P6 OTA Requestor App
-          - The Updated P6 OTA Requestor App (or other app)
-          - An OTA Provider App (the Linux ota-provider app is used here)
-          - chip-tool
-
-*   Build the P6 OTA Requestor application from the chip root dir:
-
-          $ ./examples/ota-requestor-app/p6/ota_base_build.sh
-
-*   Build the P6 OTA Update application from the chip root dir:
-
-          $ ./examples/ota-requestor-app/p6/ota_update_build.sh
-
-*   On a RPi4: Build the Linux OTA Provider application from the chip root dir:
-
-          $ ./scripts/examples/gn_build_example.sh examples/ota-provider-app/linux/ out/ota_provider_debug/ chip_config_network_layer_ble=false
-
-*   On a RPi4: Build chip-tool:
-
-          $ ./scripts/examples/gn_build_example.sh examples/chip-tool/ out/chip-tool/
-
-*   Additionally a pre-compiled bootloader must be flashed to the board. This
-    can be found at:
-
-          $ ./third_party/p6/p6_sdk/ota/matter-psoc6-mcuboot-bootloader.hex
-
-<a name="flashing-the-application"></a>
-
-## Flashing the Application
-
--   Flash the bootloader by first putting the CY8CKIT-062S2-43012 board into
-    KitProg3 DAPLINK Mode by pressing the `MODE SELECT` button.
-    `KITPROG3 STATUS` LED will blink to indicate the the board is in the proper
-    mode. A drive named 'DAPLINK' should be automatically mounted. To flash
-    drag-and-drop matter-psoc6-mcuboot-bootloader.hex into that drive.
-
--   Put CY8CKIT-062S2-43012 board back into KitProg3 CMSIS-DAP Mode by pressing
-    the `MODE SELECT` button. `KITPROG3 STATUS` LED is ON confirms board is in
-    proper mode.
-
--   On the command line:
-
-          $ cd ~/connectedhomeip
-          $ python3 out/ota_requestor_debug/chip-p6-ota-requestor-example.flash.py
-
-<a name="running-ota-update-process"></a>
-
-### Running OTA Update Process
-
--   Make sure the ota-requestor-app is flashed and booting on the
-    CY8CKIT-062S2-43012.
-
--   Transfer out/ota_requestor_update_debug/chip-p6-ota-requestor-example.bin to
-    a RPi4.
-
--   On the RPi: In terminal 1 run the Linux ota-provider-app as follows:
-
-        $ ./out/ota_provider_debug/chip-ota-provider-app -f chip-p6-ota-requestor-example.bin
-
--   On the RPi: In terminal 2 run the following chip-tool commands
-
-        $ ./out/chip-tool/chip-tool pairing ble-wifi 2 "<SSID>" "<PASSWORD>" 20202021 3840
-
-        $ ./out/chip-tool/chip-tool pairing onnetwork 1 20202021
-
-        $ ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1, 2], "targets": [{"cluster": null, "endpoint": 0, "deviceType": null}]}]' 1 0
-
-        $ ./chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1, 2], "targets": [{"cluster": null, "endpoint": 0, "deviceType": null}]}]' 2 0
-
-        $ ./chip-tool otasoftwareupdaterequestor write default-ota-providers '[{"fabricIndex": 1, "providerNodeID": 1, "endpoint": 0}]' 2 0
-
--   Press user button 1 on the CY8CKIT-062S2-43012. This will trigger a
-    query-image call from the board using the default ota provider list written
-    in the above commands.
-
--   Using a serial emulator reading from the CY8CKIT-062S2-43012, you should
-    observe the updated application being transferred to the board, written to
-    flash, and, when completed, booted into.
-
-<a name="notes"></a>
-
-#### Notes
-
-Raspberry Pi 4 BLE connection issues can be avoided by running the following
-commands. These power cycle the BlueTooth hardware and disable BR/EDR mode.
-
-          $ sudo btmgmt -i hci0 power off
-          $ sudo btmgmt -i hci0 bredr off
-          $ sudo btmgmt -i hci0 power on
diff --git a/examples/ota-requestor-app/p6/args.gni b/examples/ota-requestor-app/p6/args.gni
deleted file mode 100644
index 8505c08..0000000
--- a/examples/ota-requestor-app/p6/args.gni
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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.
-
-import("//build_overrides/chip.gni")
-import("//build_overrides/pigweed.gni")
-import("${chip_root}/src/platform/P6/args.gni")
-
-chip_enable_ota_requestor = true
-
-p6_target_project =
-    get_label_info(":ota_requestor_app_sdk_sources", "label_no_toolchain")
diff --git a/examples/ota-requestor-app/p6/build_overrides b/examples/ota-requestor-app/p6/build_overrides
deleted file mode 120000
index 194ee0b..0000000
--- a/examples/ota-requestor-app/p6/build_overrides
+++ /dev/null
@@ -1 +0,0 @@
-../../build_overrides/
\ No newline at end of file
diff --git a/examples/ota-requestor-app/p6/include/AppConfig.h b/examples/ota-requestor-app/p6/include/AppConfig.h
deleted file mode 100644
index a7b2502..0000000
--- a/examples/ota-requestor-app/p6/include/AppConfig.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 Google LLC.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#pragma once
-
-#include "cybsp.h"
-#include "cyhal.h"
-
-// ---- OTA Requestor Example App Config ----
-
-#define APP_TASK_NAME "APP"
-
-#define APP_UPDATE_BUTTON_IDX 0
-#define APP_FUNCTION_BUTTON_IDX 1
-
-#define APP_UPDATE_BUTTON CYBSP_USER_BTN1
-#define APP_FUNCTION_BUTTON CYBSP_USER_BTN2
-#define APP_BUTTON_DEBOUNCE_PERIOD_MS 50
-
-#define APP_BUTTON_PRESSED 0
-#define APP_BUTTON_RELEASED 1
-
-#define SYSTEM_STATE_LED CYBSP_USER_LED1
-#define UPDATE_LED CYBSP_USER_LED2
-
-// Time it takes in ms for the simulated actuator to move from one
-// state to another.
-#define ACTUATOR_MOVEMENT_PERIOS_MS 2000
-
-// ---- Thread Polling Config ----
-#define THREAD_ACTIVE_POLLING_INTERVAL_MS 100
-#define THREAD_INACTIVE_POLLING_INTERVAL_MS 1000
-
-// P6 Logging
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void appError(int err);
-void P6Log(const char * aFormat, ...);
-#define P6_LOG(...) P6Log(__VA_ARGS__)
-
-#ifdef __cplusplus
-}
-
-#include <lib/core/CHIPError.h>
-void appError(CHIP_ERROR error);
-#endif
diff --git a/examples/ota-requestor-app/p6/include/AppEvent.h b/examples/ota-requestor-app/p6/include/AppEvent.h
deleted file mode 100644
index 671a1be..0000000
--- a/examples/ota-requestor-app/p6/include/AppEvent.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2018 Nest Labs, Inc.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#pragma once
-
-struct AppEvent;
-typedef void (*EventHandler)(AppEvent *);
-
-struct AppEvent
-{
-    enum AppEventTypes
-    {
-        kEventType_Button = 0,
-        kEventType_Timer,
-        kEventType_Light,
-        kEventType_Install,
-    };
-
-    uint16_t Type;
-
-    union
-    {
-        struct
-        {
-            uint8_t ButtonIdx;
-            uint8_t Action;
-        } ButtonEvent;
-        struct
-        {
-            void * Context;
-        } TimerEvent;
-    };
-
-    EventHandler Handler;
-};
diff --git a/examples/ota-requestor-app/p6/include/AppTask.h b/examples/ota-requestor-app/p6/include/AppTask.h
deleted file mode 100644
index c460807..0000000
--- a/examples/ota-requestor-app/p6/include/AppTask.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 Google LLC.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#pragma once
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#include "AppEvent.h"
-#include "FreeRTOS.h"
-#include "timers.h" // provides FreeRTOS timer support
-#include <ble/BLEEndPoint.h>
-#include <platform/CHIPDeviceLayer.h>
-
-// Application-defined error codes in the CHIP_ERROR space.
-#define APP_ERROR_EVENT_QUEUE_FAILED CHIP_APPLICATION_ERROR(0x01)
-#define APP_ERROR_CREATE_TASK_FAILED CHIP_APPLICATION_ERROR(0x02)
-#define APP_ERROR_UNHANDLED_EVENT CHIP_APPLICATION_ERROR(0x03)
-#define APP_ERROR_CREATE_TIMER_FAILED CHIP_APPLICATION_ERROR(0x04)
-#define APP_ERROR_START_TIMER_FAILED CHIP_APPLICATION_ERROR(0x05)
-#define APP_ERROR_STOP_TIMER_FAILED CHIP_APPLICATION_ERROR(0x06)
-
-class AppTask
-{
-
-public:
-    CHIP_ERROR StartAppTask();
-    static void AppTaskMain(void * pvParameter);
-
-    void PostEvent(const AppEvent * event);
-
-    void ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction);
-    void InitOTARequestor();
-
-private:
-    friend AppTask & GetAppTask(void);
-
-    CHIP_ERROR Init();
-
-    void CancelTimer(void);
-
-    void DispatchEvent(AppEvent * event);
-
-    static void FunctionTimerEventHandler(AppEvent * aEvent);
-    static void UpdateButtonHandler(AppEvent * aEvent);
-    static void FunctionHandler(AppEvent * aEvent);
-    static void TimerEventHandler(TimerHandle_t xTimer);
-
-    static void UpdateClusterState(void);
-
-    void StartTimer(uint32_t aTimeoutMs);
-
-    enum class Function
-    {
-        kNoneSelected   = 0,
-        kSoftwareUpdate = 0,
-        kStartBleAdv    = 1,
-        kFactoryReset   = 2,
-
-        kInvalid
-    };
-
-    Function mFunction              = Function::kNoneSelected;
-    bool mFunctionTimerActive       = false;
-    bool mSyncClusterToButtonAction = false;
-
-    static AppTask sAppTask;
-};
-
-inline AppTask & GetAppTask(void)
-{
-    return AppTask::sAppTask;
-}
diff --git a/examples/ota-requestor-app/p6/include/ButtonHandler.h b/examples/ota-requestor-app/p6/include/ButtonHandler.h
deleted file mode 100644
index ea509ca..0000000
--- a/examples/ota-requestor-app/p6/include/ButtonHandler.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 Google LLC.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#pragma once
-
-#include <stdint.h>
-
-#include "FreeRTOS.h"
-#include "cyhal.h"
-#include "timers.h" // provides FreeRTOS timer support
-
-#define GPIO_INTERRUPT_PRIORITY (5)
-
-class ButtonHandler
-{
-public:
-    static void Init(void);
-
-private:
-    static void GpioInit(void);
-    static void update_button_callback(void * handler_arg, cyhal_gpio_event_t event);
-    static void func_button_callback(void * handler_arg, cyhal_gpio_event_t event);
-    static void TimerCallback(TimerHandle_t xTimer);
-};
diff --git a/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h b/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h
deleted file mode 100644
index c3ef134..0000000
--- a/examples/ota-requestor-app/p6/include/CHIPProjectConfig.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 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
- *          Example project configuration file for CHIP.
- *
- *          This is a place to put application or project-specific overrides
- *          to the default configuration values for general CHIP features.
- *
- */
-
-#pragma once
-
-/**
- * CHIP_DEVICE_CONFIG_ENABLE_TEST_DEVICE_IDENTITY
- *
- * Enables the use of a hard-coded default Chip device id and credentials if no device id
- * is found in Chip NV storage.
- *
- * This option is for testing only and should be disabled in production releases.
- */
-#define CHIP_DEVICE_CONFIG_ENABLE_TEST_DEVICE_IDENTITY 34
-
-// Use a default pairing code if one hasn't been provisioned in flash.
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021
-#endif
-
-#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
-#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00
-#endif
-
-// For convenience, Chip Security Test Mode can be enabled and the
-// requirement for authentication in various protocols can be disabled.
-//
-//    WARNING: These options make it possible to circumvent basic Chip security functionality,
-//    including message encryption. Because of this they MUST NEVER BE ENABLED IN PRODUCTION BUILDS.
-//
-#define CHIP_CONFIG_SECURITY_TEST_MODE 0
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_REVISION
- *
- * The product revision number assigned to device or product by the device vendor.  This
- * number is scoped to the device product id, and typically corresponds to a revision of the
- * physical device, a change to its packaging, and/or a change to its marketing presentation.
- * This value is generally *not* incremented for device software revisions.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_REVISION 1
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
- *
- * A string identifying the software version running on the device.
- * CHIP service currently expects the software version to be in the format
- * {MAJOR_VERSION}.0d{MINOR_VERSION}
- */
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
-#endif
-/**
- * CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
- *
- * Enable support for Chip-over-BLE (CHIPoBLE).
- */
-#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1
-
-/**
- * CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
- *
- * Enables synchronizing the device's real time clock with a remote Chip Time service
- * using the Chip Time Sync protocol.
- */
-#define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 0
-
-/**
- * CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER
- *
- * Enables the use of a hard-coded default serial number if none
- * is found in Chip NV storage.
- */
-#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN"
-
-/**
- * CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS
- *
- * Enable recording UTC timestamps.
- */
-#define CHIP_CONFIG_EVENT_LOGGING_UTC_TIMESTAMPS 1
-
-/**
- * CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE
- *
- * A size, in bytes, of the individual debug event logging buffer.
- */
-#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512)
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION
- *
- * The hardware version number assigned to device or product by the device vendor.  This
- * number is scoped to the device product id, and typically corresponds to a version of the
- * physical device, a change to its packaging, and/or a change to its marketing presentation.
- * This value is generally *not* incremented for device software versions.
- */
-#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1
-
-/**
- * CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
- *
- * A string identifying the software version running on the device.
- * CHIP service currently expects the software version to be in the format
- * {MAJOR_VERSION}.0d{MINOR_VERSION}
- */
-#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
-#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
-#endif
diff --git a/examples/ota-requestor-app/p6/ota_base_build.sh b/examples/ota-requestor-app/p6/ota_base_build.sh
deleted file mode 100755
index 69ca770..0000000
--- a/examples/ota-requestor-app/p6/ota_base_build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-OUT_DIR=out/ota_requestor_debug/
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-./scripts/examples/gn_p6_example.sh examples/ota-requestor-app/p6/ "$OUT_DIR"
-
-mv "$OUT_DIR"/chip-p6-ota-requestor-example.hex "$OUT_DIR"/chip-p6-ota-requestor-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ chip-p6-ota-requestor-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy ""
diff --git a/examples/ota-requestor-app/p6/ota_update_build.sh b/examples/ota-requestor-app/p6/ota_update_build.sh
deleted file mode 100755
index 825b1db..0000000
--- a/examples/ota-requestor-app/p6/ota_update_build.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-OUT_DIR=out/ota_requestor_update_debug/
-ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
-
-./scripts/examples/gn_p6_example.sh examples/ota-requestor-app/p6/ "$OUT_DIR" build_update_image=true
-
-mv "$OUT_DIR"/chip-p6-ota-requestor-example.hex "$OUT_DIR"/chip-p6-ota-requestor-example.unsigned.hex
-
-./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR" chip-p6-ota-requestor-example python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/mcuboot/keys/cypress-test-ec-p256.pem"
-
-if [ -f "$OUT_DIR"/chip-p6-ota-requestor-example.ota ]; then
-    rm "$OUT_DIR"/chip-p6-ota-requestor-example.ota
-fi
-
-src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/chip-p6-ota-requestor-example.bin "$OUT_DIR"/chip-p6-ota-requestor-example.ota
diff --git a/examples/ota-requestor-app/p6/src/AppTask.cpp b/examples/ota-requestor-app/p6/src/AppTask.cpp
deleted file mode 100644
index 0fb347d..0000000
--- a/examples/ota-requestor-app/p6/src/AppTask.cpp
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 Google LLC.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#include "AppTask.h"
-#include "AppConfig.h"
-#include "AppEvent.h"
-#include "ButtonHandler.h"
-#include "LEDWidget.h"
-#include "qrcodegen.h"
-#include <app-common/zap-generated/attribute-id.h>
-#include <app-common/zap-generated/attribute-type.h>
-#include <app-common/zap-generated/attributes/Accessors.h>
-#include <app-common/zap-generated/cluster-id.h>
-#include <app/clusters/ota-requestor/BDXDownloader.h>
-#include <app/clusters/ota-requestor/DefaultOTARequestor.h>
-#include <app/clusters/ota-requestor/DefaultOTARequestorDriver.h>
-#include <app/clusters/ota-requestor/DefaultOTARequestorStorage.h>
-#include <app/server/Dnssd.h>
-#include <app/server/OnboardingCodesUtil.h>
-#include <app/server/Server.h>
-#include <app/util/attribute-storage.h>
-#include <assert.h>
-#include <credentials/DeviceAttestationCredsProvider.h>
-#include <credentials/examples/DeviceAttestationCredsExample.h>
-#include <cy_wcm.h>
-#include <platform/CHIPDeviceLayer.h>
-#include <platform/P6/OTAImageProcessorImpl.h>
-#include <setup_payload/QRCodeSetupPayloadGenerator.h>
-#include <setup_payload/SetupPayload.h>
-
-#include <app/clusters/network-commissioning/network-commissioning.h>
-#include <platform/P6/NetworkCommissioningDriver.h>
-
-extern "C" {
-#include "cy_smif_psoc6.h"
-}
-
-#define FACTORY_RESET_TRIGGER_TIMEOUT 3000
-#define FACTORY_RESET_CANCEL_WINDOW_TIMEOUT 3000
-#define APP_TASK_STACK_SIZE (4096)
-#define APP_TASK_PRIORITY 2
-#define APP_EVENT_QUEUE_SIZE 10
-
-using chip::BDXDownloader;
-using chip::CharSpan;
-using chip::DefaultOTARequestor;
-using chip::FabricIndex;
-using chip::GetRequestorInstance;
-using chip::NodeId;
-using chip::OTADownloader;
-using chip::OTAImageProcessorImpl;
-using chip::System::Layer;
-
-using namespace ::chip;
-using namespace chip::TLV;
-using namespace ::chip::Credentials;
-using namespace ::chip::DeviceLayer;
-using namespace ::chip::System;
-
-namespace {
-TimerHandle_t sFunctionTimer; // FreeRTOS app sw timer.
-
-TaskHandle_t sAppTaskHandle;
-QueueHandle_t sAppEventQueue;
-
-LEDWidget sStatusLED;
-
-bool sIsWiFiStationProvisioned = false;
-bool sIsWiFiStationEnabled     = false;
-bool sIsWiFiStationConnected   = false;
-bool sHaveBLEConnections       = false;
-
-uint8_t sAppEventQueueBuffer[APP_EVENT_QUEUE_SIZE * sizeof(AppEvent)];
-StaticQueue_t sAppEventQueueStruct;
-
-StackType_t appStack[APP_TASK_STACK_SIZE / sizeof(StackType_t)];
-StaticTask_t appTaskStruct;
-
-DefaultOTARequestor gRequestorCore;
-DefaultOTARequestorStorage gRequestorStorage;
-DefaultOTARequestorDriver gRequestorUser;
-BDXDownloader gDownloader;
-OTAImageProcessorImpl gImageProcessor;
-
-app::Clusters::NetworkCommissioning::Instance
-    sWiFiNetworkCommissioningInstance(0 /* Endpoint Id */, &(NetworkCommissioning::P6WiFiDriver::GetInstance()));
-} // namespace
-
-void OnTriggerUpdateTimerHandler(Layer * systemLayer, void * appState);
-
-AppTask AppTask::sAppTask;
-
-void NetWorkCommissioningInstInit()
-{
-    sWiFiNetworkCommissioningInstance.Init();
-}
-
-static void InitServer(intptr_t context)
-{
-    // Init ZCL Data Model
-    static chip::CommonCaseDeviceServerInitParams initParams;
-    (void) initParams.InitializeStaticResourcesBeforeServerInit();
-    chip::Server::GetInstance().Init(initParams);
-
-    // Initialize device attestation config
-    SetDeviceAttestationCredentialsProvider(Examples::GetExampleDACProvider());
-    GetAppTask().InitOTARequestor();
-}
-
-CHIP_ERROR AppTask::StartAppTask()
-{
-    sAppEventQueue = xQueueCreateStatic(APP_EVENT_QUEUE_SIZE, sizeof(AppEvent), sAppEventQueueBuffer, &sAppEventQueueStruct);
-    if (sAppEventQueue == NULL)
-    {
-        P6_LOG("Failed to allocate app event queue");
-        appError(APP_ERROR_EVENT_QUEUE_FAILED);
-    }
-
-    // Start App task.
-    sAppTaskHandle = xTaskCreateStatic(AppTaskMain, APP_TASK_NAME, ArraySize(appStack), NULL, 1, appStack, &appTaskStruct);
-    return (sAppTaskHandle == nullptr) ? APP_ERROR_CREATE_TASK_FAILED : CHIP_NO_ERROR;
-}
-
-CHIP_ERROR AppTask::Init()
-{
-    CHIP_ERROR err = CHIP_NO_ERROR;
-
-    int rc = boot_set_confirmed();
-    if (rc != 0)
-    {
-        P6_LOG("boot_set_confirmed failed");
-        appError(CHIP_ERROR_WELL_UNINITIALIZED);
-    }
-
-    // Register the callback to init the MDNS server when connectivity is available
-    PlatformMgr().AddEventHandler(
-        [](const ChipDeviceEvent * event, intptr_t arg) {
-            // Restart the server whenever an ip address is renewed
-            if (event->Type == DeviceEventType::kInternetConnectivityChange)
-            {
-                if (event->InternetConnectivityChange.IPv4 == kConnectivity_Established ||
-                    event->InternetConnectivityChange.IPv6 == kConnectivity_Established)
-                {
-                    chip::app::DnssdServer::Instance().StartServer();
-                }
-            }
-        },
-        0);
-
-    chip::DeviceLayer::PlatformMgr().ScheduleWork(InitServer, reinterpret_cast<intptr_t>(nullptr));
-
-    // Initialise WSTK buttons PB0 and PB1 (including debounce).
-    ButtonHandler::Init();
-
-    // Create FreeRTOS sw timer for Function Selection.
-    sFunctionTimer = xTimerCreate("FnTmr",          // Just a text name, not used by the RTOS kernel
-                                  1,                // == default timer period (mS)
-                                  false,            // no timer reload (==one-shot)
-                                  (void *) this,    // init timer id = app task obj context
-                                  TimerEventHandler // timer callback handler
-    );
-    if (sFunctionTimer == NULL)
-    {
-        P6_LOG("funct timer create failed");
-        appError(APP_ERROR_CREATE_TIMER_FAILED);
-    }
-
-    NetWorkCommissioningInstInit();
-
-    // Initialize LEDs
-    sStatusLED.Init(SYSTEM_STATE_LED);
-
-    ConfigurationMgr().LogDeviceConfig();
-
-    // Print setup info
-    PrintOnboardingCodes(chip::RendezvousInformationFlag(chip::RendezvousInformationFlag::kBLE));
-
-    return err;
-}
-
-void AppTask::AppTaskMain(void * pvParameter)
-{
-    AppEvent event;
-    CHIP_ERROR err = sAppTask.Init();
-    if (err != CHIP_NO_ERROR)
-    {
-        P6_LOG("AppTask.Init() failed");
-        appError(err);
-    }
-
-    P6_LOG("App Task started");
-
-    while (true)
-    {
-        BaseType_t eventReceived = xQueueReceive(sAppEventQueue, &event, pdMS_TO_TICKS(10));
-        while (eventReceived == pdTRUE)
-        {
-            sAppTask.DispatchEvent(&event);
-            eventReceived = xQueueReceive(sAppEventQueue, &event, 0);
-        }
-
-        // Update the status LED if factory reset has not been initiated.
-        //
-        // If system has "full connectivity", keep the LED On constantly.
-        //
-        // If thread and service provisioned, but not attached to the thread network
-        // yet OR no connectivity to the service OR subscriptions are not fully
-        // established THEN blink the LED Off for a short period of time.
-        //
-        // If the system has ble connection(s) uptill the stage above, THEN blink
-        // the LEDs at an even rate of 100ms.
-        //
-        // Otherwise, blink the LED ON for a very short time.
-        if (sAppTask.mFunction != Function::kFactoryReset)
-        {
-            if (sIsWiFiStationEnabled && sIsWiFiStationProvisioned && !sIsWiFiStationConnected)
-            {
-                sStatusLED.Blink(950, 50);
-            }
-            else if (sHaveBLEConnections)
-            {
-                sStatusLED.Blink(100, 100);
-            }
-            else
-            {
-                sStatusLED.Blink(50, 950);
-            }
-        }
-
-        sStatusLED.Animate();
-    }
-}
-
-void AppTask::ButtonEventHandler(uint8_t btnIdx, uint8_t btnAction)
-{
-    if (btnIdx != APP_FUNCTION_BUTTON_IDX && btnIdx != APP_UPDATE_BUTTON_IDX)
-    {
-        return;
-    }
-
-    AppEvent button_event              = {};
-    button_event.Type                  = AppEvent::kEventType_Button;
-    button_event.ButtonEvent.ButtonIdx = btnIdx;
-    button_event.ButtonEvent.Action    = btnAction;
-
-    if (btnIdx == APP_FUNCTION_BUTTON_IDX)
-    {
-        button_event.Handler = FunctionHandler;
-        sAppTask.PostEvent(&button_event);
-    }
-    if (btnIdx == APP_UPDATE_BUTTON_IDX)
-    {
-        button_event.Handler = UpdateButtonHandler;
-        sAppTask.PostEvent(&button_event);
-    }
-}
-
-void AppTask::TimerEventHandler(TimerHandle_t xTimer)
-{
-    AppEvent event;
-    event.Type               = AppEvent::kEventType_Timer;
-    event.TimerEvent.Context = (void *) xTimer;
-    event.Handler            = FunctionTimerEventHandler;
-    sAppTask.PostEvent(&event);
-}
-
-void AppTask::FunctionTimerEventHandler(AppEvent * aEvent)
-{
-    if (aEvent->Type != AppEvent::kEventType_Timer)
-    {
-        return;
-    }
-
-    // If we reached here, the button was held past FACTORY_RESET_TRIGGER_TIMEOUT,
-    // initiate factory reset
-    if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == Function::kStartBleAdv)
-    {
-        P6_LOG("Factory Reset Triggered. Release button within %ums to cancel.", FACTORY_RESET_CANCEL_WINDOW_TIMEOUT);
-
-        // Start timer for FACTORY_RESET_CANCEL_WINDOW_TIMEOUT to allow user to
-        // cancel, if required.
-        sAppTask.StartTimer(FACTORY_RESET_CANCEL_WINDOW_TIMEOUT);
-
-        sAppTask.mFunction = Function::kFactoryReset;
-
-        // Turn off all LEDs before starting blink to make sure blink is
-        // co-ordinated.
-        sStatusLED.Set(false);
-
-        sStatusLED.Blink(500);
-    }
-    else if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == Function::kFactoryReset)
-    {
-        // Actually trigger Factory Reset
-        sAppTask.mFunction = Function::kNoneSelected;
-        ConfigurationMgr().InitiateFactoryReset();
-    }
-}
-
-void AppTask::FunctionHandler(AppEvent * aEvent)
-{
-    // To trigger software update: press the APP_FUNCTION_BUTTON button briefly (<
-    // FACTORY_RESET_TRIGGER_TIMEOUT) To initiate factory reset: press the
-    // APP_FUNCTION_BUTTON for FACTORY_RESET_TRIGGER_TIMEOUT +
-    // FACTORY_RESET_CANCEL_WINDOW_TIMEOUT All LEDs start blinking after
-    // FACTORY_RESET_TRIGGER_TIMEOUT to signal factory reset has been initiated.
-    // To cancel factory reset: release the APP_FUNCTION_BUTTON once all LEDs
-    // start blinking within the FACTORY_RESET_CANCEL_WINDOW_TIMEOUT
-    if (aEvent->ButtonEvent.Action == APP_BUTTON_RELEASED)
-    {
-        if (!sAppTask.mFunctionTimerActive && sAppTask.mFunction == Function::kNoneSelected)
-        {
-            sAppTask.StartTimer(FACTORY_RESET_TRIGGER_TIMEOUT);
-            sAppTask.mFunction = Function::kStartBleAdv;
-        }
-    }
-    else
-    {
-        // If the button was released before factory reset got initiated, start Thread Network
-        if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == Function::kStartBleAdv)
-        {
-            sAppTask.CancelTimer();
-            sAppTask.mFunction = Function::kNoneSelected;
-        }
-        else if (sAppTask.mFunctionTimerActive && sAppTask.mFunction == Function::kFactoryReset)
-        {
-
-            sAppTask.CancelTimer();
-
-            // Change the function to none selected since factory reset has been
-            // canceled.
-            sAppTask.mFunction = Function::kNoneSelected;
-
-            P6_LOG("Factory Reset has been Canceled");
-        }
-    }
-}
-
-void AppTask::UpdateButtonHandler(AppEvent * aEvent)
-{
-    if (aEvent->ButtonEvent.Action == APP_BUTTON_RELEASED)
-    {
-        chip::DeviceLayer::SystemLayer().StartTimer(chip::System::Clock::Milliseconds32(2000), OnTriggerUpdateTimerHandler,
-                                                    nullptr);
-    }
-}
-
-void AppTask::CancelTimer()
-{
-    if (xTimerStop(sFunctionTimer, 0) == pdFAIL)
-    {
-        P6_LOG("app timer stop() failed");
-        appError(APP_ERROR_STOP_TIMER_FAILED);
-    }
-
-    mFunctionTimerActive = false;
-}
-
-void AppTask::StartTimer(uint32_t aTimeoutInMs)
-{
-    if (xTimerIsTimerActive(sFunctionTimer))
-    {
-        P6_LOG("app timer already started!");
-        CancelTimer();
-    }
-
-    // timer is not active, change its period to required value (== restart).
-    // FreeRTOS- Block for a maximum of 100 ticks if the change period command
-    // cannot immediately be sent to the timer command queue.
-    if (xTimerChangePeriod(sFunctionTimer, aTimeoutInMs / portTICK_PERIOD_MS, 100) != pdPASS)
-    {
-        P6_LOG("app timer start() failed");
-        appError(APP_ERROR_START_TIMER_FAILED);
-    }
-
-    mFunctionTimerActive = true;
-}
-
-void AppTask::PostEvent(const AppEvent * aEvent)
-{
-    if (sAppEventQueue != NULL)
-    {
-        BaseType_t status;
-        if (xPortIsInsideInterrupt())
-        {
-            BaseType_t higherPrioTaskWoken = pdFALSE;
-            status                         = xQueueSendFromISR(sAppEventQueue, aEvent, &higherPrioTaskWoken);
-
-#ifdef portYIELD_FROM_ISR
-            portYIELD_FROM_ISR(higherPrioTaskWoken);
-#elif portEND_SWITCHING_ISR // portYIELD_FROM_ISR or portEND_SWITCHING_ISR
-            portEND_SWITCHING_ISR(higherPrioTaskWoken);
-#else                       // portYIELD_FROM_ISR or portEND_SWITCHING_ISR
-#error "Must have portYIELD_FROM_ISR or portEND_SWITCHING_ISR"
-#endif // portYIELD_FROM_ISR or portEND_SWITCHING_ISR
-        }
-        else
-        {
-            status = xQueueSend(sAppEventQueue, aEvent, 1);
-        }
-
-        if (!status)
-            P6_LOG("Failed to post event to app task event queue");
-    }
-    else
-    {
-        P6_LOG("Event Queue is NULL should never happen");
-    }
-}
-
-void AppTask::DispatchEvent(AppEvent * aEvent)
-{
-    if (aEvent->Handler)
-    {
-        aEvent->Handler(aEvent);
-    }
-    else
-    {
-        P6_LOG("Event received with no handler. Dropping event.");
-    }
-}
-
-void OnTriggerUpdateTimerHandler(Layer * systemLayer, void * appState)
-{
-    P6_LOG("Triggering immediate OTA update query");
-
-    GetRequestorInstance()->TriggerImmediateQuery();
-}
-
-void AppTask::InitOTARequestor()
-{
-    CHIP_ERROR err = CHIP_NO_ERROR;
-    SetRequestorInstance(&gRequestorCore);
-    gRequestorStorage.Init(chip::Server::GetInstance().GetPersistentStorage());
-    gRequestorCore.Init(chip::Server::GetInstance(), gRequestorStorage, gRequestorUser, gDownloader);
-    gImageProcessor.SetOTADownloader(&gDownloader);
-    gDownloader.SetImageProcessorDelegate(&gImageProcessor);
-    gRequestorUser.Init(&gRequestorCore, &gImageProcessor);
-
-    uint32_t savedSoftwareVersion;
-    err = ConfigurationMgr().GetSoftwareVersion(savedSoftwareVersion);
-    if (err != CHIP_NO_ERROR)
-    {
-        P6_LOG("Can't get saved software version");
-        appError(err);
-    }
-
-    if (savedSoftwareVersion != CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION)
-    {
-        ConfigurationMgr().StoreSoftwareVersion(CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-
-        P6_LOG("Confirming update to version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-        chip::OTARequestorInterface * requestor = chip::GetRequestorInstance();
-        if (requestor != nullptr)
-        {
-            requestor->NotifyUpdateApplied();
-        }
-    }
-
-    P6_LOG("Current Software Version: %u", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION);
-    P6_LOG("Current Firmware Version String: %s", CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING);
-}
diff --git a/examples/ota-requestor-app/p6/src/ButtonHandler.cpp b/examples/ota-requestor-app/p6/src/ButtonHandler.cpp
deleted file mode 100644
index e20f24e..0000000
--- a/examples/ota-requestor-app/p6/src/ButtonHandler.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 Google LLC.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#include "ButtonHandler.h"
-#include "AppConfig.h"
-#include "AppTask.h"
-
-namespace {
-constexpr int kButtonCount = 2;
-
-TimerHandle_t buttonTimers[kButtonCount]; // FreeRTOS timers used for debouncing
-// buttons. Array to hold handles to
-// the created timers.
-
-} // namespace
-
-void ButtonHandler::Init(void)
-{
-    GpioInit();
-    // Create FreeRTOS sw timers for debouncing buttons.
-    for (uint8_t i = 0; i < kButtonCount; i++)
-    {
-        buttonTimers[i] = xTimerCreate("BtnTmr",                      // Just a text name, not used by the RTOS kernel
-                                       APP_BUTTON_DEBOUNCE_PERIOD_MS, // timer period
-                                       false,                         // no timer reload (==one-shot)
-                                       (void *) (int) i,              // init timer id = button index
-                                       TimerCallback                  // timer callback handler (all buttons use
-                                                                      // the same timer cn function)
-        );
-    }
-}
-
-void ButtonHandler::GpioInit(void)
-{
-    cy_rslt_t result = CY_RSLT_SUCCESS;
-    // Set up button GPIOs to input with pullups.
-    result = cyhal_gpio_init(APP_UPDATE_BUTTON, CYHAL_GPIO_DIR_INPUT, CYHAL_GPIO_DRIVE_PULLUP, CYBSP_BTN_OFF);
-    if (result != CY_RSLT_SUCCESS)
-    {
-        printf(" cyhal_gpio_init failed for APP_LOCK_BUTTON\r\n");
-    }
-    result = cyhal_gpio_init(APP_FUNCTION_BUTTON, CYHAL_GPIO_DIR_INPUT, CYHAL_GPIO_DRIVE_PULLUP, CYBSP_BTN_OFF);
-    if (result != CY_RSLT_SUCCESS)
-    {
-        printf(" cyhal_gpio_init failed for APP_FUNCTION_BUTTON\r\n");
-    }
-    /* Configure GPIO interrupt. */
-    static cyhal_gpio_callback_data_t update_button_cbdata;
-    static cyhal_gpio_callback_data_t func_button_cbdata;
-
-    /* Register for Update Button */
-    update_button_cbdata.callback     = update_button_callback;
-    update_button_cbdata.callback_arg = NULL;
-    cyhal_gpio_register_callback(APP_UPDATE_BUTTON, &update_button_cbdata);
-
-    /* Register for Function Button for factory reset */
-    func_button_cbdata.callback     = func_button_callback;
-    func_button_cbdata.callback_arg = NULL;
-    cyhal_gpio_register_callback(APP_FUNCTION_BUTTON, &func_button_cbdata);
-
-    cyhal_gpio_enable_event(APP_UPDATE_BUTTON, CYHAL_GPIO_IRQ_FALL, GPIO_INTERRUPT_PRIORITY, true);
-    cyhal_gpio_enable_event(APP_FUNCTION_BUTTON, CYHAL_GPIO_IRQ_FALL, GPIO_INTERRUPT_PRIORITY, true);
-}
-
-void ButtonHandler::update_button_callback(void * handler_arg, cyhal_gpio_event_t event)
-{
-    portBASE_TYPE taskWoken = pdFALSE;
-    xTimerStartFromISR(buttonTimers[APP_UPDATE_BUTTON_IDX], &taskWoken);
-}
-
-void ButtonHandler::func_button_callback(void * handler_arg, cyhal_gpio_event_t event)
-{
-    portBASE_TYPE taskWoken = pdFALSE;
-    xTimerStartFromISR(buttonTimers[APP_FUNCTION_BUTTON_IDX], &taskWoken);
-}
-
-void ButtonHandler::TimerCallback(TimerHandle_t xTimer)
-{
-    // Get the button index of the expired timer and call button event helper.
-    uint32_t timerId;
-    uint8_t buttonevent = 0;
-    timerId             = (uint32_t) pvTimerGetTimerID(xTimer);
-    if (timerId)
-    {
-        buttonevent = cyhal_gpio_read(APP_FUNCTION_BUTTON);
-    }
-    else
-    {
-        buttonevent = cyhal_gpio_read(APP_UPDATE_BUTTON);
-    }
-    GetAppTask().ButtonEventHandler(timerId, (buttonevent) ? APP_BUTTON_PRESSED : APP_BUTTON_RELEASED);
-}
diff --git a/examples/ota-requestor-app/p6/src/ZclCallbacks.cpp b/examples/ota-requestor-app/p6/src/ZclCallbacks.cpp
deleted file mode 100644
index eca4602..0000000
--- a/examples/ota-requestor-app/p6/src/ZclCallbacks.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *
- *    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
- *   This file implements the handler for data model messages.
- */
-
-#include "AppConfig.h"
-#include <lib/support/logging/CHIPLogging.h>
-
-#include <app-common/zap-generated/attribute-id.h>
-#include <app-common/zap-generated/cluster-id.h>
-#include <app-common/zap-generated/ids/Attributes.h>
-#include <app-common/zap-generated/ids/Clusters.h>
-#include <app/util/af-types.h>
-
-using namespace ::chip;
-using namespace ::chip::app::Clusters;
-
-void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size,
-                                       uint8_t * value)
-{
-    EndpointId endpoint     = attributePath.mEndpointId;
-    ClusterId clusterId     = attributePath.mClusterId;
-    AttributeId attributeId = attributePath.mAttributeId;
-    P6_LOG("MatterPostAttributeChangeCallback - Cluster ID: " ChipLogFormatMEI
-           ", EndPoint ID: '0x%02x', Attribute ID: " ChipLogFormatMEI,
-           ChipLogValueMEI(clusterId), endpoint, ChipLogValueMEI(attributeId));
-
-    switch (clusterId)
-    {
-    case Identify::Id:
-        ChipLogProgress(Zcl, "Identify attribute ID: " ChipLogFormatMEI " Type: %u Value: %u, length %u",
-                        ChipLogValueMEI(attributeId), type, *value, size);
-        break;
-    default:
-        P6_LOG("Unhandled cluster ID: " ChipLogFormatMEI, ChipLogValueMEI(clusterId));
-        break;
-    }
-}
diff --git a/examples/ota-requestor-app/p6/src/main.cpp b/examples/ota-requestor-app/p6/src/main.cpp
deleted file mode 100644
index f2bcc8b..0000000
--- a/examples/ota-requestor-app/p6/src/main.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- *
- *    Copyright (c) 2021 Project CHIP Authors
- *    Copyright (c) 2019 Google LLC.
- *    Copyright 2021, Cypress Semiconductor Corporation (an Infineon company)
- *    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.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdint.h>
-
-#include <FreeRTOS.h>
-
-#include <lib/support/CHIPMem.h>
-#include <lib/support/CHIPPlatformMemory.h>
-#include <platform/CHIPDeviceLayer.h>
-#include <platform/KeyValueStoreManager.h>
-
-#include <AppTask.h>
-
-#include "AppConfig.h"
-#include "cyhal_wdt.h"
-#include "init_p6Platform.h"
-#include <app/server/Server.h>
-
-#ifdef HEAP_MONITORING
-#include "MemMonitoring.h"
-#endif
-#define MAIN_TASK_STACK_SIZE (4096)
-#define MAIN_TASK_PRIORITY 2
-
-using namespace ::chip;
-using namespace ::chip::Inet;
-using namespace ::chip::DeviceLayer;
-
-volatile int apperror_cnt;
-static void main_task(void * pvParameters);
-
-// ================================================================================
-// App Error
-//=================================================================================
-void appError(int err)
-{
-    P6_LOG("!! App Critical Error: %d !!", err);
-    portDISABLE_INTERRUPTS();
-    while (1)
-        ;
-}
-
-void appError(CHIP_ERROR error)
-{
-    appError(static_cast<int>(error.AsInteger()));
-}
-
-// ================================================================================
-// FreeRTOS Callbacks
-// ================================================================================
-extern "C" void vApplicationIdleHook(void)
-{
-    // FreeRTOS Idle callback
-}
-
-extern "C" void vApplicationDaemonTaskStartupHook()
-{
-    // Init Chip memory management before the stack
-    chip::Platform::MemoryInit();
-
-    /* Create the Main task. */
-    xTaskCreate(main_task, "Main task", MAIN_TASK_STACK_SIZE, NULL, MAIN_TASK_PRIORITY, NULL);
-}
-
-static void main_task(void * pvParameters)
-{
-    CHIP_ERROR ret = chip::DeviceLayer::PersistedStorage::KeyValueStoreMgrImpl().Init();
-    if (ret != CHIP_NO_ERROR)
-    {
-        P6_LOG("PersistedStorage::KeyValueStoreMgrImpl().Init() failed");
-        appError(ret);
-    }
-
-    ret = PlatformMgr().InitChipStack();
-    if (ret != CHIP_NO_ERROR)
-    {
-        P6_LOG("PlatformMgr().InitChipStack() failed");
-        appError(ret);
-    }
-
-    ret = chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName("P6_OTA_REQ");
-    if (ret != CHIP_NO_ERROR)
-    {
-        P6_LOG("ConnectivityMgr().SetBLEDeviceName() failed");
-        appError(ret);
-    }
-
-    P6_LOG("Starting Platform Manager Event Loop");
-    ret = PlatformMgr().StartEventLoopTask();
-    if (ret != CHIP_NO_ERROR)
-    {
-        P6_LOG("PlatformMgr().StartEventLoopTask() failed");
-        appError(ret);
-    }
-    ret = GetAppTask().StartAppTask();
-    if (ret != CHIP_NO_ERROR)
-    {
-        P6_LOG("GetAppTask().Init() failed");
-        appError(ret);
-    }
-
-    /* Delete task */
-    vTaskDelete(NULL);
-}
-
-// ================================================================================
-// Main Code
-// ================================================================================
-int main(void)
-{
-    init_p6Platform();
-
-    // Clear watchdog timer (started by bootloader) so that it doesn't trigger a reset
-    cyhal_wdt_t wdt_obj;
-    cyhal_wdt_init(&wdt_obj, cyhal_wdt_get_max_timeout_ms());
-    cyhal_wdt_free(&wdt_obj);
-
-#ifdef HEAP_MONITORING
-    MemMonitoring::startHeapMonitoring();
-#endif
-
-    P6_LOG("==================================================\r\n");
-    P6_LOG("chip-p6-ota-requestor-example starting\r\n");
-    P6_LOG("==================================================\r\n");
-
-    /* Start the FreeRTOS scheduler */
-    vTaskStartScheduler();
-
-    chip::Platform::MemoryShutdown();
-    PlatformMgr().StopEventLoopTask();
-    PlatformMgr().Shutdown();
-
-    // Should never get here.
-    P6_LOG("vTaskStartScheduler() failed");
-}
diff --git a/examples/ota-requestor-app/p6/third_party/connectedhomeip b/examples/ota-requestor-app/p6/third_party/connectedhomeip
deleted file mode 120000
index 11a54ed..0000000
--- a/examples/ota-requestor-app/p6/third_party/connectedhomeip
+++ /dev/null
@@ -1 +0,0 @@
-../../../../
\ No newline at end of file
diff --git a/scripts/build/build/targets.py b/scripts/build/build/targets.py
index 09836d0..cb457e6 100755
--- a/scripts/build/build/targets.py
+++ b/scripts/build/build/targets.py
@@ -516,12 +516,19 @@
 
 
 def InfineonTargets():
-    target = Target('infineon', InfineonBuilder)
+    builder = VariantBuilder()
+    builder.AppendVariant(name="ota", enable_ota_requestor=True)
+    builder.AppendVariant(name="updateimage", update_image=True)
 
-    yield target.Extend('p6-lock', board=InfineonBoard.P6BOARD, app=InfineonApp.LOCK)
-    yield target.Extend('p6-all-clusters', board=InfineonBoard.P6BOARD, app=InfineonApp.ALL_CLUSTERS)
-    yield target.Extend('p6-all-clusters-minimal', board=InfineonBoard.P6BOARD, app=InfineonApp.ALL_CLUSTERS_MINIMAL)
-    yield target.Extend('p6-light', board=InfineonBoard.P6BOARD, app=InfineonApp.LIGHT)
+    target = Target('infineon-p6', InfineonBuilder, board=InfineonBoard.P6BOARD)
+
+    builder.targets.append(target.Extend('lock', app=InfineonApp.LOCK))
+    builder.targets.append(target.Extend('light', app=InfineonApp.LIGHT))
+    builder.targets.append(target.Extend('all-clusters', app=InfineonApp.ALL_CLUSTERS))
+    builder.targets.append(target.Extend('all-clusters-minimal', app=InfineonApp.ALL_CLUSTERS_MINIMAL))
+
+    for target in builder.AllVariants():
+        yield target
 
 
 def AmebaTargets():
diff --git a/scripts/build/builders/infineon.py b/scripts/build/builders/infineon.py
index a46cec1..d0b7361 100644
--- a/scripts/build/builders/infineon.py
+++ b/scripts/build/builders/infineon.py
@@ -60,6 +60,9 @@
         else:
             raise Exception('Unknown app type: %r' % self)
 
+    def BuildRoot(self, root):
+        return os.path.join(root, 'examples', self.ExampleName(), 'p6')
+
 
 class InfineonBoard(Enum):
     P6BOARD = 1
@@ -75,16 +78,23 @@
                  root,
                  runner,
                  app: InfineonApp = InfineonApp.LOCK,
-                 board: InfineonBoard = InfineonBoard.P6BOARD):
+                 board: InfineonBoard = InfineonBoard.P6BOARD,
+                 enable_ota_requestor: bool = False,
+                 update_image: bool = False):
         super(InfineonBuilder, self).__init__(
-            root=os.path.join(root, 'examples', app.ExampleName(), 'p6'),
+            root=app.BuildRoot(root),
             runner=runner)
 
         self.app = app
-        self.board = board
+        self.extra_gn_options = ['p6_board="%s"' % board.GnArgName()]
+
+        if enable_ota_requestor:
+            self.extra_gn_options.append('chip_enable_ota_requestor=true')
+        if update_image:
+            self.extra_gn_options.append('build_update_image=true')
 
     def GnBuildArgs(self):
-        return ['p6_board="%s"' % self.board.GnArgName()]
+        return self.extra_gn_options
 
     def build_outputs(self):
         items = {
diff --git a/scripts/build/testdata/all_targets_except_host.txt b/scripts/build/testdata/all_targets_except_host.txt
index 74eb20b..fe98801 100644
--- a/scripts/build/testdata/all_targets_except_host.txt
+++ b/scripts/build/testdata/all_targets_except_host.txt
@@ -180,8 +180,20 @@
 imx-thermostat-release
 infineon-p6-all-clusters
 infineon-p6-all-clusters-minimal
+infineon-p6-all-clusters-minimal-ota (NOGLOB: Reduce default build variants)
+infineon-p6-all-clusters-minimal-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-p6-all-clusters-minimal-updateimage (NOGLOB: Reduce default build variants)
+infineon-p6-all-clusters-ota (NOGLOB: Reduce default build variants)
+infineon-p6-all-clusters-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-p6-all-clusters-updateimage (NOGLOB: Reduce default build variants)
 infineon-p6-light
+infineon-p6-light-ota (NOGLOB: Reduce default build variants)
+infineon-p6-light-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-p6-light-updateimage (NOGLOB: Reduce default build variants)
 infineon-p6-lock
+infineon-p6-lock-ota (NOGLOB: Reduce default build variants)
+infineon-p6-lock-ota-updateimage (NOGLOB: Reduce default build variants)
+infineon-p6-lock-updateimage (NOGLOB: Reduce default build variants)
 k32w-light-ota-se (NOGLOB: Only on demand build)
 k32w-light-release-no-ota
 k32w-lock-low-power-release (NOGLOB: Only on demand build)
diff --git a/scripts/build/testdata/build_all_except_host.txt b/scripts/build/testdata/build_all_except_host.txt
index e365f29..6cb3d25 100644
--- a/scripts/build/testdata/build_all_except_host.txt
+++ b/scripts/build/testdata/build_all_except_host.txt
@@ -849,12 +849,48 @@
 # Generating infineon-p6-all-clusters-minimal
 gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-all-clusters-minimal
 
+# Generating infineon-p6-all-clusters-minimal-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-all-clusters-minimal-ota
+
+# Generating infineon-p6-all-clusters-minimal-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-all-clusters-minimal-ota-updateimage
+
+# Generating infineon-p6-all-clusters-minimal-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-minimal-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-all-clusters-minimal-updateimage
+
+# Generating infineon-p6-all-clusters-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-all-clusters-ota
+
+# Generating infineon-p6-all-clusters-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-all-clusters-ota-updateimage
+
+# Generating infineon-p6-all-clusters-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/all-clusters-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-all-clusters-updateimage
+
 # Generating infineon-p6-light
 gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-light
 
+# Generating infineon-p6-light-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-light-ota
+
+# Generating infineon-p6-light-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-light-ota-updateimage
+
+# Generating infineon-p6-light-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lighting-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-light-updateimage
+
 # Generating infineon-p6-lock
 gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012"' {out}/infineon-p6-lock
 
+# Generating infineon-p6-lock-ota
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true' {out}/infineon-p6-lock-ota
+
+# Generating infineon-p6-lock-ota-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" chip_enable_ota_requestor=true build_update_image=true' {out}/infineon-p6-lock-ota-updateimage
+
+# Generating infineon-p6-lock-updateimage
+gn gen --check --fail-on-unused-args --export-compile-commands --root={root}/examples/lock-app/p6 '--args=p6_board="CY8CKIT-062S2-43012" build_update_image=true' {out}/infineon-p6-lock-updateimage
+
 {root}/third_party/nxp/k32w0_sdk/sdk_fixes/patch_k32w_sdk.sh
 
 # Generating k32w-light-ota-se
@@ -2073,12 +2109,48 @@
 # Building infineon-p6-all-clusters-minimal
 ninja -C {out}/infineon-p6-all-clusters-minimal
 
+# Building infineon-p6-all-clusters-minimal-ota
+ninja -C {out}/infineon-p6-all-clusters-minimal-ota
+
+# Building infineon-p6-all-clusters-minimal-ota-updateimage
+ninja -C {out}/infineon-p6-all-clusters-minimal-ota-updateimage
+
+# Building infineon-p6-all-clusters-minimal-updateimage
+ninja -C {out}/infineon-p6-all-clusters-minimal-updateimage
+
+# Building infineon-p6-all-clusters-ota
+ninja -C {out}/infineon-p6-all-clusters-ota
+
+# Building infineon-p6-all-clusters-ota-updateimage
+ninja -C {out}/infineon-p6-all-clusters-ota-updateimage
+
+# Building infineon-p6-all-clusters-updateimage
+ninja -C {out}/infineon-p6-all-clusters-updateimage
+
 # Building infineon-p6-light
 ninja -C {out}/infineon-p6-light
 
+# Building infineon-p6-light-ota
+ninja -C {out}/infineon-p6-light-ota
+
+# Building infineon-p6-light-ota-updateimage
+ninja -C {out}/infineon-p6-light-ota-updateimage
+
+# Building infineon-p6-light-updateimage
+ninja -C {out}/infineon-p6-light-updateimage
+
 # Building infineon-p6-lock
 ninja -C {out}/infineon-p6-lock
 
+# Building infineon-p6-lock-ota
+ninja -C {out}/infineon-p6-lock-ota
+
+# Building infineon-p6-lock-ota-updateimage
+ninja -C {out}/infineon-p6-lock-ota-updateimage
+
+# Building infineon-p6-lock-updateimage
+ninja -C {out}/infineon-p6-lock-updateimage
+
 # Building k32w-light-ota-se
 ninja -C {out}/k32w-light-ota-se
 
diff --git a/src/platform/P6/CHIPDevicePlatformConfig.h b/src/platform/P6/CHIPDevicePlatformConfig.h
index c1b7c1a..51aae4d 100644
--- a/src/platform/P6/CHIPDevicePlatformConfig.h
+++ b/src/platform/P6/CHIPDevicePlatformConfig.h
@@ -30,8 +30,13 @@
 #define CHIP_DEVICE_CONFIG_LWIP_WIFI_STATION_IF_NAME "infineon"
 
 #define CHIP_DEVICE_CONFIG_LOG_PROVISIONING_HASH 0
+
+/* The VendorName attribute of the Basic cluster. */
+#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_NAME "Infineon"
+
+/* The VendorID attribute of the Basic cluster. */
 #define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 0xFFF1
-#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8000
+
 #define CHIP_DEVICE_CONFIG_WIFI_AP_SSID_PREFIX "INF"
 #define CHIP_DEVICE_CONFIG_WIFI_AP_PASSWORD "AP_PASSWORD"
 #define CHIP_DEVICE_CONFIG_WIFI_AP_CHANNEL 11
diff --git a/src/platform/P6/DiagnosticDataProviderImpl.cpp b/src/platform/P6/DiagnosticDataProviderImpl.cpp
index 9b8fd37..ae3efbc 100644
--- a/src/platform/P6/DiagnosticDataProviderImpl.cpp
+++ b/src/platform/P6/DiagnosticDataProviderImpl.cpp
@@ -254,7 +254,8 @@
         ChipLogError(DeviceLayer, "whd_wifi_get_ap_info failed: %d", (int) result);
         SuccessOrExit(CHIP_ERROR_INTERNAL);
     }
-    /* VHT Capable bit variable is not defined in whd and has to use the reserved bit */
+
+    /* VHT Capable */
     if (bss_info.vht_cap)
     {
         wiFiVersion = EMBER_ZCL_WI_FI_VERSION_TYPE_802__11AC;
diff --git a/src/platform/P6/OTAImageProcessorImpl.cpp b/src/platform/P6/OTAImageProcessorImpl.cpp
index 5ca1fa0..5fb0d15 100644
--- a/src/platform/P6/OTAImageProcessorImpl.cpp
+++ b/src/platform/P6/OTAImageProcessorImpl.cpp
@@ -20,6 +20,7 @@
 #include <app/clusters/ota-requestor/OTADownloader.h>
 #include <app/clusters/ota-requestor/OTARequestorInterface.h>
 #include <lib/support/CodeUtils.h>
+#include <ota_serial_flash.h>
 #include <platform/CHIPDeviceLayer.h>
 
 using namespace ::chip::DeviceLayer::Internal;
@@ -151,6 +152,9 @@
         return;
     }
 
+    /* Initialize SMIF subsystem for OTA Image download */
+    ota_smif_initialize();
+
     // Open and erase secondary flash area to prepare
     if (flash_area_open(FLASH_AREA_IMAGE_SECONDARY(0), &(imageProcessor->mFlashArea)) != 0)
     {
diff --git a/src/platform/P6/OTAImageProcessorImpl.h b/src/platform/P6/OTAImageProcessorImpl.h
index 4150565..e1ec3d5 100644
--- a/src/platform/P6/OTAImageProcessorImpl.h
+++ b/src/platform/P6/OTAImageProcessorImpl.h
@@ -28,7 +28,8 @@
 extern "C" {
 #include "bootutil/bootutil.h"
 #include "cy_flash_psoc6.h"
-#include "cy_smif_psoc6.h"
+#include "flash_map_backend.h"
+#include "flash_qspi.h"
 #include "sysflash/sysflash.h"
 }
 
diff --git a/third_party/p6/p6_sdk/Makefile b/third_party/p6/p6_sdk/Makefile
index 19acb28..45318c6 100755
--- a/third_party/p6/p6_sdk/Makefile
+++ b/third_party/p6/p6_sdk/Makefile
@@ -81,7 +81,7 @@
 # ... then code in directories named COMPONENT_foo and COMPONENT_bar will be
 # added to the build
 #
-COMPONENTS=FREERTOS LWIP MBEDTLS RTOS_AWARE WICED_BLE
+COMPONENTS=FREERTOS LWIP MBEDTLS RTOS_AWARE WICED_BLE OTA_MCUBOOT_PSOC
 
 # CHIP: ModusToolbox 2.2 & 2.3 do not have a way to disable indirect library
 # dependencies.  This causes trouble for CHIP because we need to use its
@@ -114,7 +114,7 @@
 MBEDTLSFLAGS = MBEDTLS_USER_CONFIG_FILE=<mbedtls_user_config.h>
 
 # Add additional defines to the build process (without a leading -D).
-DEFINES=$(MBEDTLSFLAGS) CYBSP_WIFI_CAPABLE CY_RETARGET_IO_CONVERT_LF_TO_CRLF CY_RTOS_AWARE
+DEFINES=$(MBEDTLSFLAGS) CYBSP_WIFI_CAPABLE CY_RETARGET_IO_CONVERT_LF_TO_CRLF CY_RTOS_AWARE PSOC_062_2M
 
 # Enable support for Mosquitto Broker based on 'ENABLE_SECURE_MOSQUITTO_BROKER_
 # SUPPORT' variable. See the MQTT Client library's README for more information.
diff --git a/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Debug/GCC_ARM.json b/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Debug/GCC_ARM.json
index f1f2712..e96bb45 100644
--- a/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Debug/GCC_ARM.json
+++ b/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Debug/GCC_ARM.json
@@ -84,6 +84,26 @@
         "-I./libs/abstraction-rtos/include",
         "-I./libs/abstraction-rtos/include/COMPONENT_FREERTOS",
         "-I./libs/abstraction-rtos/include/Template",
+        "-I./libs/anycloud-ota",
+        "-I./libs/anycloud-ota/include",
+        "-I./libs/anycloud-ota/source",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/include",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/include/bootutil",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/src",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/flash_qspi",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/include",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/include/flash_map_backend",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/mem_config",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/mcuboot_header",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/mcuboot_header/mcuboot_config",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/sysflash",
+        "-I./libs/anycloud-ota/source/port_support",
+        "-I./libs/anycloud-ota/source/port_support/serial_flash",
+        "-I./libs/anycloud-ota/source/port_support/untar",
         "-I./libs/bluetooth-freertos",
         "-I./libs/bluetooth-freertos/platform",
         "-I./libs/bluetooth-freertos/platform/common",
@@ -120,6 +140,8 @@
         "-I./libs/mbedtls",
         "-I./libs/mbedtls/include",
         "-I./libs/mbedtls/include/mbedtls",
+        "-I./libs/mbedtls/include/psa",
+        "-I./libs/mbedtls/library",
         "-I./libs/mtb-hal-cat1",
         "-I./libs/mtb-hal-cat1/COMPONENT_CAT1A",
         "-I./libs/mtb-hal-cat1/COMPONENT_CAT1A/include",
@@ -165,13 +187,15 @@
         "-I./libs/wifi-host-driver/WiFi_Host_Driver/src/bus_protocols",
         "-I./libs/wifi-host-driver/WiFi_Host_Driver/src/include",
         "-I./libs/wifi-mw-core",
-        "-I./libs/wifi-mw-core/lwip-whd-port"
+        "-I./libs/wifi-mw-core/lwip-whd-port",
+        "-I./ota/config"
     ],
     "defines": [
         "-DMBEDTLS_USER_CONFIG_FILE=<mbedtls_user_config.h>",
         "-DCYBSP_WIFI_CAPABLE",
         "-DCY_RETARGET_IO_CONVERT_LF_TO_CRLF",
         "-DCY_RTOS_AWARE",
+        "-DPSOC_062_2M",
         "-DCY_USING_HAL",
         "-DCY_APPNAME_mtb_chip_sdk",
         "-DCY8C624ABZI_S2D44",
@@ -190,6 +214,7 @@
         "-DCOMPONENT_LWIP",
         "-DCOMPONENT_MBEDTLS",
         "-DCOMPONENT_MURATA_1LV",
+        "-DCOMPONENT_OTA_MCUBOOT_PSOC",
         "-DCOMPONENT_PSOC6HAL",
         "-DCOMPONENT_RTOS_AWARE",
         "-DCOMPONENT_SOFTFP",
@@ -199,6 +224,7 @@
     ],
     "c_source": [
         "./libs/abstraction-rtos/source/cy_worker_thread.c",
+        "./libs/anycloud-ota/source/port_support/serial_flash/ota_serial_flash.c",
         "./libs/bluetooth-freertos/platform/common/cybt_hci_rx_task.c",
         "./libs/bluetooth-freertos/platform/common/cybt_hci_tx_task.c",
         "./libs/bluetooth-freertos/platform/common/cybt_host_stack_platform_interface.c",
@@ -547,6 +573,13 @@
         "./libs/TARGET_CY8CKIT-062S2-43012/COMPONENT_CM4/system_psoc6_cm4.c",
         "./libs/abstraction-rtos/source/COMPONENT_FREERTOS/cyabs_freertos_helpers.c",
         "./libs/abstraction-rtos/source/COMPONENT_FREERTOS/cyabs_rtos_freertos.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/src/bootutil_misc.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/cy_flash_map.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/flash_qspi/flash_qspi.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/ota_flash_map.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/ota_flash_xip_map.c",
         "./libs/bluetooth-freertos/firmware/COMPONENT_43012/COMPONENT_MURATA-1LV/COMPONENT_HCI-UART/w_bt_firmware_controller.c",
         "./libs/clib-support/COMPONENT_FREERTOS/cy_mutex_pool.c",
         "./libs/connectivity-utilities/network/COMPONENT_LWIP/cy_nw_helper.c",
diff --git a/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Release/GCC_ARM.json b/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Release/GCC_ARM.json
index d7d5c1b..f31178e 100644
--- a/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Release/GCC_ARM.json
+++ b/third_party/p6/p6_sdk/build/CY8CKIT-062S2-43012/Release/GCC_ARM.json
@@ -84,6 +84,26 @@
         "-I./libs/abstraction-rtos/include",
         "-I./libs/abstraction-rtos/include/COMPONENT_FREERTOS",
         "-I./libs/abstraction-rtos/include/Template",
+        "-I./libs/anycloud-ota",
+        "-I./libs/anycloud-ota/include",
+        "-I./libs/anycloud-ota/source",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/include",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/include/bootutil",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/src",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/flash_qspi",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/include",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/include/flash_map_backend",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/mem_config",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/mcuboot_header",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/mcuboot_header/mcuboot_config",
+        "-I./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/sysflash",
+        "-I./libs/anycloud-ota/source/port_support",
+        "-I./libs/anycloud-ota/source/port_support/serial_flash",
+        "-I./libs/anycloud-ota/source/port_support/untar",
         "-I./libs/bluetooth-freertos",
         "-I./libs/bluetooth-freertos/platform",
         "-I./libs/bluetooth-freertos/platform/common",
@@ -120,6 +140,8 @@
         "-I./libs/mbedtls",
         "-I./libs/mbedtls/include",
         "-I./libs/mbedtls/include/mbedtls",
+        "-I./libs/mbedtls/include/psa",
+        "-I./libs/mbedtls/library",
         "-I./libs/mtb-hal-cat1",
         "-I./libs/mtb-hal-cat1/COMPONENT_CAT1A",
         "-I./libs/mtb-hal-cat1/COMPONENT_CAT1A/include",
@@ -165,13 +187,15 @@
         "-I./libs/wifi-host-driver/WiFi_Host_Driver/src/bus_protocols",
         "-I./libs/wifi-host-driver/WiFi_Host_Driver/src/include",
         "-I./libs/wifi-mw-core",
-        "-I./libs/wifi-mw-core/lwip-whd-port"
+        "-I./libs/wifi-mw-core/lwip-whd-port",
+        "-I./ota/config"
     ],
     "defines": [
         "-DMBEDTLS_USER_CONFIG_FILE=<mbedtls_user_config.h>",
         "-DCYBSP_WIFI_CAPABLE",
         "-DCY_RETARGET_IO_CONVERT_LF_TO_CRLF",
         "-DCY_RTOS_AWARE",
+        "-DPSOC_062_2M",
         "-DCY_USING_HAL",
         "-DCY_APPNAME_mtb_chip_sdk",
         "-DCY8C624ABZI_S2D44",
@@ -190,6 +214,7 @@
         "-DCOMPONENT_LWIP",
         "-DCOMPONENT_MBEDTLS",
         "-DCOMPONENT_MURATA_1LV",
+        "-DCOMPONENT_OTA_MCUBOOT_PSOC",
         "-DCOMPONENT_PSOC6HAL",
         "-DCOMPONENT_RTOS_AWARE",
         "-DCOMPONENT_SOFTFP",
@@ -199,6 +224,7 @@
     ],
     "c_source": [
         "./libs/abstraction-rtos/source/cy_worker_thread.c",
+        "./libs/anycloud-ota/source/port_support/serial_flash/ota_serial_flash.c",
         "./libs/bluetooth-freertos/platform/common/cybt_hci_rx_task.c",
         "./libs/bluetooth-freertos/platform/common/cybt_hci_tx_task.c",
         "./libs/bluetooth-freertos/platform/common/cybt_host_stack_platform_interface.c",
@@ -547,6 +573,13 @@
         "./libs/TARGET_CY8CKIT-062S2-43012/COMPONENT_CM4/system_psoc6_cm4.c",
         "./libs/abstraction-rtos/source/COMPONENT_FREERTOS/cyabs_freertos_helpers.c",
         "./libs/abstraction-rtos/source/COMPONENT_FREERTOS/cyabs_rtos_freertos.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/bootutil/src/bootutil_misc.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/cy_flash_map.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/cy_flash_psoc6.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/flash_qspi/flash_qspi.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/mem_config/mem_config_sfdp.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/ota_flash_map.c",
+        "./libs/anycloud-ota/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/cy_flash_pal/ota_flash_xip_map.c",
         "./libs/bluetooth-freertos/firmware/COMPONENT_43012/COMPONENT_MURATA-1LV/COMPONENT_HCI-UART/w_bt_firmware_controller.c",
         "./libs/clib-support/COMPONENT_FREERTOS/cy_mutex_pool.c",
         "./libs/connectivity-utilities/network/COMPONENT_LWIP/cy_nw_helper.c",
diff --git a/third_party/p6/p6_sdk/libs/anycloud-ota b/third_party/p6/p6_sdk/libs/anycloud-ota
index 040f563..adc942b 160000
--- a/third_party/p6/p6_sdk/libs/anycloud-ota
+++ b/third_party/p6/p6_sdk/libs/anycloud-ota
@@ -1 +1 @@
-Subproject commit 040f563c5fa34bf64a4ab487b7af35c6e6e9d7c5
+Subproject commit adc942bb85aa6e43021cbf31454314dbe6038e25
diff --git a/third_party/p6/p6_sdk/ota/ota_base_build.sh b/third_party/p6/p6_sdk/ota/ota_base_build.sh
new file mode 100755
index 0000000..ca072f8
--- /dev/null
+++ b/third_party/p6/p6_sdk/ota/ota_base_build.sh
@@ -0,0 +1,7 @@
+OUT_DIR=$1
+HEX_NAME=$2
+ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
+
+mv "$OUT_DIR"/"$HEX_NAME".hex "$OUT_DIR"/"$HEX_NAME".unsigned.hex
+
+./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ "$HEX_NAME" python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py create 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy ""
diff --git a/third_party/p6/p6_sdk/ota/ota_update_build.sh b/third_party/p6/p6_sdk/ota/ota_update_build.sh
new file mode 100755
index 0000000..4a02cc8
--- /dev/null
+++ b/third_party/p6/p6_sdk/ota/ota_update_build.sh
@@ -0,0 +1,13 @@
+OUT_DIR=$1
+HEX_NAME=$2
+ANYCLOUD_DIR=third_party/p6/p6_sdk/libs/anycloud-ota/
+
+mv "$OUT_DIR"/"$HEX_NAME".hex "$OUT_DIR"/"$HEX_NAME".unsigned.hex
+
+./"$ANYCLOUD_DIR"/scripts/sign_script.bash "$OUT_DIR"/ "$HEX_NAME" python3 arm-none-eabi-objcopy "-O ihex" "" "$ANYCLOUD_DIR"/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/scripts/ imgtool_v1.7.0/imgtool.py sign 0xFF 0x400 3584 1.0.0 0x00018000 0x001C0000 arm-none-eabi-objcopy "-k $ANYCLOUD_DIR/source/COMPONENT_OTA_MCUBOOT_PSOC/mcuboot/keys/cypress-test-ec-p256.pem"
+
+if [ -f "$OUT_DIR"/"$HEX_NAME".ota ]; then
+    rm "$OUT_DIR"/"$HEX_NAME".ota
+fi
+
+src/app/ota_image_tool.py create -v 0xFFF1 -p 0x8000 -vn 2 -vs "2.0" -da sha256 "$OUT_DIR"/"$HEX_NAME".bin "$OUT_DIR"/"$HEX_NAME".ota