From owner-freebsd-arch@FreeBSD.ORG Mon Nov 20 04:11:24 2006 Return-Path: X-Original-To: arch@freebsd.org Delivered-To: freebsd-arch@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6687C16A412 for ; Mon, 20 Nov 2006 04:11:24 +0000 (UTC) (envelope-from jdp@polstra.com) Received: from blake.polstra.com (blake.polstra.com [64.81.189.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 715D343D6E for ; Mon, 20 Nov 2006 04:11:10 +0000 (GMT) (envelope-from jdp@polstra.com) Received: from strings.polstra.com (strings.polstra.com [64.81.189.67]) by blake.polstra.com (8.13.6/8.13.6) with ESMTP id kAK4BNNP064502 for ; Sun, 19 Nov 2006 20:11:23 -0800 (PST) (envelope-from jdp@polstra.com) Message-ID: X-Mailer: XFMail 1.5.5 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 Date: Sun, 19 Nov 2006 20:11:22 -0800 (PST) From: John Polstra To: arch@freebsd.org Cc: Subject: Where do MSI quirks belong? X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Nov 2006 04:11:24 -0000 I have at least one motherboard on which MSI doesn't work. It's a Tyan S2721-533, also known as Thunder i7501 Pro. (When MSI is enabled and used, it often hangs the system solid.) It seems like we're going to need a quirk table to deal with this sort of thing. I have a couple of questions before I work on it. First, I assume that whether MSI works or not is at least partially a function of the motherboard and maybe the BIOS, as opposed to the chipset. Is that right? At least on this Tyan board, there seem to be some nice kenv variables (e.g., smbus.planar.product) already set that could help me recognize the board. Is that a reasonable approach? Second, is there already a similar quirk table that I could simply extend to deal with this, or does it make more sense to create a new one? Third, is there already an "initialize the whole PCI subsystem" function where I could handle the quirk table, or should I add a new SYSINIT? John