Infineon: Add PSoC63, PSoC61 platforms, update hw crypto acceleration, allow build on CM4 build

Release notes:
1. Added platforms PSoC63, PSoC61
2. Added possibility to build MCUBootApp for CM4 core and BlinkyApp for CM0p
3. Updated cy-mbedtls-acceleration package to support mbedtls-3.0
4. Change CY_SMIF_SYSCLK_HFCLK_DIVIDER to achieve increased SMIF clock source
5. Improved memory map configuration in json files
6. Added optional performance measurement macros
7. Improved usage of FIH types in security critical code branches
8. Updated documentation
9. Improved MISRAa nd CERT-C compliance
10. Switch to latest mtb-pdl-cat1 3.0.0
11. Fixed minor bugs
diff --git a/boot/cypress/MCUBootApp/misc/timebase_us.c b/boot/cypress/MCUBootApp/misc/timebase_us.c
new file mode 100644
index 0000000..dfe2ffd
--- /dev/null
+++ b/boot/cypress/MCUBootApp/misc/timebase_us.c
@@ -0,0 +1,99 @@
+/* Copyright 2022, Infineon Technologies AG.  All rights reserved.
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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
+ *
+ *  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 "timebase_us.h"
+
+#include "cy_pdl.h"
+#include "bootutil/bootutil_log.h"
+
+static const cy_stc_tcpwm_counter_config_t tcpwm_config =
+{
+    .period            = 0xFFFFFFFFU,
+    .clockPrescaler    = CY_TCPWM_COUNTER_PRESCALER_DIVBY_8, /* Clk_counter = Clk_input / 4 */
+    .runMode           = CY_TCPWM_COUNTER_CONTINUOUS, /* Wrap around at terminal count. */
+    .countDirection    = CY_TCPWM_COUNTER_COUNT_UP, /* Up counter, counting from 0 to period value. */
+    .compareOrCapture  = CY_TCPWM_COUNTER_MODE_COMPARE, /* Trigger interrupt/event signal when Counter value is equal to Compare0 */
+    .compare0          = 0U,
+    .compare1          = 0U,
+    .enableCompareSwap = false,
+    .interruptSources  = CY_TCPWM_INT_NONE,
+    .captureInputMode  = CY_TCPWM_INPUT_RISINGEDGE, /* This input is NOT used, leave it in default state (CY_TCPWM_INPUT_RISINGEDGE = 0UL) */
+    .captureInput      = CY_TCPWM_INPUT_0,
+    .reloadInputMode   = CY_TCPWM_INPUT_RISINGEDGE, /* This input is NOT used, leave it in default state (CY_TCPWM_INPUT_RISINGEDGE = 0UL) */
+    .reloadInput       = CY_TCPWM_INPUT_0,
+    .startInputMode    = CY_TCPWM_INPUT_RISINGEDGE, /* This input is NOT used, leave it in default state (CY_TCPWM_INPUT_RISINGEDGE = 0UL) */
+    .startInput        = CY_TCPWM_INPUT_0,
+    .stopInputMode     = CY_TCPWM_INPUT_RISINGEDGE, /* This input is NOT used, leave it in default state (CY_TCPWM_INPUT_RISINGEDGE = 0UL) */
+    .stopInput         = CY_TCPWM_INPUT_0,
+    .countInputMode    = CY_TCPWM_INPUT_LEVEL, /* Set this input to LEVEL and 1 (high logic level) */
+    .countInput        = CY_TCPWM_INPUT_1 /* So the counter will count input clock periods (Clk_counter, taking into account the clock prescaler) */
+};
+
+/*******************************************************************************
+* Function Name: timebase_us_init
+****************************************************************************//**
+*
+* \brief Performs initialization of the TCPWM0 block as a microsecond time source.
+*
+*/
+void timebase_us_init(void)
+{
+#ifdef CYW20829
+    (void) Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCK_COUNTER_EN0, CY_SYSCLK_DIV_8_BIT, 0UL);
+#else 
+    (void) Cy_SysClk_PeriphAssignDivider(PCLK_TCPWM0_CLOCKS0, CY_SYSCLK_DIV_8_BIT, 0UL);
+#endif
+    (void) Cy_SysClk_PeriphSetDivider(CY_SYSCLK_DIV_8_BIT, 0UL, 0UL);
+    (void) Cy_SysClk_PeriphEnableDivider(CY_SYSCLK_DIV_8_BIT, 0UL);
+
+    (void) Cy_TCPWM_Counter_Init(TCPWM0, 0, &tcpwm_config);
+    Cy_TCPWM_Counter_Enable(TCPWM0, 0);
+    Cy_TCPWM_TriggerStart_Single(TCPWM0, 0);
+}
+
+/*******************************************************************************
+* Function Name: timebase_us_deinit
+****************************************************************************//**
+*
+* \brief Performs deinitialization of the TCPWM0.
+*
+*/
+void timebase_us_deinit(void)
+{
+    (void) Cy_SysClk_PeriphDisableDivider(CY_SYSCLK_DIV_8_BIT, 0UL);
+
+    Cy_TCPWM_Counter_DeInit(TCPWM0, 0, &tcpwm_config);
+    Cy_TCPWM_Counter_Disable(TCPWM0, 0);
+    Cy_TCPWM_TriggerStopOrKill_Single(TCPWM0, 0);
+}
+
+/*******************************************************************************
+* Function Name: timebase_us_get_tick
+****************************************************************************//**
+*
+* \brief Returns current timer counter value
+*
+* \return current timer counter value as uint32_t
+*
+*/
+uint32_t timebase_us_get_tick(void)
+{
+    return Cy_TCPWM_Counter_GetCounter(TCPWM0, 0);
+}
\ No newline at end of file