I’m trying to validate the EIM interface on a Colibri-iMX7 and Colibri Evaluation Board. I’ve found three tools to read and write to configuration registers of peripherals. They are all having trouble reading certain registers.
I’m running angstrom linux built with the Yocto project. I followed this guide. http://developer.toradex.com/knowledge-base/board-support-package/openembedded-(core)
First, I found and used a program called devreg.
I had to hack away a little to get it working.
Then, I tried memtool by adding IMAGE_INSTALL_append = " imx-test" in my local.conf.
Both could read and write many registers. I toggled a gpio (captured the output on a scope) to make sure they were working. However, when I tried to write to registers that configure the EIM, I couldn’t write. I started looking at the CCM and RDC. Trying to read certain registers in the RDC caused the board to freeze. SSH became unresponsive, the display stopped, the serial port is froze. I could read RDC_MRSA0 just fine, but trying to read RDC_MRSA16, for example, caused everything to stop working. Other registers in the RDC have also caused it to lock up and the only fix I’ve found is a reboot.
Next I loaded up the DS-5 debugger and Eclipse with the Blinky-M4 example. I connected to the M4 core and went to look at the registers. I halted the core and opened up the RDC section. It read some but then said “Unavailable” for others and started the core again. See attached image. When I tried to re-halt I got the following error:
! Unable to stop device Cortex-M4
! Target in wrong state/mode.
Any ideas or advice would be much appreciated, thank you.