From owner-cvs-src-old@FreeBSD.ORG Fri Jan 15 21:46:22 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49D59106568D for ; Fri, 15 Jan 2010 21:46:22 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1CEF48FC20 for ; Fri, 15 Jan 2010 21:46:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o0FLkL78029677 for ; Fri, 15 Jan 2010 21:46:21 GMT (envelope-from marius@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0FLkL8g029676 for cvs-src-old@freebsd.org; Fri, 15 Jan 2010 21:46:21 GMT (envelope-from marius@repoman.freebsd.org) Message-Id: <201001152146.o0FLkL8g029676@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to marius@repoman.freebsd.org using -f From: Marius Strobl Date: Fri, 15 Jan 2010 21:45:55 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_7 Subject: cvs commit: src/sys/conf files.sparc64 options.sparc64 src/sys/sparc64/pci fire.c firereg.h firevar.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2010 21:46:22 -0000 marius 2010-01-15 21:45:55 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/conf files.sparc64 options.sparc64 Added files: (Branch: RELENG_7) sys/sparc64/pci fire.c firereg.h firevar.h Log: SVN rev 202420 on 2010-01-15 21:45:55Z by marius MFC: r201052, r201200, r202003, r202010, r202023 Add a driver for the `Fire' JBus to PCIe bridges found in at least the Sun Fire V215/V245 and Sun Ultra 25/45 machines. This driver also already includes all the code to support the `Oberon' Uranus to PCIe bridges found in the Fujitsu-Siemens based Mx000 machines but due to lack of access to such a system for testing, probing of these bridges is currently disabled. Unfortunately, the event queue mechanism of these bridges for MSIs/ MSI-Xs matches our current MD and MI interrupt frameworks like square pegs fit into round holes so for now we are generous and use one event queue per MSI, which limits us to 35 MSIs/MSI-Xs per Host-PCIe-bridge (we use one event queue for the PCIe error messages). This seems tolerable as long as most devices just use one MSI/MSI-X anyway. Adding knowledge about MSIs/MSI-Xs to the MD interrupt code should allow us to decouple the 1:1 mapping at the cost of no longer being able to bind MSIs/MSI-Xs to specific CPUs as we currently have no reliable way to quiesce a device during the transition of its MSIs/ MSI-Xs to another event queue. This would still require the problem of interrupt storms generated by devices which have no one-shot behavior or can't/don't mask interrupts while the filter/handler is executed (like the older PCIe NICs supported by bge(4)) to be solved though. Revision Changes Path 1.92.2.9 +1 -0 src/sys/conf/files.sparc64 1.14.2.3 +2 -0 src/sys/conf/options.sparc64 1.4.4.2 +2171 -0 src/sys/sparc64/pci/fire.c (new) 1.1.4.2 +1004 -0 src/sys/sparc64/pci/firereg.h (new) 1.1.4.2 +98 -0 src/sys/sparc64/pci/firevar.h (new)