From: Ani Sinha <ani@anisinha.ca>
To: qemu-devel@nongnu.org
Cc: Ani Sinha <ani@anisinha.ca>, Igor Mammedov <imammedo@redhat.com>,
jusual@redhat.com, "Michael S. Tsirkin" <mst@redhat.com>
Subject: [PATCH v1 0/3] unit tests for change 'do not add hotplug related amls for cold plugged bridges'
Date: Sat, 5 Sep 2020 16:05:17 +0530 [thread overview]
Message-ID: <20200905103520.12626-1-ani@anisinha.ca> (raw)
The following patchset adds the unit test for the change:
f80ba9e599 ("tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag")
Please compare the diff of the DSDT table attached with the commit log with the following diff which
was generated before appplying the above change. The major difference between the diffs are the absence
of the following lines in the diff corresponding to this change:
+ Name (_SUN, 0x03) // _SUN: Slot User Number
+ Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
{
+ PCEJ (BSEL, _SUN)
+ If ((Arg0 & 0x08))
+ {
+ Notify (S18, Arg1)
+ }
+
These are hotplug related amls which were present for slot 3 in the root pci bus before this change was applied.
With the change, these amls have been removed. Hence, slot 3 where the bridge is attached is no longer hotplug
capable.
--Ani
@@ -1,30 +1,30 @@
/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20180105 (64-bit version)
* Copyright (c) 2000 - 2018 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
- * Disassembly of tests/data/acpi/pc/DSDT.bridge, Fri Sep 4 11:08:58 2020
+ * Disassembly of /tmp/aml-IEQEQ0, Fri Sep 4 11:08:58 2020
*
* Original Table Header:
* Signature "DSDT"
- * Length 0x00001A89 (6793)
+ * Length 0x00001346 (4934)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
- * Checksum 0x08
+ * Checksum 0xBF
* OEM ID "BOCHS "
* OEM Table ID "BXPCDSDT"
* OEM Revision 0x00000001 (1)
* Compiler ID "BXPC"
* Compiler Version 0x00000001 (1)
*/
DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001)
{
Scope (\)
{
OperationRegion (DBG, SystemIO, 0x0402, One)
Field (DBG, ByteAcc, NoLock, Preserve)
{
DBGB, 8
}
@@ -859,521 +859,36 @@
}
Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State
{
Return (Zero)
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (Zero)
}
}
Device (S18)
{
Name (_ADR, 0x00030000) // _ADR: Address
- Name (BSEL, One)
- Device (S00)
- {
- Name (_SUN, Zero) // _SUN: Slot User Number
- Name (_ADR, Zero) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S08)
- {
- Name (_SUN, One) // _SUN: Slot User Number
- Name (_ADR, 0x00010000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S10)
- {
- Name (_SUN, 0x02) // _SUN: Slot User Number
- Name (_ADR, 0x00020000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S18)
- {
- Name (_SUN, 0x03) // _SUN: Slot User Number
- Name (_ADR, 0x00030000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S20)
- {
- Name (_SUN, 0x04) // _SUN: Slot User Number
- Name (_ADR, 0x00040000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S28)
- {
- Name (_SUN, 0x05) // _SUN: Slot User Number
- Name (_ADR, 0x00050000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S30)
- {
- Name (_SUN, 0x06) // _SUN: Slot User Number
- Name (_ADR, 0x00060000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S38)
- {
- Name (_SUN, 0x07) // _SUN: Slot User Number
- Name (_ADR, 0x00070000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S40)
- {
- Name (_SUN, 0x08) // _SUN: Slot User Number
- Name (_ADR, 0x00080000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S48)
- {
- Name (_SUN, 0x09) // _SUN: Slot User Number
- Name (_ADR, 0x00090000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S50)
- {
- Name (_SUN, 0x0A) // _SUN: Slot User Number
- Name (_ADR, 0x000A0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S58)
- {
- Name (_SUN, 0x0B) // _SUN: Slot User Number
- Name (_ADR, 0x000B0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S60)
- {
- Name (_SUN, 0x0C) // _SUN: Slot User Number
- Name (_ADR, 0x000C0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S68)
- {
- Name (_SUN, 0x0D) // _SUN: Slot User Number
- Name (_ADR, 0x000D0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S70)
- {
- Name (_SUN, 0x0E) // _SUN: Slot User Number
- Name (_ADR, 0x000E0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S78)
- {
- Name (_SUN, 0x0F) // _SUN: Slot User Number
- Name (_ADR, 0x000F0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S80)
- {
- Name (_SUN, 0x10) // _SUN: Slot User Number
- Name (_ADR, 0x00100000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S88)
- {
- Name (_SUN, 0x11) // _SUN: Slot User Number
- Name (_ADR, 0x00110000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S90)
- {
- Name (_SUN, 0x12) // _SUN: Slot User Number
- Name (_ADR, 0x00120000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (S98)
- {
- Name (_SUN, 0x13) // _SUN: Slot User Number
- Name (_ADR, 0x00130000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SA0)
- {
- Name (_SUN, 0x14) // _SUN: Slot User Number
- Name (_ADR, 0x00140000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SA8)
- {
- Name (_SUN, 0x15) // _SUN: Slot User Number
- Name (_ADR, 0x00150000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SB0)
- {
- Name (_SUN, 0x16) // _SUN: Slot User Number
- Name (_ADR, 0x00160000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SB8)
- {
- Name (_SUN, 0x17) // _SUN: Slot User Number
- Name (_ADR, 0x00170000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SC0)
- {
- Name (_SUN, 0x18) // _SUN: Slot User Number
- Name (_ADR, 0x00180000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SC8)
- {
- Name (_SUN, 0x19) // _SUN: Slot User Number
- Name (_ADR, 0x00190000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SD0)
- {
- Name (_SUN, 0x1A) // _SUN: Slot User Number
- Name (_ADR, 0x001A0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SD8)
- {
- Name (_SUN, 0x1B) // _SUN: Slot User Number
- Name (_ADR, 0x001B0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SE0)
- {
- Name (_SUN, 0x1C) // _SUN: Slot User Number
- Name (_ADR, 0x001C0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SE8)
- {
- Name (_SUN, 0x1D) // _SUN: Slot User Number
- Name (_ADR, 0x001D0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SF0)
- {
- Name (_SUN, 0x1E) // _SUN: Slot User Number
- Name (_ADR, 0x001E0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Device (SF8)
- {
- Name (_SUN, 0x1F) // _SUN: Slot User Number
- Name (_ADR, 0x001F0000) // _ADR: Address
- Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
- {
- PCEJ (BSEL, _SUN)
- }
- }
-
- Method (DVNT, 2, NotSerialized)
- {
- If ((Arg0 & One))
- {
- Notify (S00, Arg1)
- }
-
- If ((Arg0 & 0x02))
- {
- Notify (S08, Arg1)
- }
-
- If ((Arg0 & 0x04))
- {
- Notify (S10, Arg1)
- }
-
- If ((Arg0 & 0x08))
- {
- Notify (S18, Arg1)
- }
-
- If ((Arg0 & 0x10))
- {
- Notify (S20, Arg1)
- }
-
- If ((Arg0 & 0x20))
- {
- Notify (S28, Arg1)
- }
-
- If ((Arg0 & 0x40))
- {
- Notify (S30, Arg1)
- }
-
- If ((Arg0 & 0x80))
- {
- Notify (S38, Arg1)
- }
-
- If ((Arg0 & 0x0100))
- {
- Notify (S40, Arg1)
- }
-
- If ((Arg0 & 0x0200))
- {
- Notify (S48, Arg1)
- }
-
- If ((Arg0 & 0x0400))
- {
- Notify (S50, Arg1)
- }
-
- If ((Arg0 & 0x0800))
- {
- Notify (S58, Arg1)
- }
-
- If ((Arg0 & 0x1000))
- {
- Notify (S60, Arg1)
- }
-
- If ((Arg0 & 0x2000))
- {
- Notify (S68, Arg1)
- }
-
- If ((Arg0 & 0x4000))
- {
- Notify (S70, Arg1)
- }
-
- If ((Arg0 & 0x8000))
- {
- Notify (S78, Arg1)
- }
-
- If ((Arg0 & 0x00010000))
- {
- Notify (S80, Arg1)
- }
-
- If ((Arg0 & 0x00020000))
- {
- Notify (S88, Arg1)
- }
-
- If ((Arg0 & 0x00040000))
- {
- Notify (S90, Arg1)
- }
-
- If ((Arg0 & 0x00080000))
- {
- Notify (S98, Arg1)
- }
-
- If ((Arg0 & 0x00100000))
- {
- Notify (SA0, Arg1)
- }
-
- If ((Arg0 & 0x00200000))
- {
- Notify (SA8, Arg1)
- }
-
- If ((Arg0 & 0x00400000))
- {
- Notify (SB0, Arg1)
- }
-
- If ((Arg0 & 0x00800000))
- {
- Notify (SB8, Arg1)
- }
-
- If ((Arg0 & 0x01000000))
- {
- Notify (SC0, Arg1)
- }
-
- If ((Arg0 & 0x02000000))
- {
- Notify (SC8, Arg1)
- }
-
- If ((Arg0 & 0x04000000))
- {
- Notify (SD0, Arg1)
- }
-
- If ((Arg0 & 0x08000000))
- {
- Notify (SD8, Arg1)
- }
-
- If ((Arg0 & 0x10000000))
- {
- Notify (SE0, Arg1)
- }
-
- If ((Arg0 & 0x20000000))
- {
- Notify (SE8, Arg1)
- }
-
- If ((Arg0 & 0x40000000))
- {
- Notify (SF0, Arg1)
- }
-
- If ((Arg0 & 0x80000000))
- {
- Notify (SF8, Arg1)
- }
- }
-
- Method (PCNT, 0, NotSerialized)
+ Name (_SUN, 0x03) // _SUN: Slot User Number
+ Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
{
- BNUM = One
- DVNT (PCIU, One)
- DVNT (PCID, 0x03)
+ PCEJ (BSEL, _SUN)
}
}
Device (S20)
{
Name (_SUN, 0x04) // _SUN: Slot User Number
Name (_ADR, 0x00040000) // _ADR: Address
Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
{
PCEJ (BSEL, _SUN)
}
}
Device (S28)
{
Name (_SUN, 0x05) // _SUN: Slot User Number
@@ -1633,32 +1148,37 @@
PCEJ (BSEL, _SUN)
}
}
Device (SF8)
{
Name (_SUN, 0x1F) // _SUN: Slot User Number
Name (_ADR, 0x001F0000) // _ADR: Address
Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
{
PCEJ (BSEL, _SUN)
}
}
Method (DVNT, 2, NotSerialized)
{
+ If ((Arg0 & 0x08))
+ {
+ Notify (S18, Arg1)
+ }
+
If ((Arg0 & 0x10))
{
Notify (S20, Arg1)
}
If ((Arg0 & 0x20))
{
Notify (S28, Arg1)
}
If ((Arg0 & 0x40))
{
Notify (S30, Arg1)
}
If ((Arg0 & 0x80))
@@ -1779,22 +1299,21 @@
If ((Arg0 & 0x40000000))
{
Notify (SF0, Arg1)
}
If ((Arg0 & 0x80000000))
{
Notify (SF8, Arg1)
}
}
Method (PCNT, 0, NotSerialized)
{
BNUM = Zero
DVNT (PCIU, One)
DVNT (PCID, 0x03)
- ^S18.PCNT ()
}
}
}
}
***
Ani Sinha (3):
tests/acpi: list added acpi table binary file for pci bridge hotplug
test
tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support'
bridge flag
tests/acpi: add newly added acpi DSDT table blob for pci bridge
hotplug flag
tests/data/acpi/pc/DSDT.hpbridge | Bin 0 -> 4895 bytes
tests/qtest/bios-tables-test.c | 15 +++++++++++++++
2 files changed, 15 insertions(+)
create mode 100644 tests/data/acpi/pc/DSDT.hpbridge
--
2.17.1
next reply other threads:[~2020-09-05 10:36 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-05 10:35 Ani Sinha [this message]
2020-09-05 10:35 ` [PATCH v1 1/3] tests/acpi: list added acpi table binary file for pci bridge hotplug test Ani Sinha
2020-09-05 10:35 ` [PATCH v1 2/3] tests/acpi: unit test for 'acpi-pci-hotplug-with-bridge-support' bridge flag Ani Sinha
2020-09-10 17:04 ` Ani Sinha
2020-09-11 12:45 ` Igor Mammedov
2020-09-11 13:29 ` Ani Sinha
2020-09-11 14:59 ` Michael S. Tsirkin
2020-09-11 15:06 ` Ani Sinha
2020-09-05 10:35 ` [PATCH v1 3/3] tests/acpi: add newly added acpi DSDT table blob for pci bridge hotplug flag Ani Sinha
2020-09-05 12:26 ` [PATCH v1 0/3] unit tests for change 'do not add hotplug related amls for cold plugged bridges' Ani Sinha
2020-09-11 16:08 ` Michael S. Tsirkin
2020-09-11 16:11 ` Ani Sinha
2020-09-11 16:21 ` Ani Sinha
2020-09-11 18:10 ` Ani Sinha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200905103520.12626-1-ani@anisinha.ca \
--to=ani@anisinha.ca \
--cc=imammedo@redhat.com \
--cc=jusual@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).