]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/term/at_keyboard.c: Increase robustness on coreboot
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 23 Mar 2013 15:54:36 +0000 (16:54 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 23 Mar 2013 15:54:36 +0000 (16:54 +0100)
and qemu.

ChangeLog
grub-core/term/at_keyboard.c

index 8175269fa65e69676cc703a9b3d40e963147f61d..9841659a1e04c89d96d8bf96889f0ffe462210d9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-23  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/term/at_keyboard.c: Increase robustness on coreboot
+       and qemu.
+
 2013-03-22  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/fs/zfs/zfs.c: Fix incorrect handling of special volumes.
index 2afccebc4a95bba62cc0590ce8de22acb2af7fc0..b2f328f9f08246274be2a8e027b20409acc8e445 100644 (file)
@@ -259,7 +259,13 @@ grub_keyboard_controller_write (grub_uint8_t c)
   grub_outb (c, KEYBOARD_REG_DATA);
 }
 
-#if !defined (GRUB_MACHINE_MIPS_LOONGSON) && !defined (GRUB_MACHINE_QEMU) && !defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
+#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
+#define USE_SCANCODE_SET 1
+#else
+#define USE_SCANCODE_SET 0
+#endif
+
+#if !USE_SCANCODE_SET
 
 static grub_uint8_t
 grub_keyboard_controller_read (void)
@@ -332,7 +338,7 @@ set_scancodes (void)
       return;
     }
 
-#if !(defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS))
+#if !USE_SCANCODE_SET
   current_set = 1;
   return;
 #else
@@ -570,9 +576,13 @@ grub_keyboard_controller_init (struct grub_term_input *term __attribute__ ((unus
       keyboard_controller_wait_until_ready ();
       grub_inb (KEYBOARD_REG_DATA);
     }
-#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
+#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
   grub_keyboard_controller_orig = 0;
   grub_keyboard_orig_set = 2;
+#elif defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_COREBOOT)
+  /* *BSD relies on those settings.  */
+  grub_keyboard_controller_orig = KEYBOARD_AT_TRANSLATE;
+  grub_keyboard_orig_set = 2;
 #else
   grub_keyboard_controller_orig = grub_keyboard_controller_read ();
   grub_keyboard_orig_set = query_mode ();