From owner-freebsd-arch@FreeBSD.ORG Mon Nov 20 18:49:19 2006 Return-Path: X-Original-To: freebsd-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 C0CD116A518; Mon, 20 Nov 2006 18:49:19 +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 E45F743D7C; Mon, 20 Nov 2006 18:48:56 +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 kAKInBDq085828; Mon, 20 Nov 2006 10:49:12 -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 In-Reply-To: <200611201242.58088.jhb@freebsd.org> Date: Mon, 20 Nov 2006 10:49:11 -0800 (PST) From: John Polstra To: John Baldwin Cc: freebsd-arch@freebsd.org Subject: Re: 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 18:49:19 -0000 On 20-Nov-2006 John Baldwin wrote: > On Sunday 19 November 2006 23:11, John Polstra wrote: >> 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? > > It's going to be a function of the chipset, as something in the chipset > (presumably a Host -> PCI bridge) has to listen for writes to 0xfeeXXXXXX and > convert them into APIC messages. Hmm, this Tyan 2721 board has the Intel E7501 chipset. Isn't it supposed to support MSI? It doesn't work, and that's why I thought the motherboard might also be a factor. I'll paste in the pciconf output below. John hostb0@pci0:0:0: class=0x060000 card=0x00000000 chip=0x254c8086 rev=0x01 hdr=0x00 vendor = 'Intel Corporation' device = 'E7501 Host Controller' class = bridge subclass = HOST-PCI pcib1@pci0:2:0: class=0x060400 card=0x00000000 chip=0x25438086 rev=0x01 hdr=0x01 vendor = 'Intel Corporation' device = 'E7500/E7501 HI_B Virtual PCI-to-PCI Bridge' class = bridge subclass = PCI-PCI pcib4@pci0:3:0: class=0x060400 card=0x00000000 chip=0x25458086 rev=0x01 hdr=0x01 vendor = 'Intel Corporation' device = 'E7500/E7501 HI_C Virtual PCI-to-PCI Bridge' class = bridge subclass = PCI-PCI none0@pci0:29:0: class=0x0c0300 card=0x24808086 chip=0x24828086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801CA/CAM (ICH3-S/ICH3-M) USB Controller' class = serial bus subclass = USB none1@pci0:29:1: class=0x0c0300 card=0x24808086 chip=0x24848086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801CA/CAM (ICH3-S/ICH3-M) USB Controller' class = serial bus subclass = USB pcib7@pci0:30:0: class=0x060400 card=0x00000000 chip=0x244e8086 rev=0x42 hdr=0x01 vendor = 'Intel Corporation' device = '82801BA/CA/DB/DBL/EB/ER/FB (ICH2/3/4/4/5/5/6), 6300ESB Hub Interface to PCI Bridge' class = bridge subclass = PCI-PCI isab0@pci0:31:0: class=0x060100 card=0x00000000 chip=0x24808086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801CA/CAM (ICH3-S/ICH3-M) LPC Interface' class = bridge subclass = PCI-ISA atapci0@pci0:31:1: class=0x01018a card=0x24808086 chip=0x248b8086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801CA (ICH3) UltraATA/100 EIDE Controller' class = mass storage subclass = ATA none2@pci0:31:3: class=0x0c0500 card=0x24808086 chip=0x24838086 rev=0x02 hdr=0x00 vendor = 'Intel Corporation' device = '82801CA/CAM (ICH3-S/ICH3-M) SMBus Controller' class = serial bus subclass = SMBus none3@pci5:28:0: class=0x080020 card=0x14618086 chip=0x14618086 rev=0x04 hdr=0x00 vendor = 'Intel Corporation' device = 'P64H2 I/O Advanced Programmable Interrupt Controller' class = base peripheral subclass = interrupt controller pcib2@pci5:29:0: class=0x060400 card=0x00000050 chip=0x14608086 rev=0x04 hdr=0x01 vendor = 'Intel Corporation' device = '82870P2 P64H2 PCI/PCI-X Hub Controller' class = bridge subclass = PCI-PCI none4@pci5:30:0: class=0x080020 card=0x14618086 chip=0x14618086 rev=0x04 hdr=0x00 vendor = 'Intel Corporation' device = 'P64H2 I/O Advanced Programmable Interrupt Controller' class = base peripheral subclass = interrupt controller pcib3@pci5:31:0: class=0x060400 card=0x00000050 chip=0x14608086 rev=0x04 hdr=0x01 vendor = 'Intel Corporation' device = '82870P2 P64H2 PCI/PCI-X Hub Controller' class = bridge subclass = PCI-PCI em0@pci7:1:0: class=0x020000 card=0x10118086 chip=0x10108086 rev=0x01 hdr=0x00 vendor = 'Intel Corporation' device = '82546EB Dual Port Gigabit Ethernet Controller (Copper)' class = network subclass = ethernet em1@pci7:1:1: class=0x020000 card=0x10118086 chip=0x10108086 rev=0x01 hdr=0x00 vendor = 'Intel Corporation' device = '82546EB Dual Port Gigabit Ethernet Controller (Copper)' class = network subclass = ethernet bge0@pci6:3:0: class=0x020000 card=0x164814e4 chip=0x164814e4 rev=0x10 hdr=0x00 vendor = 'Broadcom Corporation' device = 'BCM5704 NetXtreme Dual Gigabit Adapter' class = network subclass = ethernet bge1@pci6:3:1: class=0x020000 card=0x164814e4 chip=0x164814e4 rev=0x10 hdr=0x00 vendor = 'Broadcom Corporation' device = 'BCM5704 NetXtreme Dual Gigabit Adapter' class = network subclass = ethernet none5@pci2:28:0: class=0x080020 card=0x14618086 chip=0x14618086 rev=0x04 hdr=0x00 vendor = 'Intel Corporation' device = 'P64H2 I/O Advanced Programmable Interrupt Controller' class = base peripheral subclass = interrupt controller pcib5@pci2:29:0: class=0x060400 card=0x00000050 chip=0x14608086 rev=0x04 hdr=0x01 vendor = 'Intel Corporation' device = '82870P2 P64H2 PCI/PCI-X Hub Controller' class = bridge subclass = PCI-PCI none6@pci2:30:0: class=0x080020 card=0x14618086 chip=0x14618086 rev=0x04 hdr=0x00 vendor = 'Intel Corporation' device = 'P64H2 I/O Advanced Programmable Interrupt Controller' class = base peripheral subclass = interrupt controller pcib6@pci2:31:0: class=0x060400 card=0x00000050 chip=0x14608086 rev=0x04 hdr=0x01 vendor = 'Intel Corporation' device = '82870P2 P64H2 PCI/PCI-X Hub Controller' class = bridge subclass = PCI-PCI fxp0@pci1:1:0: class=0x020000 card=0x10408086 chip=0x12298086 rev=0x10 hdr=0x00 vendor = 'Intel Corporation' device = '82550/1/7/8/9 EtherExpress PRO/100(B) Ethernet Adapter' class = network subclass = ethernet vgapci0@pci1:2:0: class=0x030000 card=0x80081002 chip=0x47521002 rev=0x27 hdr=0x00 vendor = 'ATI Technologies Inc' device = 'Rage XL PCI' class = display subclass = VGA