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?
Thanks, Scott
Yes, That should be a input buffer empty check since there isn't an ack to that command. Send a qucik patch and signed-off-by, I will ack it.
Marc