On Tue, Aug 31, 2010 at 11:16 PM, Scott scott@notabs.org wrote:
Hello,
While testing on AMD simnow I encounter a timeout in keyboard.c line 246:
/* All is well - enable keyboard interface */ if (!kbc_input_buffer_empty()) return; 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()) { printk(BIOS_ERR, "Timeout during final keyboard enable\n"); <======= return; }
It seems like line 245 should call kbc_input_buffer_empty() instead of kbc_output_buffer_full() because the previous I/O does not cause the keyboard to generate any data.
On simnow, this causes a boot delay of a minute or so. On real hardware, It appears it could cause a boot delay of 400 ms. Does anyone testing with real hardware ever notice the "Timeout during final keyboard enable" message when logging is enabled?
if (!timeout) { printk(BIOS_INFO, "Keyboard controller output buffer result timeout\n"); }
I see this one in hardware.
Thanks, Myles