From c1cd1d360db857d6f76071e8de6af97cdab2bdfe Mon Sep 17 00:00:00 2001 From: Zhao Liu Date: Mon, 23 Oct 2023 17:46:23 +0800 Subject: [PATCH] tests: bios-tables-test: Add ACPI table binaries for smbios type4 count test Following the guidelines in tests/qtest/bios-tables-test.c, this is step 5 and 6. Changes in the tables: FACP: +/* + * Intel ACPI Component Architecture + * AML/ASL+ Disassembler version 20200925 (64-bit version) + * Copyright (c) 2000 - 2020 Intel Corporation + * + * Disassembly of /tmp/aml-W37791, Wed Aug 23 10:36:32 2023 + * + * ACPI Data Table [FACP] + * + * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue + */ + +[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] +[004h 0004 4] Table Length : 000000F4 +[008h 0008 1] Revision : 03 +[009h 0009 1] Checksum : B3 +[00Ah 0010 6] Oem ID : "BOCHS " +[010h 0016 8] Oem Table ID : "BXPC " +[018h 0024 4] Oem Revision : 00000001 +[01Ch 0028 4] Asl Compiler ID : "BXPC" +[020h 0032 4] Asl Compiler Revision : 00000001 + +[024h 0036 4] FACS Address : 00000000 +[028h 0040 4] DSDT Address : 00000000 +[02Ch 0044 1] Model : 01 +[02Dh 0045 1] PM Profile : 00 [Unspecified] +[02Eh 0046 2] SCI Interrupt : 0009 +[030h 0048 4] SMI Command Port : 000000B2 +[034h 0052 1] ACPI Enable Value : 02 +[035h 0053 1] ACPI Disable Value : 03 +[036h 0054 1] S4BIOS Command : 00 +[037h 0055 1] P-State Control : 00 +[038h 0056 4] PM1A Event Block Address : 00000600 +[03Ch 0060 4] PM1B Event Block Address : 00000000 +[040h 0064 4] PM1A Control Block Address : 00000604 +[044h 0068 4] PM1B Control Block Address : 00000000 +[048h 0072 4] PM2 Control Block Address : 00000000 +[04Ch 0076 4] PM Timer Block Address : 00000608 +[050h 0080 4] GPE0 Block Address : 00000620 +[054h 0084 4] GPE1 Block Address : 00000000 +[058h 0088 1] PM1 Event Block Length : 04 +[059h 0089 1] PM1 Control Block Length : 02 +[05Ah 0090 1] PM2 Control Block Length : 00 +[05Bh 0091 1] PM Timer Block Length : 04 +[05Ch 0092 1] GPE0 Block Length : 10 +[05Dh 0093 1] GPE1 Block Length : 00 +[05Eh 0094 1] GPE1 Base Offset : 00 +[05Fh 0095 1] _CST Support : 00 +[060h 0096 2] C2 Latency : 0FFF +[062h 0098 2] C3 Latency : 0FFF +[064h 0100 2] CPU Cache Size : 0000 +[066h 0102 2] Cache Flush Stride : 0000 +[068h 0104 1] Duty Cycle Offset : 00 +[069h 0105 1] Duty Cycle Width : 00 +[06Ah 0106 1] RTC Day Alarm Index : 00 +[06Bh 0107 1] RTC Month Alarm Index : 00 +[06Ch 0108 1] RTC Century Index : 32 +[06Dh 0109 2] Boot Flags (decoded below) : 0002 + Legacy Devices Supported (V2) : 0 + 8042 Present on ports 60/64 (V2) : 1 + VGA Not Present (V4) : 0 + MSI Not Supported (V4) : 0 + PCIe ASPM Not Supported (V4) : 0 + CMOS RTC Not Present (V5) : 0 +[06Fh 0111 1] Reserved : 00 +[070h 0112 4] Flags (decoded below) : 000484A5 + WBINVD instruction is operational (V1) : 1 + WBINVD flushes all caches (V1) : 0 + All CPUs support C1 (V1) : 1 + C2 works on MP system (V1) : 0 + Control Method Power Button (V1) : 0 + Control Method Sleep Button (V1) : 1 + RTC wake not in fixed reg space (V1) : 0 + RTC can wake system from S4 (V1) : 1 + 32-bit PM Timer (V1) : 0 + Docking Supported (V1) : 0 + Reset Register Supported (V2) : 1 + Sealed Case (V3) : 0 + Headless - No Video (V3) : 0 + Use native instr after SLP_TYPx (V3) : 0 + PCIEXP_WAK Bits Supported (V4) : 0 + Use Platform Timer (V4) : 1 + RTC_STS valid on S4 wake (V4) : 0 + Remote Power-on capable (V4) : 0 + Use APIC Cluster Model (V4) : 1 + Use APIC Physical Destination Mode (V4) : 0 + Hardware Reduced (V5) : 0 + Low Power S0 Idle (V5) : 0 + +[074h 0116 12] Reset Register : [Generic Address Structure] +[074h 0116 1] Space ID : 01 [SystemIO] +[075h 0117 1] Bit Width : 08 +[076h 0118 1] Bit Offset : 00 +[077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy] +[078h 0120 8] Address : 0000000000000CF9 + +[080h 0128 1] Value to cause reset : 0F +[081h 0129 2] ARM Flags (decoded below) : 0000 + PSCI Compliant : 0 + Must use HVC for PSCI : 0 + +[083h 0131 1] FADT Minor Revision : 00 +[084h 0132 8] FACS Address : 0000000000000000 +[08Ch 0140 8] DSDT Address : 0000000000000000 +[094h 0148 12] PM1A Event Block : [Generic Address Structure] +[094h 0148 1] Space ID : 01 [SystemIO] +[095h 0149 1] Bit Width : 20 +[096h 0150 1] Bit Offset : 00 +[097h 0151 1] Encoded Access Width : 00 [Undefined/Legacy] +[098h 0152 8] Address : 0000000000000600 + +[0A0h 0160 12] PM1B Event Block : [Generic Address Structure] +[0A0h 0160 1] Space ID : 00 [SystemMemory] +[0A1h 0161 1] Bit Width : 00 +[0A2h 0162 1] Bit Offset : 00 +[0A3h 0163 1] Encoded Access Width : 00 [Undefined/Legacy] +[0A4h 0164 8] Address : 0000000000000000 + +[0ACh 0172 12] PM1A Control Block : [Generic Address Structure] +[0ACh 0172 1] Space ID : 01 [SystemIO] +[0ADh 0173 1] Bit Width : 10 +[0AEh 0174 1] Bit Offset : 00 +[0AFh 0175 1] Encoded Access Width : 00 [Undefined/Legacy] +[0B0h 0176 8] Address : 0000000000000604 + +[0B8h 0184 12] PM1B Control Block : [Generic Address Structure] +[0B8h 0184 1] Space ID : 00 [SystemMemory] +[0B9h 0185 1] Bit Width : 00 +[0BAh 0186 1] Bit Offset : 00 +[0BBh 0187 1] Encoded Access Width : 00 [Undefined/Legacy] +[0BCh 0188 8] Address : 0000000000000000 + +[0C4h 0196 12] PM2 Control Block : [Generic Address Structure] +[0C4h 0196 1] Space ID : 00 [SystemMemory] +[0C5h 0197 1] Bit Width : 00 +[0C6h 0198 1] Bit Offset : 00 +[0C7h 0199 1] Encoded Access Width : 00 [Undefined/Legacy] +[0C8h 0200 8] Address : 0000000000000000 + +[0D0h 0208 12] PM Timer Block : [Generic Address Structure] +[0D0h 0208 1] Space ID : 01 [SystemIO] +[0D1h 0209 1] Bit Width : 20 +[0D2h 0210 1] Bit Offset : 00 +[0D3h 0211 1] Encoded Access Width : 00 [Undefined/Legacy] +[0D4h 0212 8] Address : 0000000000000608 + +[0DCh 0220 12] GPE0 Block : [Generic Address Structure] +[0DCh 0220 1] Space ID : 01 [SystemIO] +[0DDh 0221 1] Bit Width : 80 +[0DEh 0222 1] Bit Offset : 00 +[0DFh 0223 1] Encoded Access Width : 00 [Undefined/Legacy] +[0E0h 0224 8] Address : 0000000000000620 + +[0E8h 0232 12] GPE1 Block : [Generic Address Structure] +[0E8h 0232 1] Space ID : 00 [SystemMemory] +[0E9h 0233 1] Bit Width : 00 +[0EAh 0234 1] Bit Offset : 00 +[0EBh 0235 1] Encoded Access Width : 00 [Undefined/Legacy] +[0ECh 0236 8] Address : 0000000000000000 + ... APIC: +/* + * Intel ACPI Component Architecture + * AML/ASL+ Disassembler version 20200925 (64-bit version) + * Copyright (c) 2000 - 2020 Intel Corporation + * + * Disassembly of /tmp/aml-687791, Wed Aug 23 10:36:32 2023 + * + * ACPI Data Table [APIC] + * + * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue + */ + +[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] +[004h 0004 4] Table Length : 00000430 +[008h 0008 1] Revision : 03 +[009h 0009 1] Checksum : C5 +[00Ah 0010 6] Oem ID : "BOCHS " +[010h 0016 8] Oem Table ID : "BXPC " +[018h 0024 4] Oem Revision : 00000001 +[01Ch 0028 4] Asl Compiler ID : "BXPC" +[020h 0032 4] Asl Compiler Revision : 00000001 + +[024h 0036 4] Local Apic Address : FEE00000 +[028h 0040 4] Flags (decoded below) : 00000001 + PC-AT Compatibility : 1 + +[02Ch 0044 1] Subtable Type : 00 [Processor Local APIC] +[02Dh 0045 1] Length : 08 +[02Eh 0046 1] Processor ID : 00 +[02Fh 0047 1] Local Apic ID : 00 +[030h 0048 4] Flags (decoded below) : 00000001 + Processor Enabled : 1 + Runtime Online Capable : 0 + +[034h 0052 1] Subtable Type : 00 [Processor Local APIC] +[035h 0053 1] Length : 08 +[036h 0054 1] Processor ID : 01 +[037h 0055 1] Local Apic ID : 01 +[038h 0056 4] Flags (decoded below) : 00000001 + Processor Enabled : 1 + Runtime Online Capable : 0 [snip] +[3E4h 0996 1] Subtable Type : 00 [Processor Local APIC] +[3E5h 0997 1] Length : 08 +[3E6h 0998 1] Processor ID : 77 +[3E7h 0999 1] Local Apic ID : 9E +[3E8h 1000 4] Flags (decoded below) : 00000000 + Processor Enabled : 0 + Runtime Online Capable : 0 + +[3ECh 1004 1] Subtable Type : 01 [I/O APIC] +[3EDh 1005 1] Length : 0C +[3EEh 1006 1] I/O Apic ID : 00 +[3EFh 1007 1] Reserved : 00 +[3F0h 1008 4] Address : FEC00000 +[3F4h 1012 4] Interrupt : 00000000 + +[3F8h 1016 1] Subtable Type : 02 [Interrupt Source Override] +[3F9h 1017 1] Length : 0A +[3FAh 1018 1] Bus : 00 +[3FBh 1019 1] Source : 00 +[3FCh 1020 4] Interrupt : 00000002 +[400h 1024 2] Flags (decoded below) : 0000 + Polarity : 0 + Trigger Mode : 0 + +[402h 1026 1] Subtable Type : 02 [Interrupt Source Override] +[403h 1027 1] Length : 0A +[404h 1028 1] Bus : 00 +[405h 1029 1] Source : 05 +[406h 1030 4] Interrupt : 00000005 +[40Ah 1034 2] Flags (decoded below) : 000D + Polarity : 1 + Trigger Mode : 3 + +[40Ch 1036 1] Subtable Type : 02 [Interrupt Source Override] +[40Dh 1037 1] Length : 0A +[40Eh 1038 1] Bus : 00 +[40Fh 1039 1] Source : 09 +[410h 1040 4] Interrupt : 00000009 +[414h 1044 2] Flags (decoded below) : 000D + Polarity : 1 + Trigger Mode : 3 + +[416h 1046 1] Subtable Type : 02 [Interrupt Source Override] +[417h 1047 1] Length : 0A +[418h 1048 1] Bus : 00 +[419h 1049 1] Source : 0A +[41Ah 1050 4] Interrupt : 0000000A +[41Eh 1054 2] Flags (decoded below) : 000D + Polarity : 1 + Trigger Mode : 3 + +[420h 1056 1] Subtable Type : 02 [Interrupt Source Override] +[421h 1057 1] Length : 0A +[422h 1058 1] Bus : 00 +[423h 1059 1] Source : 0B +[424h 1060 4] Interrupt : 0000000B +[428h 1064 2] Flags (decoded below) : 000D + Polarity : 1 + Trigger Mode : 3 + +[42Ah 1066 1] Subtable Type : 04 [Local APIC NMI] +[42Bh 1067 1] Length : 06 +[42Ch 1068 1] Processor ID : FF +[42Dh 1069 2] Flags (decoded below) : 0000 + Polarity : 0 + Trigger Mode : 0 +[42Fh 1071 1] Interrupt Input LINT : 01 + ... DSDT: +/* + * Intel ACPI Component Architecture + * AML/ASL+ Disassembler version 20200925 (64-bit version) + * Copyright (c) 2000 - 2020 Intel Corporation + * + * Disassembling to symbolic ASL+ operators + * + * Disassembly of /tmp/aml-8G8791, Wed Aug 23 10:36:32 2023 + * + * Original Table Header: + * Signature "DSDT" + * Length 0x0000489D (18589) + * Revision 0x01 **** 32-bit table (V1), no 64-bit math support + * Checksum 0xDB + * OEM ID "BOCHS " + * OEM Table ID "BXPC " + * OEM Revision 0x00000001 (1) + * Compiler ID "BXPC" + * Compiler Version 0x00000001 (1) + */ +DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPC ", 0x00000001) +{ + Scope (\) + { + OperationRegion (DBG, SystemIO, 0x0402, One) + Field (DBG, ByteAcc, NoLock, Preserve) + { + DBGB, 8 + } + + Method (DBUG, 1, NotSerialized) + { + ToHexString (Arg0, Local0) + ToBuffer (Local0, Local0) + Local1 = (SizeOf (Local0) - One) + Local2 = Zero + While ((Local2 < Local1)) + { + DBGB = DerefOf (Local0 [Local2]) + Local2++ + } + + DBGB = 0x0A + } + } + [snip] + + Processor (C000, 0x00, 0x00000000, 0x00) + { + Method (_STA, 0, Serialized) // _STA: Status + { + Return (CSTA (Zero)) + } + + Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + { + 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ + }) + Method (_OST, 3, Serialized) // _OST: OSPM Status Indication + { + COST (Zero, Arg0, Arg1, Arg2) + } + } + + Processor (C001, 0x01, 0x00000000, 0x00) + { + Method (_STA, 0, Serialized) // _STA: Status + { + Return (CSTA (One)) + } + + Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + { + 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ + }) + Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 + { + CEJ0 (One) + } + + Method (_OST, 3, Serialized) // _OST: OSPM Status Indication + { + COST (One, Arg0, Arg1, Arg2) + } + } [snip] + Processor (C077, 0x77, 0x00000000, 0x00) + { + Method (_STA, 0, Serialized) // _STA: Status + { + Return (CSTA (0x77)) + } + + Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + { + 0x00, 0x08, 0x77, 0x9E, 0x01, 0x00, 0x00, 0x00 // ..w..... + }) + Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 + { + CEJ0 (0x77) + } + + Method (_OST, 3, Serialized) // _OST: OSPM Status Indication + { + COST (0x77, Arg0, Arg1, Arg2) + } + } + } + } + ... Signed-off-by: Zhao Liu Reviewed-by: Michael S. Tsirkin Message-Id: <20231023094635.1588282-5-zhao1.liu@linux.intel.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/data/acpi/q35/APIC.type4-count | Bin 0 -> 1072 bytes tests/data/acpi/q35/DSDT.type4-count | Bin 0 -> 18589 bytes tests/data/acpi/q35/FACP.type4-count | Bin 0 -> 244 bytes tests/qtest/bios-tables-test-allowed-diff.h | 3 --- 4 files changed, 3 deletions(-) diff --git a/tests/data/acpi/q35/APIC.type4-count b/tests/data/acpi/q35/APIC.type4-count index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ab60a6ef065d8ce53ae93d311d3777d2d4afb9f6 100644 GIT binary patch literal 1072 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 knBbPo8!z`($~*~#D8BUr&HBEVTeK|z6$fq?