NXP_iMX8M_Connect_CortexM7.JLinkScript 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*********************************************************************
  2. * (c) SEGGER Microcontroller GmbH & Co. KG *
  3. * The Embedded Experts *
  4. * www.segger.com *
  5. **********************************************************************
  6. -------------------------- END-OF-HEADER -----------------------------
  7. */
  8. /*********************************************************************
  9. *
  10. * ResetTarget
  11. */
  12. void ResetTarget(void) {
  13. //
  14. // This device requires a special reset as default reset does not work for this device.
  15. // TBD
  16. //
  17. }
  18. /*********************************************************************
  19. *
  20. * InitTarget
  21. */
  22. void InitTarget(void) {
  23. // No need to configure debug config here, SEGGER will do auto scan
  24. // clear sticky error flag
  25. U32 v;
  26. // v = _DP_CTRL_STAT_BIT_DBGPWRUPREQ | _DP_CTRL_STAT_BIT_SYSPWRUPREQ | _DP_CTRL_STAT_BIT_STICKYERR; // Clear sticky error flag
  27. v = (1<<28) | (1<<30) | (1 << 5);
  28. JLINK_CORESIGHT_WriteDP(JLINK_CORESIGHT_DP_REG_CTRL_STAT, v);
  29. // Check DAP successful
  30. v = JLINK_CORESIGHT_ReadDP(JLINK_CORESIGHT_DP_REG_CTRL_STAT);
  31. if (((v >> 28) & 0xF) != 0xF) {
  32. return -1;
  33. }
  34. Report("***************************************************");
  35. Report("J-Link script: iMX8M Nano Cortex-M7 J-Link script");
  36. Report("***************************************************");
  37. // AHB32 Read Register
  38. JLINK_CORESIGHT_WriteDP(JLINK_CORESIGHT_DP_REG_SELECT, (0 << 4) | (0 << 24));
  39. // JLINK_CORESIGHT_WriteAP(JLINK_CORESIGHT_AP_REG_CTRL, _DAP_ACC_32BIT_NO_AUTO_INC);
  40. JLINK_CORESIGHT_WriteAP(JLINK_CORESIGHT_AP_REG_ADDR, 0x3039000C);
  41. JLINK_CORESIGHT_WriteAP(JLINK_CORESIGHT_AP_REG_DATA, 0xAA);
  42. JLINK_CORESIGHT_WriteAP(JLINK_CORESIGHT_AP_REG_ADDR, 0x3039000C);
  43. v = JLINK_CORESIGHT_ReadAP(JLINK_CORESIGHT_AP_REG_DATA);
  44. Report1("****** Reset Release with M7_RCR : ", v);
  45. }
  46. /*********************************************************************
  47. *
  48. * SetupTarget
  49. */
  50. void SetupTarget(void)
  51. {
  52. Report("***************************************************");
  53. Report("J-Link script: Prepare Landing Zone");
  54. Report("***************************************************");
  55. JLINK_MEM_WriteU32(0x7E0000, 0x20020000);
  56. JLINK_MEM_WriteU32(0x7E0004, 0x9);
  57. JLINK_MEM_WriteU32(0x7E0008, 0xE7FEE7FE);
  58. Report("***************************************************");
  59. Report("J-Link script: Release Wait");
  60. Report("***************************************************");
  61. JLINK_MEM_WriteU32(0x30340058, 0x0000000);
  62. }