2008-01-23 Robert Millan <rmh@aybabtu.com>
* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `term/i386/pc/at_keyboard.c'. (pkglib_MODULES): Add `serial.mod'. (serial_mod_SOURCES): New variable. (serial_mod_CFLAGS): Likewise. (serial_mod_LDFLAGS): Likewise. * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove `<grub/powerpc/ieee1275/console.h>'. (grub_keyboard_controller_init): New function prototype. (grub_console_checkkey): Likewise. (grub_console_getkey): Likewise. * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT keyboard on i386. * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
This commit is contained in:
parent
06ab530333
commit
5882ae4b0e
8 changed files with 130 additions and 9 deletions
21
ChangeLog
21
ChangeLog
|
@ -1,3 +1,24 @@
|
|||
2008-01-23 Robert Millan <rmh@aybabtu.com>
|
||||
|
||||
* conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
|
||||
`term/i386/pc/at_keyboard.c'.
|
||||
(pkglib_MODULES): Add `serial.mod'.
|
||||
(serial_mod_SOURCES): New variable.
|
||||
(serial_mod_CFLAGS): Likewise.
|
||||
(serial_mod_LDFLAGS): Likewise.
|
||||
|
||||
* include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
|
||||
`<grub/powerpc/ieee1275/console.h>'.
|
||||
(grub_keyboard_controller_init): New function prototype.
|
||||
(grub_console_checkkey): Likewise.
|
||||
(grub_console_getkey): Likewise.
|
||||
|
||||
* kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
|
||||
keyboard on i386.
|
||||
|
||||
* term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
|
||||
grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
|
||||
|
||||
2008-01-23 Robert Millan <rmh@aybabtu.com>
|
||||
|
||||
* kern/i386/pc/init.c (make_install_device): When memdisk image is
|
||||
|
|
1
DISTLIST
1
DISTLIST
|
@ -156,6 +156,7 @@ include/grub/i386/efi/time.h
|
|||
include/grub/i386/ieee1275/loader.h
|
||||
include/grub/i386/ieee1275/machine.h
|
||||
include/grub/i386/ieee1275/memory.h
|
||||
include/grub/i386/ieee1275/serial.h
|
||||
include/grub/i386/io.h
|
||||
include/grub/i386/linuxbios/boot.h
|
||||
include/grub/i386/linuxbios/console.h
|
||||
|
|
|
@ -17,13 +17,14 @@ kernel_elf_SOURCES = kern/i386/ieee1275/startup.S kern/i386/ieee1275/init.c \
|
|||
kern/i386/dl.c kern/parser.c kern/partition.c \
|
||||
kern/env.c \
|
||||
kern/ieee1275/ieee1275.c \
|
||||
term/ieee1275/ofconsole.c disk/ieee1275/ofdisk.c \
|
||||
term/ieee1275/ofconsole.c term/i386/pc/at_keyboard.c \
|
||||
disk/ieee1275/ofdisk.c \
|
||||
symlist.c
|
||||
CLEANFILES += kernel.elf kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_cmain.o kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
|
||||
MOSTLYCLEANFILES += kernel_elf-kern_i386_ieee1275_startup.d kernel_elf-kern_i386_ieee1275_init.d kernel_elf-kern_powerpc_ieee1275_init.d kernel_elf-kern_powerpc_ieee1275_cmain.d kernel_elf-kern_powerpc_ieee1275_openfw.d kernel_elf-kern_main.d kernel_elf-kern_device.d kernel_elf-kern_disk.d kernel_elf-kern_dl.d kernel_elf-kern_file.d kernel_elf-kern_fs.d kernel_elf-kern_err.d kernel_elf-kern_misc.d kernel_elf-kern_mm.d kernel_elf-kern_loader.d kernel_elf-kern_rescue.d kernel_elf-kern_term.d kernel_elf-kern_i386_dl.d kernel_elf-kern_parser.d kernel_elf-kern_partition.d kernel_elf-kern_env.d kernel_elf-kern_ieee1275_ieee1275.d kernel_elf-term_ieee1275_ofconsole.d kernel_elf-disk_ieee1275_ofdisk.d kernel_elf-symlist.d
|
||||
CLEANFILES += kernel.elf kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_cmain.o kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
|
||||
MOSTLYCLEANFILES += kernel_elf-kern_i386_ieee1275_startup.d kernel_elf-kern_i386_ieee1275_init.d kernel_elf-kern_powerpc_ieee1275_init.d kernel_elf-kern_powerpc_ieee1275_cmain.d kernel_elf-kern_powerpc_ieee1275_openfw.d kernel_elf-kern_main.d kernel_elf-kern_device.d kernel_elf-kern_disk.d kernel_elf-kern_dl.d kernel_elf-kern_file.d kernel_elf-kern_fs.d kernel_elf-kern_err.d kernel_elf-kern_misc.d kernel_elf-kern_mm.d kernel_elf-kern_loader.d kernel_elf-kern_rescue.d kernel_elf-kern_term.d kernel_elf-kern_i386_dl.d kernel_elf-kern_parser.d kernel_elf-kern_partition.d kernel_elf-kern_env.d kernel_elf-kern_ieee1275_ieee1275.d kernel_elf-term_ieee1275_ofconsole.d kernel_elf-term_i386_pc_at_keyboard.d kernel_elf-disk_ieee1275_ofdisk.d kernel_elf-symlist.d
|
||||
|
||||
kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_cmain.o kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
|
||||
$(TARGET_CC) -o $@ kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_cmain.o kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o $(TARGET_LDFLAGS) $(kernel_elf_LDFLAGS)
|
||||
kernel.elf: $(kernel_elf_DEPENDENCIES) kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_cmain.o kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o
|
||||
$(TARGET_CC) -o $@ kernel_elf-kern_i386_ieee1275_startup.o kernel_elf-kern_i386_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_init.o kernel_elf-kern_powerpc_ieee1275_cmain.o kernel_elf-kern_powerpc_ieee1275_openfw.o kernel_elf-kern_main.o kernel_elf-kern_device.o kernel_elf-kern_disk.o kernel_elf-kern_dl.o kernel_elf-kern_file.o kernel_elf-kern_fs.o kernel_elf-kern_err.o kernel_elf-kern_misc.o kernel_elf-kern_mm.o kernel_elf-kern_loader.o kernel_elf-kern_rescue.o kernel_elf-kern_term.o kernel_elf-kern_i386_dl.o kernel_elf-kern_parser.o kernel_elf-kern_partition.o kernel_elf-kern_env.o kernel_elf-kern_ieee1275_ieee1275.o kernel_elf-term_ieee1275_ofconsole.o kernel_elf-term_i386_pc_at_keyboard.o kernel_elf-disk_ieee1275_ofdisk.o kernel_elf-symlist.o $(TARGET_LDFLAGS) $(kernel_elf_LDFLAGS)
|
||||
|
||||
kernel_elf-kern_i386_ieee1275_startup.o: kern/i386/ieee1275/startup.S
|
||||
$(TARGET_CC) -Ikern/i386/ieee1275 -I$(srcdir)/kern/i386/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
|
||||
|
@ -117,6 +118,10 @@ kernel_elf-term_ieee1275_ofconsole.o: term/ieee1275/ofconsole.c
|
|||
$(TARGET_CC) -Iterm/ieee1275 -I$(srcdir)/term/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
|
||||
-include kernel_elf-term_ieee1275_ofconsole.d
|
||||
|
||||
kernel_elf-term_i386_pc_at_keyboard.o: term/i386/pc/at_keyboard.c
|
||||
$(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
|
||||
-include kernel_elf-term_i386_pc_at_keyboard.d
|
||||
|
||||
kernel_elf-disk_ieee1275_ofdisk.o: disk/ieee1275/ofdisk.c
|
||||
$(TARGET_CC) -Idisk/ieee1275 -I$(srcdir)/disk/ieee1275 $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(kernel_elf_CFLAGS) -MD -c -o $@ $<
|
||||
-include kernel_elf-disk_ieee1275_ofdisk.d
|
||||
|
@ -687,7 +692,7 @@ grub_emu_LDFLAGS = $(LIBCURSES)
|
|||
|
||||
# Modules.
|
||||
pkglib_MODULES = normal.mod halt.mod reboot.mod suspend.mod cpuid.mod \
|
||||
multiboot.mod _multiboot.mod
|
||||
multiboot.mod _multiboot.mod serial.mod
|
||||
|
||||
# For normal.mod.
|
||||
normal_mod_DEPENDENCIES = grub_script.tab.c grub_script.tab.h
|
||||
|
@ -1301,4 +1306,56 @@ fs-cpuid_mod-commands_i386_cpuid.lst: commands/i386/cpuid.c genfslist.sh
|
|||
cpuid_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For serial.mod.
|
||||
serial_mod_SOURCES = term/i386/pc/serial.c
|
||||
CLEANFILES += serial.mod mod-serial.o mod-serial.c pre-serial.o serial_mod-term_i386_pc_serial.o und-serial.lst
|
||||
ifneq ($(serial_mod_EXPORTS),no)
|
||||
CLEANFILES += def-serial.lst
|
||||
DEFSYMFILES += def-serial.lst
|
||||
endif
|
||||
MOSTLYCLEANFILES += serial_mod-term_i386_pc_serial.d
|
||||
UNDSYMFILES += und-serial.lst
|
||||
|
||||
serial.mod: pre-serial.o mod-serial.o
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ $^
|
||||
$(STRIP) --strip-unneeded -K grub_mod_init -K grub_mod_fini -R .note -R .comment $@
|
||||
|
||||
pre-serial.o: $(serial_mod_DEPENDENCIES) serial_mod-term_i386_pc_serial.o
|
||||
-rm -f $@
|
||||
$(TARGET_CC) $(serial_mod_LDFLAGS) $(TARGET_LDFLAGS) -Wl,-r,-d -o $@ serial_mod-term_i386_pc_serial.o
|
||||
|
||||
mod-serial.o: mod-serial.c
|
||||
$(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -c -o $@ $<
|
||||
|
||||
mod-serial.c: moddep.lst genmodsrc.sh
|
||||
sh $(srcdir)/genmodsrc.sh 'serial' $< > $@ || (rm -f $@; exit 1)
|
||||
|
||||
ifneq ($(serial_mod_EXPORTS),no)
|
||||
def-serial.lst: pre-serial.o
|
||||
$(NM) -g --defined-only -P -p $< | sed 's/^\([^ ]*\).*/\1 serial/' > $@
|
||||
endif
|
||||
|
||||
und-serial.lst: pre-serial.o
|
||||
echo 'serial' > $@
|
||||
$(NM) -u -P -p $< | cut -f1 -d' ' >> $@
|
||||
|
||||
serial_mod-term_i386_pc_serial.o: term/i386/pc/serial.c
|
||||
$(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -MD -c -o $@ $<
|
||||
-include serial_mod-term_i386_pc_serial.d
|
||||
|
||||
CLEANFILES += cmd-serial_mod-term_i386_pc_serial.lst fs-serial_mod-term_i386_pc_serial.lst
|
||||
COMMANDFILES += cmd-serial_mod-term_i386_pc_serial.lst
|
||||
FSFILES += fs-serial_mod-term_i386_pc_serial.lst
|
||||
|
||||
cmd-serial_mod-term_i386_pc_serial.lst: term/i386/pc/serial.c gencmdlist.sh
|
||||
set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/gencmdlist.sh serial > $@ || (rm -f $@; exit 1)
|
||||
|
||||
fs-serial_mod-term_i386_pc_serial.lst: term/i386/pc/serial.c genfslist.sh
|
||||
set -e; $(TARGET_CC) -Iterm/i386/pc -I$(srcdir)/term/i386/pc $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(serial_mod_CFLAGS) -E $< | sh $(srcdir)/genfslist.sh serial > $@ || (rm -f $@; exit 1)
|
||||
|
||||
|
||||
serial_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
serial_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
include $(srcdir)/conf/common.mk
|
||||
|
|
|
@ -17,7 +17,8 @@ kernel_elf_SOURCES = kern/i386/ieee1275/startup.S kern/i386/ieee1275/init.c \
|
|||
kern/i386/dl.c kern/parser.c kern/partition.c \
|
||||
kern/env.c \
|
||||
kern/ieee1275/ieee1275.c \
|
||||
term/ieee1275/ofconsole.c disk/ieee1275/ofdisk.c \
|
||||
term/ieee1275/ofconsole.c term/i386/pc/at_keyboard.c \
|
||||
disk/ieee1275/ofdisk.c \
|
||||
symlist.c
|
||||
kernel_elf_HEADERS = arg.h cache.h device.h disk.h dl.h elf.h elfload.h \
|
||||
env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
|
||||
|
@ -97,7 +98,7 @@ grub_emu_LDFLAGS = $(LIBCURSES)
|
|||
|
||||
# Modules.
|
||||
pkglib_MODULES = normal.mod halt.mod reboot.mod suspend.mod cpuid.mod \
|
||||
multiboot.mod _multiboot.mod
|
||||
multiboot.mod _multiboot.mod serial.mod
|
||||
|
||||
# For normal.mod.
|
||||
normal_mod_DEPENDENCIES = grub_script.tab.c grub_script.tab.h
|
||||
|
@ -142,4 +143,9 @@ cpuid_mod_SOURCES = commands/i386/cpuid.c
|
|||
cpuid_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
# For serial.mod.
|
||||
serial_mod_SOURCES = term/i386/pc/serial.c
|
||||
serial_mod_CFLAGS = $(COMMON_CFLAGS)
|
||||
serial_mod_LDFLAGS = $(COMMON_LDFLAGS)
|
||||
|
||||
include $(srcdir)/conf/common.mk
|
||||
|
|
|
@ -1 +1,28 @@
|
|||
#include <grub/powerpc/ieee1275/console.h>
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2008 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_CONSOLE_MACHINE_HEADER
|
||||
#define GRUB_CONSOLE_MACHINE_HEADER 1
|
||||
|
||||
#include <grub/symbol.h>
|
||||
|
||||
void EXPORT_FUNC(grub_keyboard_controller_init) (void);
|
||||
int EXPORT_FUNC(grub_console_checkkey) (void);
|
||||
int EXPORT_FUNC(grub_console_getkey) (void);
|
||||
|
||||
#endif /* ! GRUB_CONSOLE_MACHINE_HEADER */
|
||||
|
|
1
include/grub/i386/ieee1275/serial.h
Normal file
1
include/grub/i386/ieee1275/serial.h
Normal file
|
@ -0,0 +1 @@
|
|||
#include <grub/i386/pc/serial.h>
|
|
@ -181,6 +181,9 @@ grub_machine_init (void)
|
|||
int actual;
|
||||
|
||||
grub_console_init ();
|
||||
#ifdef __i386__
|
||||
grub_keyboard_controller_init ();
|
||||
#endif
|
||||
grub_claim_heap ();
|
||||
grub_ofdisk_init ();
|
||||
|
||||
|
|
|
@ -358,8 +358,13 @@ static struct grub_term grub_ofconsole_term =
|
|||
.fini = grub_ofconsole_fini,
|
||||
.putchar = grub_ofconsole_putchar,
|
||||
.getcharwidth = grub_ofconsole_getcharwidth,
|
||||
#ifdef __i386__
|
||||
.checkkey = grub_console_checkkey,
|
||||
.getkey = grub_console_getkey,
|
||||
#else
|
||||
.checkkey = grub_ofconsole_checkkey,
|
||||
.getkey = grub_ofconsole_getkey,
|
||||
#endif
|
||||
.getxy = grub_ofconsole_getxy,
|
||||
.getwh = grub_ofconsole_getwh,
|
||||
.gotoxy = grub_ofconsole_gotoxy,
|
||||
|
|
Loading…
Reference in a new issue