Re: [RFC PATCH v4 3/5] PCI: Check platform specific ECAM quirks

From: Tomasz Nowicki
Date: Wed Jun 29 2016 - 09:59:11 EST


On 29.06.2016 15:34, Christopher Covington wrote:
I'm confused by this statement. OEMID is defined as 6 bytes long and OEM
Table ID as 8 bytes long in the ACPI specification. As far as I can
tell, if your string isn't exactly that long, padding up to that length
is required.

Well, I cannot find that requirement in ACPI spec. but I might missed something.

I dumped my x86 machine ACPI tables and here is an example of MCFG:

$ cat mcfg.dsl
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20160108-64
* Copyright (c) 2000 - 2016 Intel Corporation
*
* Disassembly of mcfg.dat, Wed Jun 29 15:48:16 2016
*
* ACPI Data Table [MCFG]
*
* Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue
*/

[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table]
[004h 0004 4] Table Length : 0000003C
[008h 0008 1] Revision : 01
[009h 0009 1] Checksum : A9
[00Ah 0010 6] Oem ID : "ALASKA"
[010h 0016 8] Oem Table ID : "A M I"
[018h 0024 4] Oem Revision : 01072009
[01Ch 0028 4] Asl Compiler ID : "MSFT"
[020h 0032 4] Asl Compiler Revision : 00000097

[024h 0036 8] Reserved : 0000000000000000

[02Ch 0044 8] Base Address : 00000000F8000000
[034h 0052 2] Segment Group Number : 0000
[036h 0054 1] Start Bus Number : 00
[037h 0055 1] End Bus Number : 3F
[038h 0056 4] Reserved : 00000000

Raw Table Data: Length 60 (0x3C)

00000000 4d 43 46 47 3c 00 00 00 01 a9 41 4c 41 53 4b 41 |MCFG<.....ALASKA|
00000010 41 20 4d 20 49 00 00 00 09 20 07 01 4d 53 46 54 |A M I.... ..MSFT|
00000020 97 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f8 |................|
00000030 00 00 00 00 00 00 00 3f 00 00 00 00 |.......?....|

So in this example I have OEM table ID "A M I" 6 character long and 0 padding.

Tomasz