Infineon: Add cyw20829 platform, shared slot feature, json memory map, psoc6 xip
Based in 1.8.0 release of MCUBoot library
This commit adds CYW20829 Infineon platform support with following capabilities:
1. Overwrite and swap upgrade mode support
2. Multi-image with up to 4 images
3. Hardware security counter is supported for CYW20829 platform
Add XIP support for PSOC6 platform - place BOOT slot in external memory and execute it in place using SMIF in XIP mode
and some new features for Infineon devices.
1. Shared upgrade slot feature - use one shared area for upgrade slots of multiple images
2. Memory map defined using JSON file - define memory regions for bootloader and user app in conventional way using JSON file
diff --git a/boot/zephyr/main.c b/boot/zephyr/main.c
index b375656..ab3b262 100644
--- a/boot/zephyr/main.c
+++ b/boot/zephyr/main.c
@@ -105,7 +105,7 @@
}
#endif
-MCUBOOT_LOG_MODULE_REGISTER(mcuboot);
+BOOT_LOG_MODULE_REGISTER(mcuboot);
#ifdef CONFIG_MCUBOOT_INDICATION_LED
/*
@@ -183,11 +183,10 @@
rsp->br_image_off +
rsp->br_hdr->ih_hdr_size);
- irq_lock();
#ifdef CONFIG_SYS_CLOCK_EXISTS
sys_clock_disable();
#endif
-#ifdef CONFIG_USB
+#ifdef CONFIG_USB_DEVICE_STACK
/* Disable the USB to prevent it from firing interrupts */
usb_disable();
#endif
@@ -213,6 +212,8 @@
__set_MSPLIM(0);
#endif
+#else
+ irq_lock();
#endif /* CONFIG_MCUBOOT_CLEANUP_ARM_CORE */
#ifdef CONFIG_BOOT_INTR_VEC_RELOC
@@ -390,7 +391,11 @@
if (detect_value == expected) {
if (delay > 0) {
+#ifdef CONFIG_MULTITHREADING
k_sleep(K_MSEC(50));
+#else
+ k_busy_wait(50000);
+#endif
/* Get the uptime for debounce purposes. */
int64_t timestamp = k_uptime_get();
@@ -409,7 +414,11 @@
}
/* Delay 1 ms */
+#ifdef CONFIG_MULTITHREADING
k_sleep(K_MSEC(1));
+#else
+ k_busy_wait(1000);
+#endif
}
}
}