diff --git a/doc/developer-guides/hld/hv-console.rst b/doc/developer-guides/hld/hv-console.rst index c831825fd..d1b7c17c4 100644 --- a/doc/developer-guides/hld/hv-console.rst +++ b/doc/developer-guides/hld/hv-console.rst @@ -70,10 +70,24 @@ Specifically: the hypervisor shell. Inputs to the physical UART will be redirected to the vUART starting from the next timer event. -- The vUART is deactivated after a :kbd:`Ctrl` + :kbd:`Space` hotkey is received - from the physical UART. Inputs to the physical UART will be - handled by the hypervisor shell starting from the next timer - event. +- The vUART enters escaping mode after a BREAK character is received from + the physical UART. When in escaping mode, next received character will + be a command. After processing this command, the vUART exits the escaping + mode. So far, following escaping commands are supported: + + - BREAK charater. If user sends break charater again in escaping mode, + one break charater will be sent to vUART. + + - Character "e". This will deactive vUART. Inputs to the physical UART will + be handled by the hypervisor shell starting from the next timer event. + + Other characters are not supported. The physical UART will prompt out an + "Unknown escaping key" message and the active vUART exits escaping mode. + + Note that the BREAK character is a control character and different serial + terminals have different ways to send it, for example, ` + F` + in minicom, ` + ` in picocom, right click -> special + command -> break in putty serial terminal. The workflows are described as follows: diff --git a/doc/user-guides/acrn-shell.rst b/doc/user-guides/acrn-shell.rst index 8c2f59f3c..e52fbfc30 100644 --- a/doc/user-guides/acrn-shell.rst +++ b/doc/user-guides/acrn-shell.rst @@ -167,7 +167,9 @@ vm_console The ``vm_console `` command switches the ACRN's console to become the VM's console. -Press :kbd:`Ctrl` + :kbd:`Alt` + :kbd:`Space` to return to the ACRN shell console. +Send a BREAK character to enter escaping mode and a character e to return to +the ACRN shell console. For details on how the hypervisor console works, +refer to :ref:`hv-console`. vioapic ======= diff --git a/hypervisor/debug/shell_priv.h b/hypervisor/debug/shell_priv.h index 45e88ed4c..9492ee4c2 100644 --- a/hypervisor/debug/shell_priv.h +++ b/hypervisor/debug/shell_priv.h @@ -73,7 +73,7 @@ struct shell { #define SHELL_CMD_VM_CONSOLE "vm_console" #define SHELL_CMD_VM_CONSOLE_PARAM "" -#define SHELL_CMD_VM_CONSOLE_HELP "Switch to the VM's console. Use [Ctrl+Spacebar] to return to the ACRN shell "\ +#define SHELL_CMD_VM_CONSOLE_HELP "Switch to the VM's console. Use 'BREAK + e' to return to the ACRN shell "\ "console" #define SHELL_CMD_INTERRUPT "int"