From owner-freebsd-current@FreeBSD.ORG Thu Apr 22 18:28:27 2010 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EAA731065674; Thu, 22 Apr 2010 18:28:27 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from sippysoft.com (gk1.360sip.com [72.236.70.240]) by mx1.freebsd.org (Postfix) with ESMTP id B121F8FC22; Thu, 22 Apr 2010 18:28:27 +0000 (UTC) Received: from [192.168.1.38] (S0106005004e13421.vs.shawcable.net [70.71.175.212]) (authenticated bits=0) by sippysoft.com (8.14.3/8.14.3) with ESMTP id o3MISN3g022567 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 22 Apr 2010 11:28:24 -0700 (PDT) (envelope-from sobomax@FreeBSD.org) Message-ID: <4BD0954A.6010000@FreeBSD.org> Date: Thu, 22 Apr 2010 11:28:26 -0700 From: Maxim Sobolev Organization: Sippy Software, Inc. User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 To: John Baldwin References: <4BCD5A7B.2070505@FreeBSD.org> <4BCF5AC1.8080608@FreeBSD.org> <4BD01F50.6070403@FreeBSD.org> <201004220911.14743.jhb@freebsd.org> In-Reply-To: <201004220911.14743.jhb@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-current@FreeBSD.org, mj@feral.com Subject: Re: FreeBSD kernel doesn't boot on FUJITSU PRIMERGY RX200 S5 server X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Apr 2010 18:28:28 -0000 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