diff --git a/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts b/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts
index e8348b2728..b24a939959 100644
--- a/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm/dts/meson-gxl-s905x-libretech-cc.dts
@@ -14,7 +14,7 @@
 / {
 	compatible = "libretech,aml-s905x-cc", "amlogic,s905x",
 		     "amlogic,meson-gxl";
-	model = "Libre Computer AML-S905X-CC";
+	model = "Armbian aml-s9xx-box u-boot s905x-s912";
 
 	aliases {
 		serial0 = &uart_AO;
@@ -55,17 +55,18 @@
 		compatible = "gpio-leds";
 
 		system {
-			label = "librecomputer:system-status";
+//			label = "librecomputer:system-status";
+			label = "system-status";
 			gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>;
 			default-state = "on";
 			panic-indicator;
 		};
 
-		blue {
-			label = "librecomputer:blue";
-			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "heartbeat";
-		};
+//		blue {
+//			label = "librecomputer:blue";
+//			gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
+//			linux,default-trigger = "heartbeat";
+//		};
 	};
 
 	memory@0 {
diff --git a/configs/libretech-cc_defconfig b/configs/libretech-cc_defconfig
index 48e8800ce4..d3b779f2e8 100644
--- a/configs/libretech-cc_defconfig
+++ b/configs/libretech-cc_defconfig
@@ -5,10 +5,7 @@ CONFIG_ENV_SIZE=0x2000
 CONFIG_DM_GPIO=y
 CONFIG_MESON_GXL=y
 CONFIG_NR_DRAM_BANKS=1
-CONFIG_DEBUG_UART_BASE=0xc81004c0
-CONFIG_DEBUG_UART_CLOCK=24000000
-CONFIG_IDENT_STRING=" libretech-cc"
-CONFIG_DEBUG_UART=y
+CONFIG_IDENT_STRING=" armbian-gxl"
 CONFIG_OF_BOARD_SETUP=y
 CONFIG_MISC_INIT_R=y
 # CONFIG_DISPLAY_CPUINFO is not set
@@ -42,9 +39,10 @@ CONFIG_POWER_DOMAIN=y
 CONFIG_MESON_GX_VPU_POWER_DOMAIN=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_USB=y
 CONFIG_DM_USB=y
 CONFIG_USB_XHCI_HCD=y
@@ -64,3 +62,8 @@ CONFIG_SYS_WHITE_ON_BLACK=y
 CONFIG_VIDEO_MESON=y
 CONFIG_VIDEO_DT_SIMPLEFB=y
 CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_DM_KEYBOARD=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_BOOTDELAY=5
+CONFIG_USE_PREBOOT=y
diff --git a/include/configs/meson64.h b/include/configs/meson64.h
index 50707a3197..cb77091a0a 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,17 @@
 	"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; " \
+		"setenv stdin usbkbd; " \
+		"for target in 0 1;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
 
