From owner-freebsd-hardware@FreeBSD.ORG Wed Nov 7 20:08:21 2007 Return-Path: Delivered-To: freebsd-hardware@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 913ED16A47D; Wed, 7 Nov 2007 20:08:19 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from sippysoft.com (gk.360sip.com [72.236.70.226]) by mx1.freebsd.org (Postfix) with ESMTP id 8516B13C4B3; Wed, 7 Nov 2007 20:08:19 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from [192.168.0.3] ([204.244.149.125]) (authenticated bits=0) by sippysoft.com (8.13.8/8.13.8) with ESMTP id lA7JrkKm054968 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 7 Nov 2007 11:53:47 -0800 (PST) (envelope-from sobomax@FreeBSD.org) Message-ID: <4732171F.3010803@FreeBSD.org> Date: Wed, 07 Nov 2007 11:50:55 -0800 From: Maxim Sobolev Organization: Sippy Software, Inc. User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: Rui Paulo References: <4A5A9C78-22AC-4480-BDEB-A72F6CF472DB@fnop.net> <20071104231422.GA82337@rink.nu> <472F5E62.4080406@samsco.org> <60C64C73-A019-4C01-85E1-80DF4C76B1AF@freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-current@FreeBSD.org, Scott Long , Rink Springer , freebsd-i386@FreeBSD.org, freebsd-hardware@FreeBSD.org Subject: Re: MacBook users: possible fix for the SMP problem X-BeenThere: freebsd-hardware@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General discussion of FreeBSD hardware List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Nov 2007 20:08:21 -0000 I don't really like the fact that it has to be turned on manually. Is it possible to make this automatic based on BIOS Id or something like this? -Maxim Rui Paulo wrote: > I'm requesting review for the following patch: > > Index: sys/i386/isa/clock.c > =================================================================== > RCS file: /home/ncvs/src/sys/i386/isa/clock.c,v > retrieving revision 1.240 > diff -u -p -r1.240 clock.c > --- sys/i386/isa/clock.c 26 Oct 2007 03:23:54 -0000 1.240 > +++ sys/i386/isa/clock.c 7 Nov 2007 15:27:21 -0000 > @@ -130,6 +130,9 @@ static u_char rtc_statusb = RTCSB_24HR; > #define ACQUIRED 2 > #define ACQUIRE_PENDING 3 > > +/* Intel ICH register */ > +#define ICH_PMBASE 0x400 > + > static u_char timer2_state; > > static unsigned i8254_get_timecount(struct timecounter *tc); > @@ -616,11 +619,26 @@ i8254_init(void) > void > startrtclock() > { > + char *ichenv; > u_int delta, freq; > > writertc(RTC_STATUSA, rtc_statusa); > writertc(RTC_STATUSB, RTCSB_24HR); > > + /* > + * On some systems, namely MacBooks, we need to disallow the > + * legacy USB circuit to generate an SMI# because this can > + * cause several problems, namely: incorrect CPU frequency > + * detection and failure to start the APs. > + */ > + ichenv = getenv("hw.ich.disable_legacy_usb"); > + if (ichenv != NULL) { > + if (bootverbose) > + printf("Disabling LEGACY_USB_EN bit on Intel ICH.\n"); > + outl(ICH_PMBASE + 0x30, inl(ICH_PMBASE + 0x30) & ~0x8); > + freeenv(ichsmi); > + } > + > freq = calibrate_clocks(); > #ifdef CLK_CALIBRATION_LOOP > if (bootverbose) { > > > If you have a MacBook, you now need to set hw.ich.disable_legacy_usb on > the boot loader prompt or in loader.conf. I decided to go this route > because it seems safer. Imagine the case where there's a port at the > same IO address that has nothing to do with the ICH7. If we tried to > issue the outl() on every system, something bad could happen. > > Comments? > > Regards. > -- > Rui Paulo > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >