Il 16/10/2012 19:57, Richard W.M. Jones ha scritto:
> > Alternatively, it would also be good to get a generic
exception that
> > would let us distribute pre-compiled .dsl files as RPM sources. I'll
> > try to get ppc & ppc64 to use a cross-compiled SeaBIOS.
I think it'd be good for the packaging committee (as well as for me)
if you could explain what the pre-compiled .dsl files contain. Is it
just tables of ACPI data, or code as well? I understand from the
ACPICA website that ACPI has some sort of interpreter or VM?
Imdeed, the files contain bytecode. Here is a sample input:
=============
ACPI_EXTRACT_ALL_CODE ssdp_susp_aml
DefinitionBlock ("ssdt-susp.aml", "SSDT", 0x01, "BXPC",
"BXSSDTSUSP", 0x1)
{
Scope(\) {
ACPI_EXTRACT_NAME_STRING acpi_s3_name
Name (_S3, Package (0x04)
{
One, /* PM1a_CNT.SLP_TYP */
One, /* PM1b_CNT.SLP_TYP */
Zero, /* reserved */
Zero /* reserved */
})
ACPI_EXTRACT_NAME_STRING acpi_s4_name
ACPI_EXTRACT_PKG_START acpi_s4_pkg
Name (_S4, Package (0x04)
{
0x2, /* PM1a_CNT.SLP_TYP */
0x2, /* PM1b_CNT.SLP_TYP */
Zero, /* reserved */
Zero /* reserved */
})
Name (_S5, Package (0x04)
{
Zero, /* PM1a_CNT.SLP_TYP */
Zero, /* PM1b_CNT.SLP_TYP */
Zero, /* reserved */
Zero /* reserved */
})
}
}
=============
and the distributed file could be (depending on the details of the
build process) either something like this:
=============
static unsigned char ssdp_susp_aml[] = { 0x53,
0x53, 0x44, 0x54, 0x4e, 0x0, 0x0, 0x0, 0x1, 0x45, 0x42, 0x58, 0x50, 0x43,
0x0, 0x0, 0x42, 0x58, 0x53, 0x53, 0x44, 0x54, 0x53, 0x55, 0x1, 0x0, 0x0,
0x0, 0x49, 0x4e, 0x54, 0x4c, 0x28, 0x5, 0x10, 0x20, 0x10, 0x29, 0x5c,
0x0, 0x8, 0x5f, 0x53, 0x33, 0x5f, 0x12, 0x6, 0x4, 0x1, 0x1, 0x0, 0x0,
0x8, 0x5f, 0x53, 0x34, 0x5f, 0x12, 0x8, 0x4, 0xa, 0x2, 0xa, 0x2, 0x0,
0x0, 0x8, 0x5f, 0x53, 0x35, 0x5f, 0x12, 0x6, 0x4, 0x0, 0x0, 0x0, 0x0 };
=============
or something like this:
=============
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20100528 [Jul 20 2012]
Copyright (c) 2000 - 2010 Intel Corporation
Supports ACPI Specification Revision 4.0a
Compilation of "out/ssdt-susp.dsl.i" - Tue Oct 16 13:16:52 2012
1....
2..../* ACPI_EXTRACT_ALL_CODE ssdp_susp_aml */
3....
4....DefinitionBlock ("ssdt-susp.aml", "SSDT", 0x01,
"BXPC", "BXSSDTSUSP", 0x1)
00000000....53 53 44 54 4E 00 00 00 "SSDTN..."
00000008....01 45 42 58 50 43 00 00 ".EBXPC.."
00000010....42 58 53 53 44 54 53 55 "BXSSDTSU"
00000018....01 00 00 00 49 4E 54 4C "....INTL"
00000020....28 05 10 20 ............ "(.. "
5....{
6.... Scope(\) {
00000024....10 29 5C 00 ............ ".)\."
7....
8..../* ACPI_EXTRACT_NAME_STRING acpi_s3_name */
9....
10.... Name (_S3, Package (0x04)
11.... {
12.... One,
13.... One,
14.... Zero,
15.... Zero
16.... })
00000028....08 5F 53 33 5F ......... "._S3_"
0000002D....12 06 04 01 01 00 00 ... "......."
17....
18..../* ACPI_EXTRACT_NAME_STRING acpi_s4_name */
19....
20....
21..../* ACPI_EXTRACT_PKG_START acpi_s4_pkg */
22....
23.... Name (_S4, Package (0x04)
24.... {
25.... 0x2,
26.... 0x2,
27.... Zero,
28.... Zero
29.... })
00000042....08 5F 53 35 5F ......... "._S5_"
00000047....12 06 04 00 00 00 00 ... "......."
37.... }
38....}
39....
Summary of errors and warnings
ASL Optimizing Compiler version 20100528 [Jul 20 2012]
ASL Input: out/ssdt-susp.dsl.i - 40 lines, 677 bytes, 4 keywords
AML Output: out/ssdt-susp.aml - 78 bytes, 4 named objects, 0 executable opcodes
Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
=============
Paolo