MIPS qemu at_keyboard support.
* gentpl.py (videoinkernel): Add qemu-mips. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Add necessary headers. * grub-core/Makefile.core.def (kernel): Add at_keyboard and layout. * grub-core/kern/mips/qemu_mips/init.c (grub_machine_init): Init new modules. * grub-core/term/at_keyboard.c (grub_keyboard_controller_init) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't consider original set. * grub-core/term/serial.c (grub_serial_register) [GRUB_MACHINE_MIPS_QEMU_MIPS]: Make com0 explicitly active.
This commit is contained in:
parent
a07a81b335
commit
d734599439
8 changed files with 88 additions and 3 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
||||||
|
2011-07-05 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
MIPS qemu at_keyboard support.
|
||||||
|
|
||||||
|
* gentpl.py (videoinkernel): Add qemu-mips.
|
||||||
|
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add necessary headers.
|
||||||
|
* grub-core/Makefile.core.def (kernel): Add at_keyboard and layout.
|
||||||
|
* grub-core/kern/mips/qemu_mips/init.c (grub_machine_init): Init new
|
||||||
|
modules.
|
||||||
|
* grub-core/term/at_keyboard.c (grub_keyboard_controller_init)
|
||||||
|
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't consider original set.
|
||||||
|
* grub-core/term/serial.c (grub_serial_register)
|
||||||
|
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Make com0 explicitly active.
|
||||||
|
|
||||||
2011-07-05 Vladimir Serbinenko <phcoder@gmail.com>
|
2011-07-05 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
CMOS support on sparc.
|
CMOS support on sparc.
|
||||||
|
|
|
@ -37,7 +37,7 @@ GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"]
|
||||||
GROUPS["usb"] = GROUPS["pci"]
|
GROUPS["usb"] = GROUPS["pci"]
|
||||||
|
|
||||||
# If gfxterm is main output console integrate it into kernel
|
# If gfxterm is main output console integrate it into kernel
|
||||||
GROUPS["videoinkernel"] = ["mips_loongson"]
|
GROUPS["videoinkernel"] = ["mips_loongson", "mips_qemu_mips"]
|
||||||
GROUPS["videomodules"] = GRUB_PLATFORMS[:];
|
GROUPS["videomodules"] = GRUB_PLATFORMS[:];
|
||||||
for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i)
|
for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i)
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,20 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arc/arc.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if COND_mips_qemu_mips
|
if COND_mips_qemu_mips
|
||||||
|
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/cache.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bitmap_scale.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/serial.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h
|
||||||
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
|
||||||
|
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if COND_mips_loongson
|
if COND_mips_loongson
|
||||||
|
|
|
@ -162,6 +162,8 @@ kernel = {
|
||||||
mips_qemu_mips = kern/mips/qemu_mips/init.c;
|
mips_qemu_mips = kern/mips/qemu_mips/init.c;
|
||||||
mips_qemu_mips = term/ns8250.c;
|
mips_qemu_mips = term/ns8250.c;
|
||||||
mips_qemu_mips = term/serial.c;
|
mips_qemu_mips = term/serial.c;
|
||||||
|
mips_qemu_mips = term/at_keyboard.c;
|
||||||
|
mips_qemu_mips = commands/keylayouts.c;
|
||||||
|
|
||||||
mips_arc = kern/mips/arc/init.c;
|
mips_arc = kern/mips/arc/init.c;
|
||||||
mips_arc = term/arc/console.c;
|
mips_arc = term/arc/console.c;
|
||||||
|
|
|
@ -12,6 +12,16 @@
|
||||||
|
|
||||||
extern void grub_serial_init (void);
|
extern void grub_serial_init (void);
|
||||||
extern void grub_terminfo_init (void);
|
extern void grub_terminfo_init (void);
|
||||||
|
extern void grub_at_keyboard_init (void);
|
||||||
|
extern void grub_video_init (void);
|
||||||
|
extern void grub_bitmap_init (void);
|
||||||
|
extern void grub_font_init (void);
|
||||||
|
extern void grub_gfxterm_init (void);
|
||||||
|
extern void grub_at_keyboard_init (void);
|
||||||
|
extern void grub_serial_init (void);
|
||||||
|
extern void grub_terminfo_init (void);
|
||||||
|
extern void grub_keylayouts_init (void);
|
||||||
|
extern void grub_boot_init (void);
|
||||||
|
|
||||||
void
|
void
|
||||||
grub_machine_init (void)
|
grub_machine_init (void)
|
||||||
|
@ -27,8 +37,18 @@ grub_machine_init (void)
|
||||||
|
|
||||||
grub_install_get_time_ms (grub_rtc_get_time_ms);
|
grub_install_get_time_ms (grub_rtc_get_time_ms);
|
||||||
|
|
||||||
|
grub_video_init ();
|
||||||
|
grub_bitmap_init ();
|
||||||
|
grub_font_init ();
|
||||||
|
grub_gfxterm_init ();
|
||||||
|
|
||||||
|
grub_keylayouts_init ();
|
||||||
|
grub_at_keyboard_init ();
|
||||||
|
|
||||||
grub_terminfo_init ();
|
grub_terminfo_init ();
|
||||||
grub_serial_init ();
|
grub_serial_init ();
|
||||||
|
|
||||||
|
grub_boot_init ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -259,7 +259,7 @@ 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)
|
#if !defined (GRUB_MACHINE_MIPS_LOONGSON) && !defined (GRUB_MACHINE_QEMU) && !defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
|
||||||
|
|
||||||
static grub_uint8_t
|
static grub_uint8_t
|
||||||
grub_keyboard_controller_read (void)
|
grub_keyboard_controller_read (void)
|
||||||
|
@ -569,7 +569,7 @@ 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)
|
#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_QEMU) || 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;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -313,6 +313,17 @@ grub_serial_register (struct grub_serial_port *port)
|
||||||
grub_term_register_input_inactive ("serial_*", in);
|
grub_term_register_input_inactive ("serial_*", in);
|
||||||
grub_term_register_output_inactive ("serial_*", out);
|
grub_term_register_output_inactive ("serial_*", out);
|
||||||
}
|
}
|
||||||
|
#elif defined (GRUB_MACHINE_MIPS_QEMU_MIPS)
|
||||||
|
if (grub_strcmp (port->name, "com0") == 0)
|
||||||
|
{
|
||||||
|
grub_term_register_input_active ("serial_*", in);
|
||||||
|
grub_term_register_output_active ("serial_*", out);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grub_term_register_input_inactive ("serial_*", in);
|
||||||
|
grub_term_register_output_inactive ("serial_*", out);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
grub_term_register_input ("serial_*", in);
|
grub_term_register_input ("serial_*", in);
|
||||||
grub_term_register_output ("serial_*", out);
|
grub_term_register_output ("serial_*", out);
|
||||||
|
|
25
include/grub/mips/qemu_mips/at_keyboard.h
Normal file
25
include/grub/mips/qemu_mips/at_keyboard.h
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* GRUB -- GRand Unified Bootloader
|
||||||
|
* Copyright (C) 2007,2008,2009 Free Software Foundation, Inc.
|
||||||
|
*
|
||||||
|
* GRUB is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* GRUB is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GRUB_MACHINE_AT_KEYBOARD_HEADER
|
||||||
|
#define GRUB_MACHINE_AT_KEYBOARD_HEADER 1
|
||||||
|
|
||||||
|
#define KEYBOARD_REG_DATA 0xb4000060
|
||||||
|
#define KEYBOARD_REG_STATUS 0xb4000064
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue