- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It appears to me that the iASL 20140424 isn't properly handling the ACPI FPDT table.
The following information is the information that has lead me to the above conclusion.
This is my fist time looking at the FPDT table and would like some verification of my understanding and findings.
The AMI APTIO BIOS I'm working with has a FPDT table in the ACPI. When I use iASL to decompile the table I get an error that the table terminates in the middle of a data structure. When I have iASL generate a FPDT template file I see that the lengths of subtable type 0x0000 are different between the two.
Digging through the ACPI 5.0 spec it appears to me that the BIOS is correct and that iASL is making an illegal FPDT table template with the corresponding problem compiling and decompiling the BIOS table.
The ACPI 5.0 spec (5.2.23) covers the FPDT. That section is very, IMO, poorly organized which I believe has contributed to the problem in iASL. Table 5-101 shows that there are two active subtable types 0x0000 (Basic Boot Performance Pointer Record) and 0x0001 (S3 Performance Table Pointer Record).
The "Basic Boot Performance Pointer Record", subtype 0x0000, structure is detailed in table 5-104 and is 16 bytes in size (which is incorrectly labeled "S4 Performance Table Record Pointer" given the record type in the table is "Firmware Basic Boot Performance Pointer Record"). iASL in the generated template has a length of 48 (0x30) for this subtype.
The "S3 Performance Table Pointer Record", subtype 0x0001, structure is detailed in table 5-103 and is 16 bytes in size.
RW-Everything is interpreting the same as what my understanding of the ACPI spec.
- Here's what RW-Everything shows for the table.
Firmware Performance Data Table: 0x00000000DB908FD0
46 50 44 54 44 00 00 00 01 79 50 58 43 49 50 43 FPDTD....yPXCIPC
50 58 43 5F 43 49 53 5F 09 20 07 01 41 4D 49 20 PXC_CIS_. ..AMI
13 00 01 00 01 00 10 01 00 00 00 00 18 C0 F0 DB ................
00 00 00 00 00 00 10 01 00 00 00 00 38 C0 F0 DB ............8...
00 00 00 00 ....
Signature "FPDT"
Length 0x00000044 (68)
Revision 0x01 (1)
Checksum 0x79 (121)
OEM ID "PXCIPC"
OEM Table ID "PXC_CIS_"
OEM Revision 0x01072009 (17244169)
Creator ID "AMI "
Creator Revision 0x00010013 (65555)
Performance Records
S3 Performance Table Pointer Record
Record Type 0x0001 (1)
Record Length 0x10 (16)
Revision 0x01 (1)
Reserved 0x00000000
S3PT Pointer 0x00000000DBF0C018
...
S4 Performance Table Pointer Record
Record Type 0x0000 (0)
Record Length 0x10 (16)
Revision 0x01 (1)
Reserved 0x00000000
FBPT Pointer 0x00000000DBF0C038
...
- Here's the iASL decompile of the table shown above.
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20140424-32 [Apr 24 2014]
* Copyright (c) 2000 - 2014 Intel Corporation
*
* Disassembly of DB908FD0_FPDT.bin, Wed Apr 30 09:39:53 2014
*
* ACPI Data Table [FPDT]
*
* Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue
<span style="font-family: 'co...
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I should mention that the iASL generated template subtype 0x0000 with a length of 0x30 corresponds to the structure shown in Table 5-109 which is described in section 5.2.23.7 as a record in a table that resides outside the FPDT table.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello! We are looking into this for you. There has been a delay due to some holidays, but I wanted you to know that we will address this as soon as possible. Lynn
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your posting. We will pass your findings on to our BIOS team. As BIOS code is the responsibility of each board manufacturer to provide or purchases a BIOS code based off a given BIOS vendor's code it is the
board manufacturer responsibility to make sure all code is verified on their platform. We encourage customers to contact their board manufacturer and report issues to a specific platform or code base. If the board manufacture determines an issue with their platform, they will work with Intel on a resolution.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page