public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Hancock <hancockr@shaw.ca>
To: Chuck Ebbert <cebbert@redhat.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
	Andi Kleen <ak@suse.de>, Len Brown <lenb@kernel.org>,
	linux-acpi@vger.kernel.org
Subject: Re: PCI Express MMCONFIG and BIOS Bug messages..
Date: Sat, 28 Apr 2007 19:22:43 -0600	[thread overview]
Message-ID: <4633F363.4000009@shaw.ca> (raw)
In-Reply-To: <46279358.1010002@redhat.com>

Chuck Ebbert wrote:
> Robert Hancock wrote:
>> I've seen a lot of systems (including brand new Xeon-based servers from
>> IBM and HP) that output messages on boot like:
>>
>> PCI: BIOS Bug: MCFG area at f0000000 is not E820-reserved
>> PCI: Not using MMCONFIG.
>>
>>
>> So Microsoft is explicitly telling the BIOS developers that there is no
>> need to reserve the MMCONFIG space in the E820 table because Windows
>> doesn't care. On that basis it doesn't seem like a valid check to
>> require it to be so reserved, then.
>>
>> Really, I think we should be basing this check on whether the
>> corresponding memory range is reserved in the ACPI resources, like
>> Windows expects. This does require putting more fingers into ACPI from
>> this early boot stage, though..
>>
> 
> Intel had posted patches to do exactly that, but they were rejected.
> I don't remember why now...

I tried adapting a patch by Rajesh Shah to do this for current kernels:

http://lkml.org/lkml/2006/6/23/365

It walks through all the motherboard resource devices and tries to pull 
out the resource settings for all of them using the _CRS method. 
(Depending on how you do the probing, the _STA method is called as well, 
either before or after.) From my limited ACPI knowledge, the problem is 
that the PCI MMCONFIG initialization is called before the main ACPI 
interpreter is enabled, and these control methods may try to access 
operation regions who don't have handlers set up for them yet, so a 
bunch of "no handler for region" errors show up.

I think some earlier version of this patch was in -mm for a while back 
in 2.6.18 times, I actually complained about it back then because it 
falsely detected the region wasn't reserved on my system since it bailed 
out on the first such error before it found the reservation. On my 
system it turns out that the device called EXPL that has the MCFG table 
reservation in it has the addresses statically defined in the _CRS 
method and doesn't need to access any regions, so if you make the search 
continue on after errors, it does actually work, but there's probably no 
guarantee that all systems will have the MCFG reservation statically 
defined like this, and we can't have all those ACPI errors from other 
devices clogging the logs either.

So essentially if we want to do this check based on ACPI resource 
reservations, we need to be able to execute control methods at the point 
that MMCONFIG is set up. Is there a reason why this can't be made 
possible (like by moving the necessary parts of ACPI initialization 
earlier)?

-- 
Robert Hancock      Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/



  reply	other threads:[~2007-04-29  1:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-19  1:25 PCI Express MMCONFIG and BIOS Bug messages Robert Hancock
2007-04-19 16:05 ` Chuck Ebbert
2007-04-29  1:22   ` Robert Hancock [this message]
2007-04-29 10:12     ` Andi Kleen
2007-04-29 18:20       ` Robert Hancock
2007-04-29 18:27         ` Jesse Barnes
2007-04-29 18:39           ` Robert Hancock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4633F363.4000009@shaw.ca \
    --to=hancockr@shaw.ca \
    --cc=ak@suse.de \
    --cc=cebbert@redhat.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox