Can USBOTG Be Used For UBoot And Linux Consoles

> 1. Can this work for U-Boot?

Yes, at least since U-Boot version 2008.10, the README file has stated:

Define the below if you wish to use the USB console. CONFIG_USB_DEVICE Define this to build a UDC device CONFIG_USB_TTY Define this to have a tty type of device available to talk to the UDC device CFG_CONSOLE_IS_IN_ENV Define this if you want stdin, stdout &/or stderr to be set to usbtty.
Note that these configuration symbols are not accessible using the menuconfig, and must be enabled in a configuration file.
Currently at least five boards use this U-Boot capability, based on the occurrence of CONFIG_USB_TTY in files in include/configs/, for example include/configs/ti_omap4_common.h.

This USB configuration requires non-default definitions for the stdin and stdout environment variables. Refer to the README documentation for the details.

Yes, Linux (at least since version 4.5) can have a serial console on a USB connection, either a USB-to-serial adapter on a host port or a USB serial gadget on a device port (using CDC/ACM).

For instance, in drivers/usb/gadget/Kconfig there’s the selection:

config U_SERIAL_CONSOLE
bool “Serial gadget console support”
depends on USB_G_SERIAL
help It supports the serial gadget can be used as a console.
In the Linux 5.7.8 kernel only two boards have default configurations that use this capability, for example see arch/arm/configs/aspeed_g4_defconfig.

Besides a proper configuration to build the necessary drivers, a serial-gadget console requires (1) the kernel parameter specification (e.g. console=ttyGS0,…), and (2) a login session initiated by a getty command (e.g. in the inittab file).

> 1. Am I insane for contemplating this path?

No comment.

Beware that should you encounter a kernel boot issue, the Linux serial-gadget console does not support earlycon nor earlyprintk capability.

Personally I prefer to use a serial link that is persistent regardless of the target board’s state. That ensures the terminal emulator program does not complain about lost connections.

Addendum

Unfortunately this Linux console on a USB serial gadget does not display boot messages generated by the kernel (before the login prompt), even if all drivers are statically linked in to the kernel image.
Although the syslog has messages like

console [ttyGS0] enabled
g_serial gadget: g_serial ready

gs_open: ttyGS0 ((ptrval),(ptrval))
before the salient Freeing unused kernel memory message, the host side does not receive any console messages until userspace is active.

This shortcoming is also reported in this guide: -sunxi.org/USB_Gadget/Serial