NXP_iMX8M_Connect_CortexM7.JLinkScript 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 Plus 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_ADDR, 0x3039000C);
  40. JLINK_CORESIGHT_WriteAP(JLINK_CORESIGHT_AP_REG_DATA, 0xAA);
  41. JLINK_CORESIGHT_WriteAP(JLINK_CORESIGHT_AP_REG_ADDR, 0x3039000C);
  42. v = JLINK_CORESIGHT_ReadAP(JLINK_CORESIGHT_AP_REG_DATA);
  43. Report1("****** Reset Release with M7_RCR : ", v);
  44. }
  45. /*********************************************************************
  46. *
  47. * SetupTarget
  48. */
  49. void SetupTarget(void)
  50. {
  51. Report("***************************************************");
  52. Report("J-Link script: Prepare Landing Zone");
  53. Report("***************************************************");
  54. JLINK_MEM_WriteU32(0x0, 0x20020000);
  55. JLINK_MEM_WriteU32(0x4, 0x9);
  56. JLINK_MEM_WriteU32(0x8, 0xE7FEE7FE);
  57. Report("***************************************************");
  58. Report("J-Link script: Release Wait");
  59. Report("***************************************************");
  60. JLINK_MEM_WriteU32(0x30340058, 0x0000000);
  61. }