Hello and Happy new year! I am currently implementing OpenOCD support for the xPC56 microcontrollers, but I am facing some difficulties. These MCUs are developed by NXP/Freescale (MPC56xx) and STM (SPC56x) and based on a PowerPC E200 core.
More doc: http://www.st.com/content/ccc/resource/technical/document/reference_manual/cf/ad/d5/76/55/1f/49/de/CD00192452.pdf/files/CD00192452.pdf/jcr:content/translations/en.CD00192452.pdf https://www.nxp.com/docs/en/reference-manual/e200z0RM.pdf They are accessed by JTAG, but in a rather strange way. There is several TAPs for one chip, and instead of daisy chaining each of them, the external TAP is shared by several ones. The master TAP has a 5-bits IR and its main function is to select with specific IR opcode an auxiliary TAP. For instance, the E200 TAP with a 10-bits IR or the Nexus TAP with a 4-bits IR. If you want to access a specific IR on the E200 core like JTAG ID, you would need to write 5 bits in the IR with "ACCESS_AUX_TAP_ONCE", go through UPDATE_IR, then write 10 bits in the IR with the JTAG ID opcode of your choice. Each subsequent access to IR will be redirected again to the E200 core. To access back the master TAP, you need to go through the DR PAUSE state which will reset the jtag controller (!!!). This seems to be a problem with current OpenOCD design ; from the C code, the configuration files or doc I have read, it seems that only fixed size IR are used with no way to select them dynamically. Another problem is the special action triggered by DR PAUSE. The MCU driver should be able to order the JTAG interface to go through DR PAUSE (to reset the jtag controller) or not (to speed up operations). I am currently using the FTDI interface, and the current code, the transition DR SHIFT - DR EXIT1 - DR PAUSE is hard coded for each DR scan. I worked around that by disabling this code to end in EXIT1 state, then by allowing to start a state move from the unstable state EXIT1. So I am wondering, is supporting this kind of architecture is part of the roadmap? Could I get some help to find an elegant way to adapt it with current OpenOCD design? Regards, Antoine ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel