Patch based on:
https://raw.githubusercontent.com/hexdump0815/u-boot-misc/master/misc.gxb/add-usb-kbd-uenv-txt-and-own-strings.patch

diff --git a/configs/nanopi-k2_defconfig b/configs/nanopi-k2_defconfig
index 63d486e905..5fd09d930a 100644
--- a/configs/nanopi-k2_defconfig
+++ b/configs/nanopi-k2_defconfig
@@ -39,3 +39,25 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_DEBUG_UART_SKIP_INIT=y
 CONFIG_MESON_SERIAL=y
 CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MESON_GX_VPU_POWER_DOMAIN=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_MESON=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_CONSOLE_MUX=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP16 is not set
+CONFIG_CMD_ADC=y
+CONFIG_SARADC_MESON=y
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_BOOTDELAY=5
+CONFIG_USE_PREBOOT=y
+CONFIG_CMD_USB=y
+CONFIG_MESON_GXBB_USB_PHY=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_DWC2=y
diff --git a/configs/odroid-c2_defconfig b/configs/odroid-c2_defconfig
index f62e83a345..38baeaec55 100644
--- a/configs/odroid-c2_defconfig
+++ b/configs/odroid-c2_defconfig
@@ -49,3 +49,19 @@ CONFIG_DM_USB=y
 CONFIG_USB_DWC2=y
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_SMBIOS_MANUFACTURER="Hardkernel Co., Ltd."
+CONFIG_POWER_DOMAIN=y
+CONFIG_MESON_GX_VPU_POWER_DOMAIN=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_MESON=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP16 is not set
+CONFIG_CMD_ADC=y
+CONFIG_SARADC_MESON=y
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_BOOTDELAY=5
+CONFIG_USE_PREBOOT=y
diff --git a/configs/p200_defconfig b/configs/p200_defconfig
index 6e43bea276..d384d87c24 100644
--- a/configs/p200_defconfig
+++ b/configs/p200_defconfig
@@ -38,3 +38,25 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_DEBUG_UART_SKIP_INIT=y
 CONFIG_MESON_SERIAL=y
 CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MESON_GX_VPU_POWER_DOMAIN=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_MESON=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_DT_SIMPLEFB=y
+CONFIG_CONSOLE_MUX=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP16 is not set
+CONFIG_CMD_ADC=y
+CONFIG_SARADC_MESON=y
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_BOOTDELAY=5
+CONFIG_USE_PREBOOT=y
+CONFIG_CMD_USB=y
+CONFIG_MESON_GXBB_USB_PHY=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_DWC2=y
diff --git a/configs/p201_defconfig b/configs/p201_defconfig
index 9fc9d188d0..2bde343d1f 100644
--- a/configs/p201_defconfig
+++ b/configs/p201_defconfig
@@ -5,10 +5,7 @@ CONFIG_SYS_TEXT_BASE=0x01000000
 CONFIG_ENV_SIZE=0x2000
 CONFIG_DM_GPIO=y
 CONFIG_NR_DRAM_BANKS=1
-CONFIG_DEBUG_UART_BASE=0xc81004c0
-CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_IDENT_STRING=" p201"
-CONFIG_DEBUG_UART=y
+CONFIG_IDENT_STRING=" hexdump-gxbb"
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_MISC_INIT_R=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -35,7 +32,29 @@ CONFIG_PINCTRL_MESON_GXBB=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_RESET=y
-CONFIG_DEBUG_UART_ANNOUNCE=y
-CONFIG_DEBUG_UART_SKIP_INIT=y
-CONFIG_MESON_SERIAL=y
+# CONFIG_DEBUG_UART is not set
+# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
+# CONFIG_SERIAL_PRESENT is not set
+CONFIG_CONSOLE_MUX=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
 CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MESON_GX_VPU_POWER_DOMAIN=y
+CONFIG_DM_VIDEO=y
+CONFIG_VIDEO_MESON=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_DT_SIMPLEFB=y
+# CONFIG_VIDEO_BPP8 is not set
+# CONFIG_VIDEO_BPP16 is not set
+CONFIG_CMD_ADC=y
+CONFIG_SARADC_MESON=y
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_BOOTDELAY=5
+CONFIG_USE_PREBOOT=y
+CONFIG_CMD_USB=y
+CONFIG_MESON_GXBB_USB_PHY=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_DWC2=y
diff --git a/include/configs/meson64.h b/include/configs/meson64.h
index 50707a3197..e0c3b6293a 100644
--- a/include/configs/meson64.h
+++ b/include/configs/meson64.h
@@ -76,6 +76,9 @@
 #endif
 
 #ifndef CONFIG_EXTRA_ENV_SETTINGS
+/* the usb start below makes sure a usb keyboard is available when the autoboot prompt starts
+ * the stdin line is to disable the serial console as it might produce noise on the cmdline
+ * otherwise in some situations so that the system will hang in u-boot cmdline at boot */
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"stdin=" STDIN_CFG "\0" \
 	"stdout=" STDOUT_CFG "\0" \
@@ -86,6 +89,18 @@
 	"pxefile_addr_r=0x01080000\0" \
 	"ramdisk_addr_r=0x13000000\0" \
 	"fdtfile=amlogic/" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \
+	"bootenv_addr_r=0x01080000\0" \
+	"preboot=usb start; " \
+		"mmc dev 1; " \
+		"setenv stdin usbkbd; " \
+		"for target in 1 2;do " \
+		"for prefix in / /boot/;do " \
+			"if test -e mmc ${target}:1 ${prefix}uEnv.txt;then " \
+				"load mmc ${target}:1 ${bootenv_addr_r} ${prefix}uEnv.txt; " \
+				"env import -t ${bootenv_addr_r} ${filesize}; " \
+			"fi; " \
+		"done; " \
+	"done\0" \
 	BOOTENV
 #endif
 
