I’m not from NVIDIA, but you do need a device mode port for flashing. Technically, you could put the module on a different carrier board for flash, and then transfer it to your carrier board if you want. Serial console debug is not needed, but is quite useful (though for a third party device it might be advisable to either not have this or to disable it).
That’s one I can’t answer. Someone from NVIDIA could tell you (A) which ports can do this, and (B) what device tree changes are needed.
Normally a device mode port can handle more than one device. For example, a programmable keyboard is likely many devices. It is likely that serial console and some other device can share the same port if set up correctly.
I observed that USB0_D_N/P in Jetson Nano can be used as serial debug interface, whether the same can be applicable for Orin NX? or Debug UART should be used as debug interface?
Actually, the real “debug port” is the UART interface. Not the usb port. If you ever compare the log coming from these two ports then you will understand what I mean. This is applicable on every previous jetson platforms.
The UART port can dump the log since bootloader. But the USB port cannot. USB port can only dump the log after kernel is up. If your board hangs during boot before kernel is up, then USB port won’t be able to see any log. However, UART can still see and then debug.