please access TX2 Product Design Guide and check [Table 74. UART Pin Descriptions].
you may also refer to [Figure 46. UART Connections] to have alternative UARTs.
thanks
Even if you could use GPIO the ability to have properly timed I/O would be virtually impossible. The reliability would be close to zero. Use an actual UART. If you don’t have enough of the built in UARTs, then use USB serial UARTs.
I do think it is possible to use it as GPIO. The best option would be to write the code and execute it with the Cortex-R5 (SPE). This will give you the tightest possible control and very deterministic behavior. You would of course have to create a mailbox type system (or reuse something NVIDIA has) to communicate from your Linux kernel to the SPE.
Another option would be to write very tight code that executes with interrupts disabled on the Cortex-A57. I think this would be possible as well, if you are using the proper CPU core to do it and you don’t mind writing some ARM assembly. If you put some compiler directives around the code you might be able to stick to straight C code. You will definitely need to dive into the Parker TRM or study the existing tegra GPIO driver to understand how to do the low-level set and clear of the GPIO without relying on the existing kernel GPIO APIs. Having an understanding of the ARM instruction set and knowing how the C compiler generates the underlying assembly would be a definite plus for the task. If you don’t have that kind of expertise you would probably be better off paying someone else with the expertise. :-)
The one plus you have is you aren’t trying to do bit-bang UART RX.