Taking into account that ofconsole on i386:

  - Has bugs with similar usability effect than at_keyboard.c (e.g. arrow keys
    not working).
  - In practice doesn't provide support for any keyboard other than AT
    (since OFW shuts down USB before transfering control to us).
  - Sharing code with other ports (CoreBoot, attow) is more efficient to get
    these bugs solved.

I propose to use at_keyboard.c as default for i386-ieee1275.

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)
diff -x '*~' -x '*.mk' -Nurp ../grub2/conf/i386-ieee1275.rmk ./conf/i386-ieee1275.rmk
--- ../grub2/conf/i386-ieee1275.rmk	2008-01-23 10:59:37.000000000 +0100
+++ ./conf/i386-ieee1275.rmk	2008-01-23 11:30:30.000000000 +0100
@@ -17,7 +17,8 @@ kernel_elf_SOURCES = kern/i386/ieee1275/
 	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 \
diff -x '*~' -x '*.mk' -Nurp ../grub2/include/grub/i386/ieee1275/console.h ./include/grub/i386/ieee1275/console.h
--- ../grub2/include/grub/i386/ieee1275/console.h	2008-01-15 21:16:34.000000000 +0100
+++ ./include/grub/i386/ieee1275/console.h	2008-01-23 11:31:07.000000000 +0100
@@ -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 */
diff -x '*~' -x '*.mk' -Nurp ../grub2/kern/powerpc/ieee1275/init.c ./kern/powerpc/ieee1275/init.c
--- ../grub2/kern/powerpc/ieee1275/init.c	2008-01-22 21:15:28.000000000 +0100
+++ ./kern/powerpc/ieee1275/init.c	2008-01-23 11:16:00.000000000 +0100
@@ -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 ();
 
diff -x '*~' -x '*.mk' -Nurp ../grub2/term/ieee1275/ofconsole.c ./term/ieee1275/ofconsole.c
--- ../grub2/term/ieee1275/ofconsole.c	2008-01-21 15:21:43.000000000 +0100
+++ ./term/ieee1275/ofconsole.c	2008-01-23 11:17:45.000000000 +0100
@@ -358,8 +358,13 @@ static struct grub_term grub_ofconsole_t
     .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,
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to