FreeBSD kernel doesn't boot on FUJITSU PRIMERGY RX200 S5 server
Maxim Sobolev
sobomax at FreeBSD.org
Thu Apr 22 18:28:28 UTC 2010
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
More information about the freebsd-current
mailing list