John Baldwin wrote:
On Thursday 22 April 2010 6:05:04 am Maxim Sobolev wrote:
Maxim Sobolev wrote:
There is already a code to detect non-existing AT keyboard and avoid attaching atkbd to it. The code is i386-only at the moment, I am trying to figure out how to modify it so that it works on amd64 as well.
Looks like this huge delay is caused by the inb() being astonishingly slow, which is not factored by the timeout routines. Reading keyboard status port once takes about 0.003s! I am not sure if it's common behaviour of the platform, or something specific to this particular model. Do you know by any chance?

Well, many BIOSes trigger an SMI# when doing inb/outb to the keyboard ports so they can emulate a PS/2 keyboard when a USB keyboard is inserted. Do you have any BIOS options related to the USB legacy compat? I know of the Nehalem systems I've seen they have a separate option for controlling port 60/64 emulation which we leave disabled by default.

That makes sense. Unfortunately I don't have access to the BIOS settings. This is a hosted system, and the provider keeps BIOS password for themselves.

I have a patch that fixes that issue by measuring status register reading time first and then factoring it in the calculations of the number of retries:

http://sobomax.sippysoft.com/atkbdc.diff

It also applies the same logic to detect broken/non-existing keyboard controller to amd64 as we do to the i386. I'd appreciate if you can do a review.

-Maxim
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to