From owner-freebsd-hardware@FreeBSD.ORG Wed Sep 3 17:01:54 2008 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 B28AC106844A for ; Wed, 3 Sep 2008 17:01:54 +0000 (UTC) (envelope-from don@sandvine.com) Received: from gw.sandvine.com (gw.sandvine.com [199.243.201.138]) by mx1.freebsd.org (Postfix) with ESMTP id 715E28FC12 for ; Wed, 3 Sep 2008 17:01:54 +0000 (UTC) (envelope-from don@sandvine.com) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Wed, 3 Sep 2008 13:00:52 -0400 Message-ID: In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: FreeBSD-AMD64 on Xeon MP thread-index: AckNnEobhrSy6WGQQgqk62WRLv5LmgAP2z8w References: From: "Don Bowman" To: "Ivan Voras" , Cc: Subject: RE: FreeBSD-AMD64 on Xeon MP 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, 03 Sep 2008 17:01:54 -0000 >From Ivan Voras > Don Bowman wrote: >=20 > > I tried putting a call to uhci_dumpregs() there, it hangs as well. So > > my assumption Is that a read to 0x3080 is hanging. > > > > Anyone have any suggestions? >=20 > If the same thing that worked for me works for you (booting Linux > before soft-rebooting into FreeBSD) than it would look like something > isn't initialized right. I am focusing in on SMM emulation. http://www.ussg.indiana.edu/hypermail/linux/kernel/0407.3/0688.html suggests something to me. What if I am executing this on a processor other than the boot processor, and the SMM code doesn't expect this? I'm not sure where I would try this patch in freebsd, but it seems promising. Ie I read 0xe090. This trips SMM for legacy(?). SMM is entered, does=20 something, corrupts, leaves, and then a few instructions later I crash. The suggested workaround for this (different machine and OS) is to disable the legacy mode. FreeBSD seems to do this already I think, calling: pci_write_config(self, PCI_LEGSUP, PCI_LEGSUP_USBPIRQDEN, 2); in uhci_pci_attach()