[PATCH 33/47] bsp/tms570: Honor DBGRST for TMS570LC4357

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Dec 21 14:38:06 UTC 2023


From: Tyler Miller <tyler.miller at airbusus.com>

---
 bsps/arm/tms570/include/bsp/ti_herc/reg_sys.h | 10 ++++++++++
 bsps/arm/tms570/start/bspstarthooks-hwinit.c  | 12 ++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/bsps/arm/tms570/include/bsp/ti_herc/reg_sys.h b/bsps/arm/tms570/include/bsp/ti_herc/reg_sys.h
index 2407aeac8c..d5583a1cca 100644
--- a/bsps/arm/tms570/include/bsp/ti_herc/reg_sys.h
+++ b/bsps/arm/tms570/include/bsp/ti_herc/reg_sys.h
@@ -629,6 +629,16 @@ typedef struct{
 /* field: WDRST - Watchdog reset flag. */
 #define TMS570_SYS1_SYSESR_WDRST BSP_BIT32(13)
 
+#if TMS570_VARIANT == 4357
+
+/* field: DBGRST - Debug reset flag. */
+#define TMS570_SYS1_SYSESR_DBGRST BSP_BIT32(11)
+
+/* field: ICSTRST - Interconnect reset flag. */
+#define TMS570_SYS1_SYSESR_ICSTRST BSP_BIT32(7)
+
+#endif
+
 /* field: CPURST - CPU reset flag. This bit is set when the CPU is reset. */
 #define TMS570_SYS1_SYSESR_CPURST BSP_BIT32(5)
 
diff --git a/bsps/arm/tms570/start/bspstarthooks-hwinit.c b/bsps/arm/tms570/start/bspstarthooks-hwinit.c
index f17c3bf555..4b3fe2fbbf 100644
--- a/bsps/arm/tms570/start/bspstarthooks-hwinit.c
+++ b/bsps/arm/tms570/start/bspstarthooks-hwinit.c
@@ -101,8 +101,20 @@ BSP_START_TEXT_SECTION void bsp_start_hook_0( void )
     /*SAFETYMCUSW 5 C MR:NA <APPROVED> "for(;;) can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
     /*SAFETYMCUSW 26 S MR:NA <APPROVED> "for(;;) can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
     /*SAFETYMCUSW 28 D MR:NA <APPROVED> "for(;;) can be removed by adding "# if 0" and "# endif" in the user codes above and below" */
+#if TMS570_VARIANT == 4357
+    /*
+     * During code-loading/debug-resets SR[2][4] may get set (indicates double
+     * ECC error in internal RAM) ignore for now as its resolved with ESM
+     * init/reset below.
+     */
+    if ((TMS570_SYS1.SYSESR & TMS570_SYS1_SYSESR_DBGRST) == 0) {
+      for (;; ) {
+      }           /* Wait */
+    }
+#else
     for (;; ) {
     }           /* Wait */
+#endif
   }
 
   /* Initialize System - Clock, Flash settings with Efuse self check */
-- 
2.35.3



More information about the devel mailing list