From: ebiederm@xmission.com (Eric W. Biederman) Subject: Re: [discuss] Re: 2.6.19-rc4: known unfixed regressions (v3) Date: Wed, 08 Nov 2006 12:24:54 -0700 Message-ID: References: <20061107171143.GU27140@parisc-linux.org> <200611080839.46670.ak@suse.de> <20061108122237.GF27140@parisc-linux.org> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Cc: Andrew Morton , len.brown@intel.com, Thierry Vignaud , Matthew Wilcox , Ernst Herzberg , Aaron Durbin , Alex Romosan , openib-general@openib.org, Andi Kleen , linux-ide@vger.kernel.org, oprofile-list@lists.sourceforge.net, Jens Axboe , Adrian Bunk , linux-pci@atrey.karlin.mff.cuni.cz, Elimar Riesebieter , discuss@x86-64.org, linux-pm@osdl.org, Komuro , Jeff Chua , Tim Chen , phil.el@wanadoo.fr, gregkh@suse.de, neilb@cse.unsw.edu.au, Linux Kernel Mailing List , linux-acpi@vger.kernel.org, mingo@redhat.com, nfs@lists.sourceforge.net, cpufreq@lists.linux.o Return-path: To: Linus Torvalds In-Reply-To: (Linus Torvalds's message of "Wed, 8 Nov 2006 10:52:05 -0800 (PST)") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.osdl.org Errors-To: linux-pm-bounces@lists.osdl.org List-ID: Linus Torvalds writes: > On Wed, 8 Nov 2006, Eric W. Biederman wrote: >> = >> The implementations I have seen, I believe have all been on bridges and >> the maximum size is actually generated from the bus number below the bri= dge. > > Hmm. It might be possible to first set up the MMCONFIG thing for the = > minimum range, then read the bus numbers from the host bridge on that bus= , = > and then expand the mmconfig range if necessary. > > Because pretty much ANYTHING is better than trusting the BIOS tables. > > That said, I'd really be a _lot_ more confident about it if we were to be = > able to read the values from the hardware itself some way. There's = > obviously a chicken-and-egg issue on mmcfg configuration, but it's one = > that the BIOS startup code also has, so I assume that there is a solution = > to that somewhere. cfc and cf8 still work on x86. So you can start with the old path and then when you know mmconfig works you can upgrade. In fact mmconfig doesn't necessary allow access to the entire pci domain. On AMD systems currently you will get all of the subordinate busses but the cpus themselves will not show up in the mmconfig space. So we should have the infrastructure to only use mmconfig for some set of busses. If that interface is well described we can probably bootstrap sanely, only enabling what we know exists and like wise only reserving what we know is used. For chipsets I know that there is quite a bit of information publicly available. For intel chipsets I believe those are registers they make available in their public docs. For things like the Nvidia chipset the knowledge should be in the publicly available linuxbios code base. Hopefully that is enough of a pointer to get people going. I might have enough time to write the patch but I don't have enough time to maintain it until mmconfig becomes boring. Eric