public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
To: linux-pci@atrey.karlin.mff.cuni.cz
Cc: Kristen Carlson Accardi <kristen.c.accardi@intel.com>,
	Greg KH <greg@kroah.com>, Alex Chiang <achiang@hp.com>,
	gregkh@suse.de, lenb@kernel.org, matthew@wil.cx,
	rick.jones2@hp.com, linux-kernel@vger.kernel.org,
	pcihpd-discuss@lists.sourceforge.net, linux-acpi@vger.kernel.org
Subject: Re: [PATCH 0/5][RFC] Physical PCI slot objects
Date: Wed, 14 Nov 2007 10:37:08 -0700	[thread overview]
Message-ID: <200711141037.09228.bjorn.helgaas@hp.com> (raw)
In-Reply-To: <20071113145936.7e1c58fb.kristen.c.accardi@intel.com>

On Tuesday 13 November 2007 03:59:36 pm Kristen Carlson Accardi wrote:
> On Tue, 13 Nov 2007 12:26:32 -0800 Greg KH <greg@kroah.com> wrote:
> > And isn't there some other tool that dumps the raw ACPI tables?  I
> > thought the acpi developers used it all the time when debugging things
> > with users.
> 
> There are - people should take a look at the Intel Linux Firmware Kit
> for an example of how to parse ACPI tables in userspace - the code
> is also GPL'd, so you are free to use it in another GPL application.
> 
> http://www.linuxfirmwarekit.org/download.php#source
> 
> In many DSDTs I've seen, _SUN is hardcoded anyway and can be found
> by reading the DSDT from userspace.  This is what the firmwarekit
> does to check for duplicate _SUN in one of it's tests.

I see three relevant things in the firmware kit:

  1) ExecuteAmlMethod() in amlpoke/amlpoke.c.  This uses
     /proc/acpi/hotkey/event_config to cause the kernel to
     execute an AML method.  This looks similar to what dev_acpi
     does and is unsafe for the same reasons (the method may have
     side effects that interfere with kernel drivers).  The kernel
     support for this was removed in 2.6.21:

       http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5ee6edbcde4d3b14e4e03d4b331df1099a34aa8d

  2) execute_aml_method() in acpitable.c.  Similar to above.

  3) parse_SUN_name() in SUN/SUN.c.  This uses acpidump, acpixtract,
     and iasl -d to disassemble the DSDT and SSDTs, then looks for
     things like "Name (_SUN, 0x0000012C)".  That works well if _SUN
     merely returns a constant, and many DSDTs do that.

     But _SUN can be implemented as a control method, and then we have
     a problem because we can't determine the _SUN value by inspecting
     the DSDT.  We have to evaluate the method, and that may require
     operation regions, semaphores, etc., so it can only be done in the
     kernel.

So I agree that the firmware kit has a clever hack that works on much
existing x86 firmware, and it sounds like Tivoli might even rely on
it.  But I don't feel good about it, and it could easily break when
some BIOS writer needs to make _SUN slightly more complicated.

