Help - Search - Members - Calendar
Full Version: Iasl Or Acpi Tables Is Wrong
Project OS X Forums > Snow Leopard Guides & Tutorials > Installation
Slice
Latest iasl seems to be from official ACPI site. But, what I see
XSDT.dsl from Samsung laptop
CODE
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20091013
*
* Disassembly of xsdt.dat, Thu Mar 11 16:37:57 2010
*
* ACPI Data Table [RSDT]
*
* Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
*/

[000h 0000  4]                    Signature : "RSDT"    /* Root System Description Table */
[004h 0004  4]                 Table Length : 0000003C
[008h 0008  1]                     Revision : 01
[009h 0009  1]                     Checksum : 49     /* Incorrect checksum, should be 3D */
[00Ah 0010  6]                       Oem ID : "SEC  "  /* Samsung inc. */
[010h 0016  8]                 Oem Table ID : "  MAGIC "  
[018h 0024  4]                 Oem Revision : 06040000
[01Ch 0028  4]              Asl Compiler ID : " TPL"   /* why not ASL? */
[020h 0032  4]        Asl Compiler Revision : 00000000
[024h 0036  4]       ACPI Table Address   0 : 47F7ED44   //32bit values
[028h 0040  4]       ACPI Table Address   1 : 00000000
[02Ch 0044  4]       ACPI Table Address   2 : 47F7EDB8
[030h 0048  4]       ACPI Table Address   3 : 00000000
[034h 0052  4]       ACPI Table Address   4 : 47F7EED5
[038h 0056  4]       ACPI Table Address   5 : 00000000

For Dell laptop it is better
CODE
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20091013
*
* Disassembly of RSDT.aml, Sun Mar 28 15:19:36 2010
*
* ACPI Data Table [XSDT]
*
* Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
*/

[000h 0000  4]                    Signature : "XSDT"    /* Extended System Description Table */  //but not RSDT
[004h 0004  4]                 Table Length : 00000064
[008h 0008  1]                     Revision : 01
[009h 0009  1]                     Checksum : 8A   /* checksum is correct */
[00Ah 0010  6]                       Oem ID : "DELL  "
[010h 0016  8]                 Oem Table ID : "M08    "
[018h 0024  4]                 Oem Revision : 27D90A1B
[01Ch 0028  4]              Asl Compiler ID : "ASL "   /* yes, it is ASL */
[020h 0032  4]        Asl Compiler Revision : 00000061
[024h 0036  8]       ACPI Table Address   0 : 0000000000D58000   //64bit values
[02Ch 0044  8]       ACPI Table Address   1 : 000000007F66F300
[034h 0052  8]       ACPI Table Address   2 : 000000007F66F400
[03Ch 0060  8]       ACPI Table Address   3 : 000000007F66F3C0
[044h 0068  8]       ACPI Table Address   4 : 000000007F66F49C
[04Ch 0076  8]       ACPI Table Address   5 : 000000007F66EA00
[054h 0084  8]       ACPI Table Address   6 : 000000007F66EFC0
[05Ch 0092  8]       ACPI Table Address   7 : 000000007F66D97E

Why RSDT has signature XSDT and XSDT has signature RSDT?

Then check FACP.dsl
Samsung P29.
CODE
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20091013
*
* Disassembly of facp.dat, Thu Mar 11 16:40:46 2010
*
* ACPI Data Table [FACP]
*
* Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
*/

[000h 0000  4]                    Signature : "FACP"    /* Fixed ACPI Description Table */
[004h 0004  4]                 Table Length : 000000F4
[008h 0008  1]                     Revision : 01
[009h 0009  1]                     Checksum : B4     /* Incorrect checksum, should be 9A */  //again
[00Ah 0010  6]                       Oem ID : "SEC   "
[010h 0016  8]                 Oem Table ID : "MAGIC   "
[018h 0024  4]                 Oem Revision : 06040000
[01Ch 0028  4]              Asl Compiler ID : "PTL "    // why not ASL?
[020h 0032  4]        Asl Compiler Revision : 000F4240  //what is this?

[024h 0036  4]                 FACS Address : 47F7FFC0
[028h 0040  4]                 DSDT Address : 47F7AC9E
[02Ch 0044  1]                        Model : 00
[02Dh 0045  1]                   PM Profile : 00 (Unspecified)
[02Eh 0046  2]                SCI Interrupt : 0009
[030h 0048  4]             SMI Command Port : 000000B0
[034h 0052  1]            ACPI Enable Value : F0
[035h 0053  1]           ACPI Disable Value : F1

