[coreboot] [PATCH] timeout during PS/2 keyboard init

Marc Jones marcj303 at gmail.com
Thu Sep 9 22:37:50 CEST 2010


On Wed, Sep 8, 2010 at 5:01 PM, Scott Duplichan <scott at notabs.org> wrote:
> ]-----Original Message-----
> ]From: coreboot-bounces at coreboot.org [mailto:coreboot-bounces at coreboot.org] On Behalf Of Marc Jones
> ]Sent: Wednesday, September 08, 2010 03:17 PM
> ]To: Scott Duplichan
> ]Cc: coreboot at coreboot.org
> ]Subject: Re: [coreboot] [PATCH] timeout during PS/2 keyboard init
> ]
> ]On Wed, Sep 8, 2010 at 1:11 PM, Scott Duplichan <scott at notabs.org> wrote:
> ]> Thanks Marc. This patch avoids a timeout during PS/2 keyboard
> ]> initialization. It can reduce KBC init time by up to 400 ms on
> ]> real hardware, and by a minute or so on AMD simnow.
> ]>
> ]>
> ]> Signed-off-by: Scott Duplichan <scott at notabs.org>
> ]>
> ]> Index: src/pc80/keyboard.c
> ]> ===================================================================
> ]> --- src/pc80/keyboard.c (revision 5788)
> ]> +++ src/pc80/keyboard.c (working copy)
> ]> @@ -242,7 +242,7 @@
> ]>        outb(0x60, KBD_COMMAND);
> ]>        if (!kbc_input_buffer_empty()) return;
> ]>        outb(0x61, KBD_DATA);   /* send cmd: enable keyboard and IRQ 1 */
> ]> -       if (kbc_output_buffer_full()) {
> ]> +       if (kbc_input_buffer_empty()) {
> ]
> ]
> ]I think you meant !kbc_input_buffer_empty()?
>
> Good catch. You are correct. While the previous patch avoids the timeout,
> it does not correct the reversed check for when to log the error message.
> The revised patch below includes the logging fix, in addition to the
> timeout avoidance of the original patch.
>
> ]Marc
> ]
> ]--
> ]http://se-eng.com
>
>
> Signed-off-by: Scott Duplichan <scott at notabs.org>
>
> Index: src/pc80/keyboard.c
> ===================================================================
> --- src/pc80/keyboard.c (revision 5788)
> +++ src/pc80/keyboard.c (working copy)
> @@ -242,7 +242,7 @@
>        outb(0x60, KBD_COMMAND);
>        if (!kbc_input_buffer_empty()) return;
>        outb(0x61, KBD_DATA);   /* send cmd: enable keyboard and IRQ 1 */
> -       if (kbc_output_buffer_full()) {
> +       if (!kbc_input_buffer_empty()) {
>                printk(BIOS_ERR, "Timeout during final keyboard enable\n");
>                return;
>        }
>
>

Acked-by: Marc Jones <marcj303 at gmail.com>

r5798

-- 
http://se-eng.com




More information about the coreboot mailing list