Bjorn

  reply	other threads:[~2007-11-14 17:37 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-13  0:08 [PATCH 0/5][RFC] Physical PCI slot objects Alex Chiang
2007-11-13  0:12 ` [PATCH 1/5] Remove path attribute from sgi_hotplug Alex Chiang
2007-11-13  0:13 ` [PATCH 2/5] Construct one fakephp slot per pci slot Alex Chiang
2007-11-13 19:48   ` Linas Vepstas
2007-11-13 19:52     ` Matthew Wilcox
2007-11-14 12:39   ` [Pcihpd-discuss] " Rolf Eike Beer
2007-11-14 14:17     ` Alex Chiang
2007-11-14 14:49       ` Rolf Eike Beer
2007-11-14 15:01         ` Alex Chiang
2007-11-13  0:14 ` [PATCH 3/5, RFC] Introduce pci_slot Alex Chiang
2007-11-13 19:56   ` Linas Vepstas
2007-11-13 20:03     ` Matthew Wilcox
2007-11-13  0:17 ` [PATCH 4/5, RFC] ACPI PCI slot detection driver Alex Chiang
2007-11-13  0:18   ` [PATCH 5/5] Add pci_slot_add_hotplug() interface Alex Chiang
2007-11-13 17:01 ` [PATCH 0/5][RFC] Physical PCI slot objects Greg KH
2007-11-13 18:33   ` Matthew Wilcox
2007-11-13 18:51     ` Greg KH
2007-11-13 20:11       ` Matthew Wilcox
2007-11-13 20:19         ` Greg KH
2007-11-13 23:08         ` Gary Hade
2007-11-14  1:37           ` Alex Chiang
2007-11-15  0:40             ` Gary Hade
2007-11-15 17:36               ` Alex Chiang
2007-11-15 23:38                 ` Gary Hade
2007-11-14 14:42           ` Alex Chiang
     [not found]             ` <20071114181337.GA6269@us.ibm.com>
2007-11-14 18:36               ` Alex Chiang
2007-11-13 20:36       ` Alex Chiang
2007-11-13 21:30         ` Greg KH
2007-11-13 22:01           ` Bjorn Helgaas
2007-11-13 22:16             ` Greg KH
2007-11-13 21:15       ` Matt Domsch
2007-11-13 21:31         ` Alex Chiang
2007-11-13 21:36           ` Greg KH
     [not found]           ` <20071113213646.GB4426@kroah.com>
2007-11-13 23:14             ` Alex Chiang
2007-11-13 21:32         ` Greg KH
2007-11-13 20:21   ` Alex Chiang
2007-11-13 20:26     ` Greg KH
2007-11-13 22:51       ` Rick Jones
2007-11-13 22:56         ` Greg KH
2007-11-13 23:04           ` Matthew Wilcox
2007-11-13 23:07             ` Greg KH
2007-11-14  6:00               ` Scott Murray
2007-11-13 23:33             ` Kristen Carlson Accardi
2007-11-14  0:10               ` Matthew Wilcox
2007-11-14  9:55                 ` Kenji Kaneshige
2007-11-14 18:38                   ` Kristen Carlson Accardi
2007-11-13 22:59       ` Kristen Carlson Accardi
2007-11-14 17:37         ` Bjorn Helgaas [this message]
2007-11-14 17:53           ` Greg KH
2007-11-14 19:53             ` Alex Chiang
2007-11-14 21:24             ` Alex Chiang
2007-11-14 21:42             ` Alex Chiang
2007-11-14 22:00               ` Greg KH
2007-11-15 20:20                 ` Alex Chiang
2007-11-14 17:44       ` Matthew Garrett
2007-11-14 17:51         ` Greg KH
2007-11-14 18:03           ` Matthew Garrett
2007-11-13 20:24   ` Linas Vepstas
2007-11-13 20:59     ` Alex Chiang
     [not found]       ` <20071113214121.GC8509@austin.ibm.com>
2007-11-13 21:58         ` Matthew Wilcox
2007-11-14  1:07   ` Andi Kleen
2007-11-14 14:17     ` Matthew Wilcox
2007-11-14 14:35       ` Andi Kleen
2007-11-14 15:00         ` Matthew Wilcox
2007-11-14 15:08           ` Andi Kleen
2007-11-14 15:12             ` Matthew Wilcox
2007-11-14 15:20             ` Alex Chiang
2007-11-14 11:43 ` Kenji Kaneshige

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=200711141037.09228.bjorn.helgaas@hp.com \
    --to=bjorn.helgaas@hp.com \
    --cc=achiang@hp.com \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=kristen.c.accardi@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@atrey.karlin.mff.cuni.cz \
    --cc=matthew@wil.cx \
    --cc=pcihpd-discuss@lists.sourceforge.net \
    --cc=rick.jones2@hp.com \
    /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