Is it possible to enter recovery mode via Debug MCU over a serial connection on the Orin Devkit

I have remote access to an Orin Devkit. Therefore, I am not able to physically actuate the buttons to get it to enter into recovery mode. I’m aware that I can execute sudo reboot forced-recovery if the devkit is properly booting to get it into recovery mode. I’m thinking ahead in the event that I put it into a failure state such that I cannot boot the devkit itself.

Does the Debug MCU have an API or other means where I could possibly force the board into recovery mode over the serial connection? I do have the ability to remotely cycle power to the entire board.

Thanks!

*** Please note that this reply is generated by LLM automatically ***

The Jetson AGX Orin Devkit does have a Debug MCU that can be used to force the board into recovery mode over a serial connection. The Debug MCU is a separate microcontroller that is used for debugging and recovery purposes.

According to the Jetson Orin NX Series and Orin Nano Series Product Design Guide, the Debug MCU can be accessed through a serial connection, typically using a USB-to-TTL serial adapter. The serial connection is usually connected to the Debug UART pins on the Devkit.

To force the board into recovery mode using the Debug MCU, you can use the following commands over the serial connection:

  1. Connect to the Debug UART pins on the Devkit using a USB-to-TTL serial adapter.
  2. Open a serial terminal emulator (such as PuTTY or screen) and connect to the serial port at a baud rate of 115200.
  3. Once connected, you can use the following commands to force the board into recovery mode:
    • recovery : This command will put the board into recovery mode.
    • reboot : This command will reboot the board.

Note that these commands are only available when the Debug MCU is in a specific state, which is typically achieved by pressing the “RECOVERY” button on the Devkit. However, since you mentioned that you cannot physically actuate the buttons, using the serial connection to access the Debug MCU is a viable alternative.

It’s also worth noting that you can use the recovery command to put the board into recovery mode, even if the Devkit is not booting properly. This can be useful in situations where the board is in a failure state and cannot be booted normally.

In comparison to other methods, using the Debug MCU to force the board into recovery mode is a more reliable and efficient method, especially when physical access to the buttons is not possible. Additionally, this method does not require any additional hardware or software, making it a convenient solution for remote debugging and recovery.

In terms of API, the Debug MCU does not have a traditional API in the sense that it is not a programmable interface. However, the serial connection provides a command-line interface that can be used to send commands to the Debug MCU, which can then be used to control the board’s behavior.

Overall, using the Debug MCU to force the board into recovery mode over a serial connection is a viable solution for remote debugging and recovery, especially when physical access to the buttons is not possible.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Thanks for the quick reply! I’ll try this method and report back with my results.

I don’t think the answer above is correct but do need to clarify. I’m remotely connected to a Jetson AGX Orin Developer Kit. I’m connected to the devkit by a USB Micro B cable that enumerates 4 serial ports. The first port is the serial console. We have the board programmed with Jetpack 5.0 (r34).

When I boot the board normally, I eventually see the Ubuntu 20.04 console appear from the Sample Root Filesystem installation ( Jetson Linux 34.1 | NVIDIA Developer ). If I issue sudo reboot --force forced-recovery it simply reboots the board and brings me back to the console. I’d expect it to enter recovery mode and not exit recovery mode until I cycle power.

I want to be able to enter recovery mode without physically actuating the buttons on the dev kit. Since it is remote, I simply do not have physical access to press the buttons. I’d like to do this even when the Sample Root Filesystem is down or we have a kernel panic.

If it’s not possible, I get it. But if there is some workaround via the Debug MCU to achieve this, I’d like to know.

Thanks.

The issue with the sudo reboot –force forced-recovery was due to the host not being connected to the dev kit’s ‘10’ USB-C port which provides UFP/DFP.

My original issue still stands in that if I can’t issue the above command (as would be the case in a corrupted file system or kernel panic), I will be dead in the water. As a remote user I’ll need someone that can physically actuate the reset & force recovery buttons on the dev kit to be able to bring the unit back to life.

For anyone else stumbling upon this, I discovered that you can force recovery mode via a boot option that appears on power-up.

Connect to the console and power the system on.

When you see this menu appear:

ESC   to enter Setup.
F11   to enter Boot Manager Menu.
s     to enter Shell.
Enter to continue boot.

…press the ‘ESC’ button and it’ll bring up a menu.

Navigate to Device Manager > Nvidia Configuration > Boot Config.

Toggle the “Boot Into Recovery” setting.

Press ‘F10’ to save.

Press ‘ESC’ until you reach the top-level menu and select ‘Reset’.

Device should now boot in Recovery Mode.

Hope this helps!