Dell laptop is better.
CODE
[000h 0000  4]                    Signature : "FACP"    /* Fixed ACPI Description Table */
[004h 0004  4]                 Table Length : 000000F4
[008h 0008  1]                     Revision : 04
[009h 0009  1]                     Checksum : 33
[00Ah 0010  6]                       Oem ID : "DELL  "
[010h 0016  8]                 Oem Table ID : "M08     "
[018h 0024  4]                 Oem Revision : 27D90A1B
[01Ch 0028  4]              Asl Compiler ID : "ASL "
[020h 0032  4]        Asl Compiler Revision : 00000061

[024h 0036  4]                 FACS Address : 7F67E000
[028h 0040  4]                 DSDT Address : 00D4D000
[02Ch 0044  1]                        Model : 01
[02Dh 0045  1]                   PM Profile : 02 (Mobile)    
[02Eh 0046  2]                SCI Interrupt : 0009
[030h 0048  4]             SMI Command Port : 000000B2
[034h 0052  1]            ACPI Enable Value : 70
[035h 0053  1]           ACPI Disable Value : 71
[036h 0054  1]               S4BIOS Command : 97
[037h 0055  1]              P-State Control : 80

It is other standard of defect of BIOS?
Superhai the Great
I don't know what you mean by wrong. Wrong checksum could be because the disassembly is not complete maybe. Compiler ID only refers to which compiler was used to create the table. Seem like Samsung has its own software, or just inserted some values for fun or whatever. Common Compiler ID is INTL for intel compiler or MSFT for Microsoft. Compiler revision is supposed to be some kind of version number of the compiler used.
Slice
I seems not fully understand this.
CODE
struct acpi_2_rsdt {
    char            Signature[4];
    uint32_t        Length;
    uint8_t         Revision;
    uint8_t         Checksum;
    char            OEMID[6];
    char            OEMTableId[8];
    uint32_t        OEMRevision;
    uint32_t        CreatorId;
    uint32_t        CreatorRevision;
} __attribute__((packed));

and
CODE
uint8_t csum2 = checksum8(acpi_addr, sizeof(struct acpi_2_rsdp));


I am looking into Chameleon sources because it doesn't patch DSDT table on the Samsung. One of the possible reason is incorrect checksum.
Disassembly of RSDT is completed without any warning and errors opposite to FACP
CODE
ACPI Warning: Invalid length for PmTimerBlock: 24, using default 32 (20091013/tbfadt-707)
Slice
Now I know that ACPI tables in my Samsung laptop BIOS is very quirky.
Checksum is wrong and decompile with errors and warnings.

I took my DSDT, disasl it, correct warnings, compile and upload.
Now I got brightness control, battery show, mute and touchpad off from Fn-keys as never before. Just recompile native DSDT.
Gringo Vermelho
I have the same XSDT/RSDT confusion on my P5Q-E:

CODE
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20100331
*
* Disassembly of ./RSDT.aml, Sat Apr 17 02:21:53 2010
*
* ACPI Data Table [XSDT]
*
* Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
*/

[000h 0000  4]                    Signature : "XSDT"    /* Extended System Description Table */
[004h 0004  4]                 Table Length : 00000054
[008h 0008  1]                     Revision : 01
[009h 0009  1]                     Checksum : D1
[00Ah 0010  6]                       Oem ID : "A_M_I_"
[010h 0016  8]                 Oem Table ID : "OEMXSDT "
[018h 0024  4]                 Oem Revision : 04000906
[01Ch 0028  4]              Asl Compiler ID : "MSFT"
[020h 0032  4]        Asl Compiler Revision : 00000097

[024h 0036  8]       ACPI Table Address   0 : 0000000000C0D000
[02Ch 0044  8]       ACPI Table Address   1 : 00000000CFF70390
[034h 0052  8]       ACPI Table Address   2 : 00000000CFF70400
[03Ch 0060  8]       ACPI Table Address   3 : 00000000CFF7E040
[044h 0068  8]       ACPI Table Address   4 : 00000000CFF79B70
[04Ch 0076  8]       ACPI Table Address   5 : 00000000CFF79BB0

Raw Table Data

  0000: 58 53 44 54 54 00 00 00 01 D1 41 5F 4D 5F 49 5F  XSDTT.....A_M_I_
  0010: 4F 45 4D 58 53 44 54 20 06 09 00 04 4D 53 46 54  OEMXSDT ....MSFT
  0020: 97 00 00 00 00 D0 C0 00 00 00 00 00 90 03 F7 CF  ................
  0030: 00 00 00 00 00 04 F7 CF 00 00 00 00 40 E0 F7 CF  ............@...
  0040: 00 00 00 00 70 9B F7 CF 00 00 00 00 B0 9B F7 CF  ....p...........
  0050: 00 00 00 00                                      ....


But I don't know what it means or if it's anything to worry about.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.