Hi, Is it possible to dump the emmc via jtag? and possibly write it
While it is possible to use JTAG to scan in directly to I/Os, TI doesn’t share the details of how to do that. Therefore, using JTAG tools like OpenOCD, you can load programs into memory, execute them and read/write from memory addresses.
What you can do is load a small program into memory that knows how to access the eMMC. You can also have that program fill in memory addresses with values read from the eMMC, then read those values out.
Programs like OpenOCD have flash commands, but I believe OpenOCD does not currently support eMMC flash. It would be possible to add support based on the comments I made above.
TI’s Code Composer Studio also does not seem to have support for eMMC flash.
At one point, I believe TI was working on adding eMMC flash support to their UniFlash tool, but I currently do not see that support available for the AM devices. I must be missing it, because https://e2e.ti.com/support/processors-group/processors/f/processors-forum/941068/ccs-tda4vmxevm-tda4vm-flash-emmc-using-uniflash does seem to indicate that the support exists, at least for writing and at least for some newer MPU-based devices. However, it is rather unclear if this extends to AM57x, I don’t see any documentation in the tool itself and the documentation link referenced in the e2e article seems to be broken.
The process I’ve used in the past to read out the contents of the eMMC is to create a bootable microSD card using Buildroot that will read the entire eMMC contents, compress them block by block, and store them into a file on the microSD card. I could really stand to update those instructions as it seems to be a frequently asked question.