Where can I learn about TCM registers?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Where can I learn about TCM registers?

Jump to solution
996 Views
adevries
Contributor V

Hello,

I have an 8M Mini processor I am trying to debug, and I'm having some difficulty learning about some of the debug registers on this processor. I came across this forum post (https://community.nxp.com/t5/i-MX-Processors/JTAG-Debuger-Selection-For-i-MX-8M-Mini/m-p/1177295), which supposedly allows debug of the M4 core. To enable M4-core debug, the JLinkScript runs the following lines of code:

JLINK_CORESIGHT_WriteAP(AHBAP_REG_ADDR, 0x007E0000);
JLINK_CORESIGHT_WriteAP(AHBAP_REG_DATA, 0x20008000);
JLINK_CORESIGHT_WriteAP(AHBAP_REG_ADDR, 0x007E0004);
JLINK_CORESIGHT_WriteAP(AHBAP_REG_DATA, 0x1FFE0009);
JLINK_CORESIGHT_WriteAP(AHBAP_REG_ADDR, 0x007E0008);
JLINK_CORESIGHT_WriteAP(AHBAP_REG_DATA, 0xE7FEE7FE);

This code isn't explained, and I can't find any information about these registers and what settings they control. The only thing the reference manual says about these addresses is that they're part of TCM Memory.

Can someone point me towards some more detailed information about these registers?

Labels (1)
Tags (3)
0 Kudos
Reply
1 Solution
892 Views
adevries
Contributor V

Hi @brian14,

Yes, I was talking with Jimmy about a related issue that actually spawned this post. I was confused at first when the reference manual said those addresses were tightly-coupled memory (TCM). I didn't realize that TCM was just a place to store data, I thought there were registers within the TCM. I now see that's incorrect, and the TCM appears to be where the M4 executes code from. 

This forum post was able to clear that information up for me.

View solution in original post

0 Kudos
Reply
4 Replies
953 Views
brian14
NXP TechSupport
NXP TechSupport

Hi @adevries

Thank you for contacting NXP Support.

TCM memory is part of ARM architecture, please have a look on the following reference:
ARM TCM (Tightly-Coupled Memory) handling in Linux — The Linux Kernel documentation

I hope this information will be helpful.

Have a great day!

0 Kudos
Reply
925 Views
adevries
Contributor V

Hi Brian,

Thanks for the response. That link on ARM TCM is useful. After reading that, it sounds like there aren't special registers at 0x007E0000, 0x007E0004, and 0x007E0008. Maybe that code is just writing data there. But why would it write data there? Is it a simple assembly program? Something else?

Does the Cortex M4 start running code from 0x007E0000 upon startup? If so, what document would tell me that? I don't see that information in the reference manual.

0 Kudos
Reply
899 Views
brian14
NXP TechSupport
NXP TechSupport

Hi @adevries

I noticed that you have another community thread answered by my colleague.
Re: Cannot access JTAG debug mode - NXP Community

Here, my colleague explains that there are not resources related to this configuration and the best support could be contact with the debugger's company.

Have a great day!

0 Kudos
Reply
893 Views
adevries
Contributor V

Hi @brian14,

Yes, I was talking with Jimmy about a related issue that actually spawned this post. I was confused at first when the reference manual said those addresses were tightly-coupled memory (TCM). I didn't realize that TCM was just a place to store data, I thought there were registers within the TCM. I now see that's incorrect, and the TCM appears to be where the M4 executes code from. 

This forum post was able to clear that information up for me.

0 Kudos
Reply