Reverse Engineering PCBs with JTAG
drive.google.com
drive.google.com
One idea I'd like to add: using EXTEST to identify the pins. If I understand the command correctly, it seems as if one could utilize the BSDL file to generate a series of EXTEST patterns that would each set one I/O pin high and the rest of them low. Then, you could just probe the IC pins until you found the high one. This is more or less the reverse of what he describes- he's applying a voltage and using the SAMPLE command to detect it.
To my understanding, this EXTEST method could also be used instead of the suggestion on slide 90 to write some VHDL/Verilog to copy a known input to an unknown output.
Doing any of this in an automated/programmatic way would probably take a better software suite than 20-day one mentioned, or at least a lower-level tool of some sort, I suppose.
EXTEST would probably work well in a situation more like the Arduino example from the slides, where the board is more of a breakout for a chip rather than the chip being part of a bigger system.
Edit: although, since he's using a wire and pushbutton to apply 3.3V to different pins, wouldn't he have the same problem you're suggesting I have?
Look for fun with pull-up resistors, sometimes you'll need to pull up and down. I2C with pullups on both pins unless you have active termination comes to mind. So throw another pull up in parallel with the existing hardware, nothing happens, hmm... Sometimes you're gonna want to pull down thru a resistor too.
[1]: http://hackaday.com/2013/10/02/jtagulator-finds-debug-interf...
https://docs.google.com/presentation/d/13p6O0C3aY-LSeqGAjfEg...