Add initial implementation of MCUBoot application for Cypress PSOC6 platform

Signed-off-by: Roman Okhrimenko <roman.okhrimenko@cypress.com>
diff --git a/boot/cypress/MCUBootApp/main.c b/boot/cypress/MCUBootApp/main.c
new file mode 100644
index 0000000..47f494a
--- /dev/null
+++ b/boot/cypress/MCUBootApp/main.c
@@ -0,0 +1,80 @@
+/***************************************************************************//**
+* \file main.c
+* \version 1.0
+********************************************************************************
+* \copyright
+* SPDX-License-Identifier: Apache-2.0
+*
+* 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.
+*******************************************************************************/
+
+/* Cypress pdl headers */
+#include "cy_pdl.h"
+#include "cyhal.h"
+#include "cy_retarget_io.h"
+#include "cy_result.h"
+
+#include "sysflash/sysflash.h"
+#include "flash_map_backend/flash_map_backend.h"
+
+#include "bootutil/image.h"
+#include "bootutil/bootutil.h"
+#include "bootutil/sign_key.h"
+
+#include "bootutil/bootutil_log.h"
+
+/* Define pins for UART debug output */
+
+#define CY_DEBUG_UART_TX (P5_1)
+#define CY_DEBUG_UART_RX (P5_0)
+
+static void do_boot(struct boot_rsp *rsp)
+{
+    uint32_t app_addr = 0;
+
+    app_addr = (rsp->br_image_off + rsp->br_hdr->ih_hdr_size);
+
+    BOOT_LOG_INF("Starting User Application on CM4 (wait)...");
+    Cy_SysLib_Delay(100);
+
+    cy_retarget_io_deinit();
+
+    Cy_SysEnableCM4(app_addr);
+
+    while (1)
+    {
+        __WFI() ;
+    }
+}
+
+int main(void)
+{
+    cy_rslt_t rc = !CY_RSLT_SUCCESS;
+    struct boot_rsp rsp ;
+
+    /* enable interrupts */
+    __enable_irq();
+
+    /* Initialize retarget-io to use the debug UART port */
+    cy_retarget_io_init(CY_DEBUG_UART_TX, CY_DEBUG_UART_RX, CY_RETARGET_IO_BAUDRATE);
+
+    BOOT_LOG_INF("MCUBoot Bootloader Started");
+
+    if (boot_go(&rsp) == 0) {
+        BOOT_LOG_INF("User Application validated successfully");
+        do_boot(&rsp);
+    } else
+        BOOT_LOG_INF("MCUBoot Bootloader found none of bootable images") ;
+
+    return 0;
+}