I would like to write some Windows PC software that performs some automated tests on new boards at least partially via the JTAG connector (verifying that the FPGA is powered up and responding, uploading a basic configuration, and verifying that onboard external RAM and Flash are operational). There'll be some user interaction (mostly for reporting issues and confirming that LEDs have lit up etc) but mostly it should run by itself.
I'm sure this is a common requirement but I couldn't find any specific guidance on the best way to go about implementing this, in particular how to actually do the configuration and RAM testing via JTAG, and how to have the PC test app communicate using the JTAG UART with some test firmware in the FPGA. If it's possible to perform tests directly (register read/write via JTAG) without actually uploading test firmware, that's even better.
(There was some mention of XMD, but little specifics on how to control this from another app rather than have a human do it; also some mention of iMPACT, but this seems to be more limited, eg. no UART function. Or maybe there's something else that I missed entirely? Is there a JTAG library/API/SDK available?)