From: Lin Ming <ming.m.lin@intel.com>
To: Thomas Renninger <trenn@suse.de>
Cc: linux-acpi <linux-acpi@vger.kernel.org>,
"hmh@hmh.eng.br" <hmh@hmh.eng.br>,
"elendil@planet.nl" <elendil@planet.nl>,
"devel@lists.acpica.org" <devel@lists.acpica.org>
Subject: Re: iasl and SSDT disassembling limitations
Date: Tue, 18 Nov 2008 15:53:46 +0800 [thread overview]
Message-ID: <1226994826.32759.4.camel@minggr.sh.intel.com> (raw)
In-Reply-To: <200811141728.40581.trenn@suse.de>
On Sat, 2008-11-15 at 00:28 +0800, Thomas Renninger wrote:
> On Thursday 13 November 2008 08:02:29 Lin Ming wrote:
> > On Thu, 2008-11-13 at 08:17 +0800, Thomas Renninger wrote:
> > > On Friday 24 October 2008 05:50:30 am Lin Ming wrote:
> > > > We have added a "-e" option to iasl that include tables for external
> > > > symbol resolution. See
> > > > http://git.acpica.org/repos/?p=acpica.git;a=commitdiff;h=2f705a1b06109e
> > > >12bd 2659d0e12215710a5622b7
> > > >
> > > >
> > > > Example: To disassemble an SSDT with external symbols defined in DSDT:
> > > >
> > > > iasl -e dsdt.aml -d ssdt.aml
> > >
> > > I thought this option already existed for quite a while?
> > > Did it get re-implemented?
> >
> > No, the original one is a NULL implementation.
> It did not work, but it already remembered unresolved objects/functions and
> tried to resolve them correctly from the -e passed table.
> Either this or I did mess up something completely when I played with that
> maybe a year ago.
>
> >
> > > IIRC I already saw references in both directions. SSDT is making use of
> > > variables declared in the DSDT and vice versa (rare, but it can happen).
> > >
> > > IMO a proper long-term solution would be to be able to do:
> > > iasl -d [DS]SDT*.dsl
> > > iasl then parses every table, remembers unresolved objects and then goes
> > > through these, once the last table got parsed.
> > >
> > > Probably one step harder to implement, do you think this is possible to
> > > do or should such things be considered as BIOS implementation bugs?
> >
> > It's possible, but harder. External symbol is not a BIOS bug.
> Do you plan to extend the functionality that external symbols can be
> resolved in both directions, e.g. by passing all DSDT and SSDT tables:
> iasl -d DSDT.dsl SSDT1.dsl SSDT2.dsl
Yes, both directions.
> I tried that unsuccessfully quite some time ago.
I have some patches here.
You can try it again when next version of iasl is released.
Lin Ming
> Now one still has an overview how this could be done :)
> iasl -e DSDT.dsl SSDTx.dsl
> should now work in much more cases, but I fear there will be some which
> are still not covered (if DSDT references variables declared in SSDTs).
>
> > iasl tries to guess the arguments of external methods, and it success at
> > most time (-e option is not needed).
> >
> > But sometimes it fails, and then you can use -e option to include the
> > external tables to resolve the external symbols.
> Yes, and having this working makes it possible to more reliably check
> BIOSes against ASL syntax errors.
>
> Thanks a lot for your efforts,
>
> Thomas
>
> > Lin Ming
> >
> > > Thanks,
> > >
> > > Thomas
> > >
> > > > Lin Ming
> > > >
> > > > > From: linux-acpi-owner@vger.kernel.org
> > > > > [mailto:linux-acpi-owner@vger.kernel.org] On Behalf Of Moore, Robert
> > > > > Sent: Saturday, September 27, 2008 12:49 AM
> > > > > To: Henrique de Moraes Holschuh
> > > > > Cc: linux-acpi@vger.kernel.org
> > > > > Subject: RE: iasl and SSDT disassembling limitations
> > > > >
> > > > > Yes, it should be possible, and it is on our list of things to look
> > > > > at.
> > > > >
> > > > > A little more info on the problem: Without the definition of the
> > > > > control method, the disassembler has no way of knowing how many
> > > > > arguments should be passed to the method. Without this information,
> > > > > it does not know how many expressions to parse after the control
> > > > > method invocation in order to create the arguments. The information
> > > > > is simply not available. So it tries to guess.
> > > > >
> > > > > Bob
> > > > >
> > > > > >-----Original Message-----
> > > > > >From: Henrique de Moraes Holschuh [mailto:hmh@hmh.eng.br]
> > > > > >Sent: Friday, September 26, 2008 9:09 AM
> > > > > >To: Moore, Robert
> > > > > >Cc: linux-acpi@vger.kernel.org
> > > > > >Subject: iasl and SSDT disassembling limitations
> > > > > >
> > > > > >On Fri, 26 Sep 2008, Moore, Robert wrote:
> > > > > >> Most of the problems seen in the SSDT are related to the fact that
> > > > > >> the disassembler cannot always correctly disassemble code that
> > > > > >> contains calls to control methods that are external to the table.
> > > > > >> There is not enough information to disassemble correctly, and the
> > > > > >> table often needs to be repaired by hand.
> > > > > >
> > > > > >Can iasl be improved to properly disassemble such tables if we give
> > > > > > it ALL tables to work with?
> > > > > >
> > > > > >--
> > > > > > "One disk to rule them all, One disk to find them. One disk to
> > > > > > bring them all and in the darkness grind them. In the Land of
> > > > > > Redmond where the shadows lie." -- The Silicon Valley Tarot
> > > > > > Henrique Holschuh
> > > > >
> > > > > --
> > > > > To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> > > > > in the body of a message to majordomo@vger.kernel.org
> > > > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > > >
> > > > --
> > > > To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> > > > in the body of a message to majordomo@vger.kernel.org
> > > > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
next prev parent reply other threads:[~2008-11-18 7:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3515468CA27A0F49917112E2ECF61E210927CBF912@pdsmsx502.ccr.corp.intel.com>
2008-10-24 10:50 ` iasl and SSDT disassembling limitations Lin Ming
2008-10-30 9:11 ` Frans Pop
2008-10-30 9:16 ` Lin Ming
2008-11-13 0:17 ` Thomas Renninger
2008-11-13 7:02 ` Lin Ming
2008-11-14 16:28 ` Thomas Renninger
2008-11-18 7:53 ` Lin Ming [this message]
2008-11-18 8:00 ` Lin Ming
2008-09-25 9:19 Syntax errors in SSDT1 table of HP 2510p laptop Frans Pop
2008-09-26 3:44 ` Zhao Yakui
2008-09-26 4:52 ` Frans Pop
2008-09-26 13:37 ` Moore, Robert
2008-09-26 16:08 ` iasl and SSDT disassembling limitations Henrique de Moraes Holschuh
2008-09-26 16:48 ` Moore, Robert
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=1226994826.32759.4.camel@minggr.sh.intel.com \
--to=ming.m.lin@intel.com \
--cc=devel@lists.acpica.org \
--cc=elendil@planet.nl \
--cc=hmh@hmh.eng.br \
--cc=linux-acpi@vger.kernel.org \
--cc=trenn@suse.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.