From owner-cvs-src@FreeBSD.ORG Wed May 2 18:16:32 2007 Return-Path: X-Original-To: cvs-src@freebsd.org Delivered-To: cvs-src@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6B02B16A404; Wed, 2 May 2007 18:16:32 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.freebsd.org (Postfix) with ESMTP id E7C8113C459; Wed, 2 May 2007 18:16:31 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.8/8.13.8) with ESMTP id l42IGTO5033325; Wed, 2 May 2007 14:16:30 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: src-committers@freebsd.org Date: Wed, 2 May 2007 14:16:22 -0400 User-Agent: KMail/1.9.6 References: <200705021750.l42HoaMj067787@repoman.freebsd.org> In-Reply-To: <200705021750.l42HoaMj067787@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200705021416.22715.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Wed, 02 May 2007 14:16:30 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/3195/Wed May 2 05:34:51 2007 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: cvs-src@freebsd.org, cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/amd64/amd64 mptable_pci.c msi.c nexus.c src/sys/amd64/include intr_machdep.h src/sys/amd64/pci pci_bus.c src/sys/dev/acpica acpi_pcib_acpi.c acpi_pcib_pci.c src/sys/dev/pci pci.c pci_if.m pci_pci.c pci_private.h pcib_if.m ... X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 May 2007 18:16:32 -0000 On Wednesday 02 May 2007 01:50:36 pm John Baldwin wrote: > jhb 2007-05-02 17:50:36 UTC > > FreeBSD src repository > > Modified files: > sys/amd64/amd64 mptable_pci.c msi.c nexus.c > sys/amd64/include intr_machdep.h > sys/amd64/pci pci_bus.c > sys/dev/acpica acpi_pcib_acpi.c acpi_pcib_pci.c > sys/dev/pci pci.c pci_if.m pci_pci.c pci_private.h > pcib_if.m pcib_private.h pcivar.h > sys/i386/i386 mptable_pci.c msi.c nexus.c > sys/i386/include intr_machdep.h > sys/i386/pci pci_bus.c > Log: > Revamp the MSI/MSI-X code a bit to achieve two main goals: > - Simplify the amount of work that has be done for each architecture by > pushing more of the truly MI code down into the PCI bus driver. > - Don't bind MSI-X indicies to IRQs so that we can allow a driver to map > multiple MSI-X messages into a single IRQ when handling a message > shortage. > > The changes include: > - Add a new pcib_if method: PCIB_MAP_MSI() which is called by the PCI bus > to calculate the address and data values for a given MSI/MSI-X IRQ. > The x86 nexus drivers map this into a call to a new 'msi_map()' function > in msi.c that does the mapping. Another benefit to this change is that we can let PCI bridge drivers futz with the address and data values if needed. One case where this is needed is the HT2000 chipset which apparently is too brain-damaged to use the default MSI address window on x86. We can patch pcib_map_msi() to update the address value for the workaround address window given in the errata so that devices behind those bridges can now work. -- John Baldwin