Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Oct 2004 14:09:30 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        Nate Lawson <nate@root.org>
Cc:        cvs-src@FreeBSD.org
Subject:   Re: cvs commit: src/usr.sbin/acpi/acpidump acpi.c acpidump.c acpidump.h
Message-ID:  <200410051409.30619.jhb@FreeBSD.org>
In-Reply-To: <4162DEF0.1020809@root.org>
References:  <200410050237.LAA20152@axe-inc.co.jp> <4162DEF0.1020809@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 05 October 2004 01:50 pm, Nate Lawson wrote:
> Takanori Watanabe wrote:
> > In message <200410050218.i952IrBK008982@repoman.freebsd.org>, Nate Lawson
> > wrote
> >
> >>njl         2004-10-05 02:18:53 UTC
> >>
> >> FreeBSD src repository
> >>
> >> Modified files:
> >>   usr.sbin/acpi/acpidump acpi.c acpidump.c acpidump.h
> >> Log:
> >> Add the -s flag to make dumping SSDTs optional (disabled by default).
> >> Since we can only override the DSDT, a custom ASL dumped previously that
> >> contained SSDTs would result in lots of multiple definition errors.
> >>
> >> A longer-term fix involves adding the ability to override SSDTs to
> >> ACPI-CA.
> >
> > iasl(8) may have to be able to compile multiple AML codes from single
> > ASL data, instead of merging SSDT into DSDT in acpidump(8).
>
> I think the most straightforward fix is for ACPI-CA to not load SSDT
> tables when the user is overriding the DSDT.  If you treat overridden
> SSDTs separately, you go down the path of having to specify _which_
> table you want to override, which implies you need strict ordering of
> tables in both ASL and AML and it just gets too complicated.  Some HP
> Itanium machines have 8 to 10 SSDTs.

I agree.  It makes the user's lives a lot easier if they procedure remains:

- acpidump > foo.asl
- hack on foo.asl to fix it
- compile foo.asl to foo.dsdt
- load foo.dsdt in the loader

and have it all just work.  Actually, you know, we could make this work on our 
own without requiring ACPI-CA to change.  You just need to hack 
AcpiOsTableOverride() in OsdTable.c to return a pointer to an empty table for 
"SSDT" tables when the DSDT is overridden.  In fact, I think that is probably 
where this behavior decision really belongs.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410051409.30619.jhb>