]> git.sur5r.net Git - u-boot/commitdiff
x86: efi-x86_payload: Enable usb keyboard during boot
authorBin Meng <bmeng.cn@gmail.com>
Sun, 17 Jun 2018 12:57:53 +0000 (05:57 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Sun, 24 Jun 2018 00:56:04 +0000 (08:56 +0800)
For boards that don't route serial port pins out, it's quite common
to attach a USB keyboard as the input device, along with a monitor.
However USB is not automatically started in the generic efi payload
codes. This uses a payload specific last_stage_init() to start the
USB bus, so that a USB keyboard can be used on the U-Boot shell.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/cpu.c
arch/x86/cpu/efi/payload.c
include/configs/efi-x86_payload.h

index db36553d059b411ecf08efdc45e92b1260222c66..6aefa12a7c52541e18df8e9aa0094df5adc1417a 100644 (file)
@@ -193,7 +193,7 @@ void show_boot_progress(int val)
        outb(val, POST_PORT);
 }
 
-#ifndef CONFIG_SYS_COREBOOT
+#if !defined(CONFIG_SYS_COREBOOT) && !defined(CONFIG_EFI_STUB)
 /*
  * Implement a weak default function for boards that optionally
  * need to clean up the system before jumping to the kernel.
index 9fd9f57776f7e79637ce2fbaee02646f85dea9c7..e3f0f825f30a67996359b850593f8f0d6fac7dec 100644 (file)
@@ -7,6 +7,7 @@
 #include <common.h>
 #include <efi.h>
 #include <errno.h>
+#include <usb.h>
 #include <asm/post.h>
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -160,3 +161,11 @@ int reserve_arch(void)
 
        return 0;
 }
+
+int last_stage_init(void)
+{
+       /* start usb so that usb keyboard can be used as input device */
+       usb_init();
+
+       return 0;
+}
index 9c62fd24b886b176bd9d2912bb44eb7e1ee06741..1cf5c037e850c4803ca14520b5066a998f57fdd3 100644 (file)
@@ -14,7 +14,7 @@
 
 #define CONFIG_SYS_MONITOR_LEN         (1 << 20)
 
-#define CONFIG_STD_DEVICES_SETTINGS    "stdin=serial,i8042-kbd\0" \
+#define CONFIG_STD_DEVICES_SETTINGS    "stdin=serial,i8042-kbd,usbkbd\0" \
                                        "stdout=serial,vidconsole\0" \
                                        "stderr=serial,vidconsole\0"