* grub-core/term/at_keyboard.c: Increase robustness on coreboot

and qemu.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2013-03-23 16:54:36 +01:00
parent e73ba5e8ca
commit d975e8d59c
2 changed files with 18 additions and 3 deletions

View file

@ -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> 2013-03-22 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/zfs/zfs.c: Fix incorrect handling of special volumes. * grub-core/fs/zfs/zfs.c: Fix incorrect handling of special volumes.

View file

@ -259,7 +259,13 @@ grub_keyboard_controller_write (grub_uint8_t c)
grub_outb (c, KEYBOARD_REG_DATA); 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 static grub_uint8_t
grub_keyboard_controller_read (void) grub_keyboard_controller_read (void)
@ -332,7 +338,7 @@ set_scancodes (void)
return; return;
} }
#if !(defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS)) #if !USE_SCANCODE_SET
current_set = 1; current_set = 1;
return; return;
#else #else
@ -570,9 +576,13 @@ grub_keyboard_controller_init (struct grub_term_input *term __attribute__ ((unus
keyboard_controller_wait_until_ready (); keyboard_controller_wait_until_ready ();
grub_inb (KEYBOARD_REG_DATA); 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_controller_orig = 0;
grub_keyboard_orig_set = 2; 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 #else
grub_keyboard_controller_orig = grub_keyboard_controller_read (); grub_keyboard_controller_orig = grub_keyboard_controller_read ();
grub_keyboard_orig_set = query_mode (); grub_keyboard_orig_set = query_mode ();