Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Nov 2007 19:25:48 +0000
From:      Rui Paulo <rpaulo@freebsd.org>
To:        Scott Long <scottl@samsco.org>
Cc:        Rink Springer <rink@freebsd.org>, freebsd-current@freebsd.org, freebsd-hardware@freebsd.org
Subject:   Re: MacBook users: possible fix for the SMP problem
Message-ID:  <60C64C73-A019-4C01-85E1-80DF4C76B1AF@freebsd.org>
In-Reply-To: <472F5E62.4080406@samsco.org>
References:  <4A5A9C78-22AC-4480-BDEB-A72F6CF472DB@fnop.net>	<20071104231422.GA82337@rink.nu> <e1309ba60711041555n72def9fn71de42fcf40bfaa1@mail.gmail.com> <472F5E62.4080406@samsco.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 5 Nov 2007, at 18:18, Scott Long wrote:

> Rui Paulo wrote:
>> On Nov 4, 2007 11:14 PM, Rink Springer <rink@freebsd.org> wrote:
>>> Hi Rui,
>>>
>>> On Sun, Nov 04, 2007 at 08:59:28PM +0000, Rui Paulo wrote:
>>>> Note: this is still a hack. I'm still thinking about a way to
>>>> correctly identify on which systems we need to apply this fix.
>>> This indeed looks hackikly - I don't know whether it's possible to
>>> distinguish between a 'normal' PC or a MacBook - but if this is not
>>> possible, maybe a kernel option is in order?
>> It's possible to distinguish between a MacBook and a PeeCee via  
>> smbios
>> vendor strings.
>> But what I actually wanted was something more general.
>> Regards.
>
> Turning this on universally should only affect USB keyboard  
> operation in
> KDB early in boot (or if the USB drivers were omitted during boot).

Hmm. I was never able to interact with DDB early on boot. Only after  
USB gets probed.

> It sounds like this affects clock calibration on other systems, not  
> just
> Macs.  So I'd vote for this being made into a negative option, i.e.
>
> options	ENABLE_ICH_USB_LEGACY
>
> That'll at least let people boot with a GENERIC kernel and then decide
> for themselves if they want it enabled or disabled.  It could also be
> made into tunable and set via the loader menu, but I'd only advocate
> that if there were found to be other side effects that prevented some
> users from booting with GENERIC.

I think a loader variable is the best way to go.
As I really don't know how if this will affect negatively other  
systems I was planning to produce a patch that does something like:

usb_legacy = getenv("hw.ich.usb_legacy");
if (!usb_legacy)
	usb_legacy = 0;

usb_legacy_activated = read_bit_from_SMI_EN; // SMI Control and Enable  
Register

if (usb_legacy_activated && usb_legacy == "0") {
	disable SMI interrupt with USB;
}

What do you think?

> Anyways, good job figuring this out.  Talk about an obscure problem.
> Now I don't feel so bad about spending days in vain going line-by-line
> through the AP startup code looking for the problem.


Well, don't thank me. As I said in the first email, someone else  
working on NetBSD found this issue, not me.

Regards.
--
Rui Paulo




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?60C64C73-A019-4C01-85E1-80DF4C76B1AF>