Infineon: Rework custom UART pins, 20829 b0 rev support, fix known issues, v1.9.1-cypress
diff --git a/boot/cypress/MCUBootApp/main.c b/boot/cypress/MCUBootApp/main.c
index 926e36d..86f37fe 100644
--- a/boot/cypress/MCUBootApp/main.c
+++ b/boot/cypress/MCUBootApp/main.c
@@ -212,6 +212,23 @@
return false;
}
+static void DeepSleep_Prepare(void)
+{
+ static cy_stc_syspm_callback_params_t syspmSleepAppParams;
+ static cy_stc_syspm_callback_t syspmAppSleepCallbackHandler =
+ {
+ Cy_SCB_UART_DeepSleepCallback, CY_SYSPM_DEEPSLEEP, 0u, &syspmSleepAppParams,
+ NULL, NULL, 0};
+
+ syspmSleepAppParams.base = cy_retarget_io_uart_obj.base;
+ syspmSleepAppParams.context = (void *)&(cy_retarget_io_uart_obj.context);
+
+ if (!Cy_SysPm_RegisterCallback(&syspmAppSleepCallbackHandler)) {
+ BOOT_LOG_ERR("Failed to register syspmAppSleepCallbackHandler");
+ CY_ASSERT(false);
+ }
+}
+
int main(void)
{
struct boot_rsp rsp = {};
@@ -221,7 +238,7 @@
if (rc != CY_RSLT_SUCCESS) {
- CY_ASSERT((bool)0);
+ CY_ASSERT(false);
/* Loop forever... */
while (true) {
__WFI();
@@ -257,7 +274,7 @@
CY_RETARGET_IO_BAUDRATE);
if (rc != CY_RSLT_SUCCESS) {
- CY_ASSERT((bool)0);
+ CY_ASSERT(false);
/* Loop forever... */
while (true) {
__WFI();
@@ -286,7 +303,7 @@
/* Check service application completion status */
if (check_service_app_status() != 0) {
BOOT_LOG_ERR("Service application failed");
- CY_ASSERT((bool)0);
+ CY_ASSERT(false);
/* Loop forever... */
while (true) {
__WFI();
@@ -331,6 +348,8 @@
}
}
+ DeepSleep_Prepare();
+
while (true) {
if (boot_succeeded) {
(void)Cy_SysPm_CpuEnterDeepSleep(CY_SYSPM_WAIT_FOR_INTERRUPT);