From f03359a85b4c29858c95d043961288c5e6dc662b Mon Sep 17 00:00:00 2001 From: Zhao Liu Date: Mon, 23 Oct 2023 17:46:29 +0800 Subject: [PATCH] tests: bios-tables-test: Update ACPI table binaries for smbios core count2 test Change the core count2 from 275 to 260. Following the guidelines in tests/qtest/bios-tables-test.c, this is step 5 and 6. Changes in the tables: APIC: /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20200925 (64-bit version) * Copyright (c) 2000 - 2020 Intel Corporation * - * Disassembly of tests/data/acpi/q35/APIC.core-count2, Wed Aug 23 16:29:51 2023 + * Disassembly of /tmp/aml-KQDX91, Wed Aug 23 16:29:51 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 : 000009AE +[004h 0004 4] Table Length : 00000CA6 [008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : CE +[009h 0009 1] Checksum : FA [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 @@ -1051,1256 +1051,1136 @@ [42Ch 1068 1] Subtable Type : 00 [Processor Local APIC] [42Dh 1069 1] Length : 08 [42Eh 1070 1] Processor ID : 80 [42Fh 1071 1] Local Apic ID : 80 [430h 1072 4] Flags (decoded below) : 00000001 Processor Enabled : 1 Runtime Online Capable : 0 [434h 1076 1] Subtable Type : 00 [Processor Local APIC] [435h 1077 1] Length : 08 [436h 1078 1] Processor ID : 81 [437h 1079 1] Local Apic ID : 81 [438h 1080 4] Flags (decoded below) : 00000001 Processor Enabled : 1 Runtime Online Capable : 0 -[43Ch 1084 1] Subtable Type : 00 [Processor Local APIC] -[43Dh 1085 1] Length : 08 -[43Eh 1086 1] Processor ID : 82 -[43Fh 1087 1] Local Apic ID : 82 -[440h 1088 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 - -[444h 1092 1] Subtable Type : 00 [Processor Local APIC] -[445h 1093 1] Length : 08 -[446h 1094 1] Processor ID : 83 -[447h 1095 1] Local Apic ID : 83 -[448h 1096 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 [snip] - -[964h 2404 1] Subtable Type : 01 [I/O APIC] -[965h 2405 1] Length : 0C -[966h 2406 1] I/O Apic ID : 00 -[967h 2407 1] Reserved : 00 -[968h 2408 4] Address : FEC00000 -[96Ch 2412 4] Interrupt : 00000000 - -[970h 2416 1] Subtable Type : 02 [Interrupt Source Override] -[971h 2417 1] Length : 0A -[972h 2418 1] Bus : 00 -[973h 2419 1] Source : 00 -[974h 2420 4] Interrupt : 00000002 -[978h 2424 2] Flags (decoded below) : 0000 +[43Ch 1084 1] Subtable Type : 09 [Processor Local x2APIC] +[43Dh 1085 1] Length : 10 +[43Eh 1086 2] Reserved : 0000 +[440h 1088 4] Processor x2Apic ID : 00000100 +[444h 1092 4] Flags (decoded below) : 00000001 + Processor Enabled : 1 +[448h 1096 4] Processor UID : 00000082 + +[44Ch 1100 1] Subtable Type : 09 [Processor Local x2APIC] +[44Dh 1101 1] Length : 10 +[44Eh 1102 2] Reserved : 0000 +[450h 1104 4] Processor x2Apic ID : 00000101 +[454h 1108 4] Flags (decoded below) : 00000001 + Processor Enabled : 1 +[458h 1112 4] Processor UID : 00000083 + [snip] + +[C68h 3176 1] Subtable Type : 02 [Interrupt Source Override] +[C69h 3177 1] Length : 0A +[C6Ah 3178 1] Bus : 00 +[C6Bh 3179 1] Source : 00 +[C6Ch 3180 4] Interrupt : 00000002 +[C70h 3184 2] Flags (decoded below) : 0000 Polarity : 0 Trigger Mode : 0 -[97Ah 2426 1] Subtable Type : 02 [Interrupt Source Override] -[97Bh 2427 1] Length : 0A -[97Ch 2428 1] Bus : 00 -[97Dh 2429 1] Source : 05 -[97Eh 2430 4] Interrupt : 00000005 -[982h 2434 2] Flags (decoded below) : 000D +[C72h 3186 1] Subtable Type : 02 [Interrupt Source Override] +[C73h 3187 1] Length : 0A +[C74h 3188 1] Bus : 00 +[C75h 3189 1] Source : 05 +[C76h 3190 4] Interrupt : 00000005 +[C7Ah 3194 2] Flags (decoded below) : 000D Polarity : 1 Trigger Mode : 3 -[984h 2436 1] Subtable Type : 02 [Interrupt Source Override] -[985h 2437 1] Length : 0A -[986h 2438 1] Bus : 00 -[987h 2439 1] Source : 09 -[988h 2440 4] Interrupt : 00000009 -[98Ch 2444 2] Flags (decoded below) : 000D +[C7Ch 3196 1] Subtable Type : 02 [Interrupt Source Override] +[C7Dh 3197 1] Length : 0A +[C7Eh 3198 1] Bus : 00 +[C7Fh 3199 1] Source : 09 +[C80h 3200 4] Interrupt : 00000009 +[C84h 3204 2] Flags (decoded below) : 000D Polarity : 1 Trigger Mode : 3 -[98Eh 2446 1] Subtable Type : 02 [Interrupt Source Override] -[98Fh 2447 1] Length : 0A -[990h 2448 1] Bus : 00 -[991h 2449 1] Source : 0A -[992h 2450 4] Interrupt : 0000000A -[996h 2454 2] Flags (decoded below) : 000D +[C86h 3206 1] Subtable Type : 02 [Interrupt Source Override] +[C87h 3207 1] Length : 0A +[C88h 3208 1] Bus : 00 +[C89h 3209 1] Source : 0A +[C8Ah 3210 4] Interrupt : 0000000A +[C8Eh 3214 2] Flags (decoded below) : 000D Polarity : 1 Trigger Mode : 3 -[998h 2456 1] Subtable Type : 02 [Interrupt Source Override] -[999h 2457 1] Length : 0A -[99Ah 2458 1] Bus : 00 -[99Bh 2459 1] Source : 0B -[99Ch 2460 4] Interrupt : 0000000B -[9A0h 2464 2] Flags (decoded below) : 000D +[C90h 3216 1] Subtable Type : 02 [Interrupt Source Override] +[C91h 3217 1] Length : 0A +[C92h 3218 1] Bus : 00 +[C93h 3219 1] Source : 0B +[C94h 3220 4] Interrupt : 0000000B +[C98h 3224 2] Flags (decoded below) : 000D Polarity : 1 Trigger Mode : 3 -[9A2h 2466 1] Subtable Type : 0A [Local x2APIC NMI] -[9A3h 2467 1] Length : 0C -[9A4h 2468 2] Flags (decoded below) : 0000 +[C9Ah 3226 1] Subtable Type : 0A [Local x2APIC NMI] +[C9Bh 3227 1] Length : 0C +[C9Ch 3228 2] Flags (decoded below) : 0000 Polarity : 0 Trigger Mode : 0 -[9A6h 2470 4] Processor UID : FFFFFFFF -[9AAh 2474 1] Interrupt Input LINT : 01 -[9ABh 2475 3] Reserved : 000000 +[C9Eh 3230 4] Processor UID : FFFFFFFF +[CA2h 3234 1] Interrupt Input LINT : 01 +[CA3h 3235 3] Reserved : 000000 ... 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 tests/data/acpi/q35/DSDT.core-count2, Wed Aug 23 16:29:51 2023 + * Disassembly of /tmp/aml-6DDX91, Wed Aug 23 16:29:51 2023 * * Original Table Header: * Signature "DSDT" - * Length 0x00007EEF (32495) + * Length 0x000083EA (33770) * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x52 + * Checksum 0x01 * 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 } @@ -4196,107 +4196,32 @@ } If ((Arg0 == 0x0101)) { Notify (C101, Arg1) } If ((Arg0 == 0x0102)) { Notify (C102, Arg1) } If ((Arg0 == 0x0103)) { Notify (C103, Arg1) } - - If ((Arg0 == 0x0104)) - { - Notify (C104, Arg1) - } - - If ((Arg0 == 0x0105)) - { - Notify (C105, Arg1) - } - - If ((Arg0 == 0x0106)) - { - Notify (C106, Arg1) - } - [snip] - If ((Arg0 == 0x0112)) - { - Notify (C112, Arg1) - } } Method (CSTA, 1, Serialized) { Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) \_SB.PCI0.PRES.CSEL = Arg0 Local0 = Zero If ((\_SB.PCI0.PRES.CPEN == One)) { Local0 = 0x0F } Release (\_SB.PCI0.PRES.CPLK) Return (Local0) } @@ -4306,33 +4231,33 @@ \_SB.PCI0.PRES.CSEL = Arg0 \_SB.PCI0.PRES.CEJ0 = One Release (\_SB.PCI0.PRES.CPLK) } Method (CSCN, 0, Serialized) { Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) Name (CNEW, Package (0xFF) {}) Local3 = Zero Local4 = One While ((Local4 == One)) { Local4 = Zero Local0 = One Local1 = Zero - While (((Local0 == One) && (Local3 < 0x0113))) + While (((Local0 == One) && (Local3 < 0x0104))) { Local0 = Zero \_SB.PCI0.PRES.CSEL = Local3 \_SB.PCI0.PRES.CCMD = Zero If ((\_SB.PCI0.PRES.CDAT < Local3)) { Break } If ((Local1 == 0xFF)) { Local4 = One Break } Local3 = \_SB.PCI0.PRES.CDAT @@ -7220,3281 +7145,3281 @@ Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry { 0x00, 0x08, 0x81, 0x81, 0x01, 0x00, 0x00, 0x00 // ........ }) Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 { CEJ0 (0x81) } Method (_OST, 3, Serialized) // _OST: OSPM Status Indication { COST (0x81, Arg0, Arg1, Arg2) } } - Processor (C082, 0x82, 0x00000000, 0x00) + Device (C082) { + Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID + Name (_UID, 0x82) // _UID: Unique ID Method (_STA, 0, Serialized) // _STA: Status { Return (CSTA (0x82)) } - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + Name (_MAT, Buffer (0x10) // _MAT: Multiple APIC Table Entry { - 0x00, 0x08, 0x82, 0x82, 0x01, 0x00, 0x00, 0x00 // ........ + /* 0000 */ 0x09, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // ........ + /* 0008 */ 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00 // ........ }) Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 { CEJ0 (0x82) } Method (_OST, 3, Serialized) // _OST: OSPM Status Indication { COST (0x82, Arg0, Arg1, Arg2) } } - Processor (C083, 0x83, 0x00000000, 0x00) + Device (C083) { + Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID + Name (_UID, 0x83) // _UID: Unique ID Method (_STA, 0, Serialized) // _STA: Status { Return (CSTA (0x83)) } - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + Name (_MAT, Buffer (0x10) // _MAT: Multiple APIC Table Entry { - 0x00, 0x08, 0x83, 0x83, 0x01, 0x00, 0x00, 0x00 // ........ + /* 0000 */ 0x09, 0x10, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, // ........ + /* 0008 */ 0x01, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00 // ........ }) Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 { CEJ0 (0x83) } Method (_OST, 3, Serialized) // _OST: OSPM Status Indication { COST (0x83, Arg0, Arg1, Arg2) } } - Processor (C084, 0x84, 0x00000000, 0x00) + Device (C084) { + Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID + Name (_UID, 0x84) // _UID: Unique ID Method (_STA, 0, Serialized) // _STA: Status { Return (CSTA (0x84)) } - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + Name (_MAT, Buffer (0x10) // _MAT: Multiple APIC Table Entry { - 0x00, 0x08, 0x84, 0x84, 0x01, 0x00, 0x00, 0x00 // ........ + /* 0000 */ 0x09, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, // ........ + /* 0008 */ 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00 // ........ }) Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 { CEJ0 (0x84) } Method (_OST, 3, Serialized) // _OST: OSPM Status Indication { COST (0x84, Arg0, Arg1, Arg2) } } [snip] - Processor (C0FE, 0xFE, 0x00000000, 0x00) + Device (C0FE) { + Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID + Name (_UID, 0xFE) // _UID: Unique ID Method (_STA, 0, Serialized) // _STA: Status { Return (CSTA (0xFE)) } - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + Name (_MAT, Buffer (0x10) // _MAT: Multiple APIC Table Entry { - 0x00, 0x08, 0xFE, 0xFE, 0x01, 0x00, 0x00, 0x00 // ........ + /* 0000 */ 0x09, 0x10, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, // ....|... + /* 0008 */ 0x01, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00 // ........ }) Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 { CEJ0 (0xFE) } Method (_OST, 3, Serialized) // _OST: OSPM Status Indication { COST (0xFE, Arg0, Arg1, Arg2) } } ... Signed-off-by: Zhao Liu Reviewed-by: Michael S. Tsirkin Message-Id: <20231023094635.1588282-11-zhao1.liu@linux.intel.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin --- tests/data/acpi/q35/APIC.core-count2 | Bin 2478 -> 3238 bytes tests/data/acpi/q35/DSDT.core-count2 | Bin 32495 -> 33770 bytes tests/qtest/bios-tables-test-allowed-diff.h | 2 -- 3 files changed, 2 deletions(-) diff --git a/tests/data/acpi/q35/APIC.core-count2 b/tests/data/acpi/q35/APIC.core-count2 index f5da2eb1e8a93d961b39f665f2e8b02acf1aeb3c..4f2428443430b7da8321e9edd816219deb7929a2 100644 GIT binary patch literal 3238 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 N3=IGO|Njp%4FLEy8xQ~h diff --git a/tests/data/acpi/q35/DSDT.core-count2 b/tests/data/acpi/q35/DSDT.core-count2 index b47891ec10be131a59bf404242241c054ac902f8..3a0cb8c581c8cc630a2ec21712b7f8b75fcad1c8 100644 GIT binary patch delta 7005 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