We starting mass production of a custom device. It uses Chinese MCU LT1901. MCU core is arm926ej-s. MCU boots from NAND flash. We are forced to program NAND flash before soldering on PCB. I don't like it. I want to have a way to program NAND after soldering over JTAG. I have only Chinese documentation for this MCU and this document doesn't have information about JTAG. I have JTAGs like Link, FT2232H module. I know in theory it's possible to do over JTAG. But is it possible if I have not information about JTAG? I tried to connect J-Link commander for different devices with the same core, but it fails. What is the easiest way to program NAND over JTAG in my case?
There are two possible ways of programming flash over JTAG in such a circuit:
use JTAG boundary scan to directly bitbang flash chip pins connected to the CPU as if you connected programmer to it. This usually requires detailed mapping of chip pins to boundary scan register (e.g. BDSL file), knowledge of how the flash chip is connected to the CPU, and programming algorithms. AFAIK urJTAG project offers some facilities for this but you will likely need to customize if for your specific project.
use JTAG debugging functionality (e.g. ARM's CoreSight) to upload a small program into the CPU RAM that would effectively turn the CPU into a flash programmer and allow you to program the chip connected to it. Advantage of this method is that it's less dependent on specific pinout and connectivity between CPU and flash, much faster than boundary scan bitbanging. OpenOCD implements flashing algorithms for many CPUs and flash chips. You can also look into commercial products like Segger J-Link.