Age | Commit message (Collapse) | Author | Files | Lines |
|
Saving icount as a parameters of the snapshot allows navigation between
them in the execution replay scenario.
This information can be used for finding a specific snapshot for proceeding
the recorded execution to the specific moment of the time.
E.g., 'reverse step' action (introduced in one of the following patches)
needs to load the nearest snapshot which is prior to the current moment
of time.
This patch also updates snapshot test which verifies qemu monitor output.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Acked-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Kevin Wolf <kwolf@redhat.com>
--
v4 changes:
- squashed format update with test output update
v7 changes:
- introduced the spaces between the fields in snapshot info output
- updated the test to match new field widths
Message-Id: <160174518865.12451.14327573383978752463.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This patch introduces the icount field for saving within the snapshot.
It is required for navigation between the snapshots in record/replay mode.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Acked-by: Kevin Wolf <kwolf@redhat.com>
--
v7 changes:
- also fix the test which checks qcow2 snapshot extra data
Message-Id: <160174518284.12451.2301137308458777398.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
SLIRP uses Meson so it could become a subproject in the future,
but our choice of configure options is not yet supported in Meson
(https://github.com/mesonbuild/meson/pull/7740).
For now, build the library via the main meson.build just like for
capstone.
This improves the current state of affairs in that we will re-link
the qemu executables against a changed libslirp.a, which we wouldn't
do before-hand.
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
refactoring of cpus.c continues with cpu timer state extraction.
cpu-timers: responsible for the softmmu cpu timers state,
including cpu clocks and ticks.
icount: counts the TCG instructions executed. As such it is specific to
the TCG accelerator. Therefore, it is built only under CONFIG_TCG.
One complication is due to qtest, which uses an icount field to warp time
as part of qtest (qtest_clock_warp).
In order to solve this problem, provide a separate counter for qtest.
This requires fixing assumptions scattered in the code that
qtest_enabled() implies icount_enabled(), checking each specific case.
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
[remove redundant initialization with qemu_spice_init]
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
[fix lingering calls to icount_get]
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
For some reason diffutils is not included in the Fedora containers anymore,
causing the build to fail.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201003085054.332992-2-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Use pattern rules to clarify which targets are going to match the
rule and to provide clearer error messages.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Prepare for moving the tests to meson. For now they only have
enabled/disabled as the possible values when meson is invoked,
but "auto" will be a possibility later, when configure will only
parse the command line options.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200924152717.287415-32-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
This is useful for specifying 'generic' as supported (which includes
only writable image formats), but still excluding some incompatible
writable formats.
It also removes more lines than it adds.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200924152717.287415-31-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
Add a function to list the NBD exports offered by an NBD server.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200924152717.287415-30-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
We have three almost identical functions that call an external process
and return its output and return code. Refactor them into small wrappers
around a common function.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200924152717.287415-29-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
Clients may want to know when an export has finally disappeard
(block-export-del returns earlier than that in the general case), so add
a QAPI event for it.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200924152717.287415-22-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
We'll need an id to identify block exports in monitor commands. This
adds one.
Note that this is different from the 'name' option in the NBD server,
which is the externally visible export name. While block export ids need
to be unique in the whole process, export names must be unique only for
the same server. Different export types or (potentially in the future)
multiple NBD servers can have the same export name externally, but still
need different block export ids internally.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20200924152717.287415-19-kwolf@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
macOS is shipped with a very old version of the bash (3.2), which
is currently not suitable for running the iotests anymore (e.g.
it is missing support for "readarray" which is used in the file
tests/qemu-iotests/common.filter). Add a check to skip the iotests
in this case - if someone still wants to run the iotests on macOS,
they can install a newer version from homebrew, for example.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200918153514.330705-1-thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
All our supported build platforms have Python 3.6 or newer nowadays, and
there are some useful features in Python 3.6 which are not available in
3.5 yet (e.g. the type hint annotations which will allow us to statically
type the QAPI parser), so let's bump the minimum Python version to 3.6 now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200923162908.95372-1-thuth@redhat.com>
Message-Id: <20200925154027.12672-16-alex.bennee@linaro.org>
|
|
We do not support Debian 9 in QEMU anymore, and the Debian 9 containers
are now no longer used in the gitlab-CI. Time to remove them.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200921174320.46062-6-thuth@redhat.com>
Message-Id: <20200925154027.12672-14-alex.bennee@linaro.org>
|
|
We do not support Debian 9 anymore, thus update the Tricore container
to Debian 10 now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200921174320.46062-4-thuth@redhat.com>
Message-Id: <20200925154027.12672-12-alex.bennee@linaro.org>
|
|
According to our support policy, we do not support Debian 9 in QEMU
anymore, and we only support building the Windows binaries with a
very recent version of the MinGW toolchain. So we should not test
the MinGW cross-compilation with Debian 9 anymore, but switch to
something newer like Fedora. To do this, we need a separate Fedora
container for each build that provides the QEMU_CONFIGURE_OPTS
environment variable.
Unfortunately, the MinGW 64-bit compiler seems to be a little bit
slow, so we also have to disable some features like "capstone" in the
build here to make sure that the CI pipelines still finish within a
reasonable amount of time.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200921174320.46062-2-thuth@redhat.com>
Message-Id: <20200925154027.12672-10-alex.bennee@linaro.org>
|
|
'remotes/kraxel/tags/microvm-20200930-pull-request' into staging
microvm: add pcie support.
# gpg: Signature made Wed 30 Sep 2020 18:48:41 BST
# gpg: using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full]
# gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full]
# gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full]
# Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138
* remotes/kraxel/tags/microvm-20200930-pull-request:
tests/acpi: update expected data files
acpi/gpex: no reason to use a method for _CRS
tests/acpi: add microvm pcie test
tests/acpi: factor out common microvm test setup
tests/acpi: add empty tests/data/acpi/microvm/DSDT.pcie file
tests/acpi: allow updates for expected data files
microvm/pcie: add 64bit mmio window
microvm: add pcie support
microvm: add irq table
arm: use acpi_dsdt_add_gpex
acpi: add acpi_dsdt_add_gpex
move MemMapEntry
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
|
We don't need to use kernel-irqchip=off for irq0 override if IRQ
routing is supported by the host, which is the case since 2009
(IRQ routing was added to KVM in Linux v2.6.30).
This is a more straightforward fix for Launchpad bug #1896263, as
it doesn't require increasing the complexity of the MSR code.
kernel-irqchip=off is for debugging only and there's no need to
increase the complexity of the code just to work around an issue
that was already fixed in the kernel.
Fixes: https://bugs.launchpad.net/bugs/1896263
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20200922194732.2100510-1-ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Commit 660f79309303d696531ffb394719dfab3e0c42c0 was a bit overzealous
with respect to tests/tcg, which needed quiet-command and $(BUILD_DIR).
Reinstate quiet-command, and replace $(BUILD_DIR) with just the
current directory.
Reported-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
As an additional advantage, the logic is now unified between
POSIX and Win32 systems.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Make things consistent with how softmmu/vl.c uses os_find_datadir.
Initializing the path to the executables will also be needed for
get_relocatable_path to work.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Just return the directory without requiring the caller to free it.
This also removes a bogus check for NULL in os_find_datadir and
module_load_one; g_strdup of a static variable cannot return NULL.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This does not have any effect on Meson's behavior itself, since "meson test"
always rebuilds everything (that is one reason why we are not using it...).
However, mtest2make can use this information to do a selective rebuild
for the requested suite.
Cc: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Build all executables by default except for the known-broken ones.
This also allows running qemu-iotests without manually building
socket_scm_helper.
Reported-by: Max Reitz <mreitz@redhat.com>
Tested-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Fix high-parallelism builds by forcing all generated headers
to be created before tests are compiled.
Reported-by: Claudio Fontana <cfontana@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
|
acpi: unit test
This just adds a unit test for previously merged functionality.
A bit unusual, but we have a contribitor under a deadline,
let's be nice and merge the unit test right away - does no harm.
Hopefully this won't be a beginning of a trend ...
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Wed 30 Sep 2020 09:13:13 BST
# gpg: using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
# gpg: issuer "mst@redhat.com"
# gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full]
# gpg: aka "Michael S. Tsirkin <mst@redhat.com>" [full]
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17 0970 C350 3912 AFBE 8E67
# Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA 8A0D 281F 0DB8 D28D 5469
* remotes/mst/tags/for_upstream:
tests/acpi: add DSDT.hpbrroot DSDT table blob to test global i440fx hotplug
tests/acpi: unit test exercising global pci hotplug off for i440fx
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200928104256.9241-13-kraxel@redhat.com
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200928104256.9241-11-kraxel@redhat.com
|
|
... into new test_acpi_microvm_prepare helper
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200928104256.9241-10-kraxel@redhat.com
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200928104256.9241-9-kraxel@redhat.com
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20200928104256.9241-8-kraxel@redhat.com
|
|
This change adds a new DSDT golden master table blob to test disabling
hotplug on both pci root bus and pci bridges. Also reverts the change
in file bios-tables-test-allowed-diff.h to make sure its now empty so that
future modifications to acpi tables can be caught.
The following is the disassembled diff between DSDT.hpbridge and DSDT.hpbrroot:
@@ -5,13 +5,13 @@
*
* Disassembling to symbolic ASL+ operators
*
- * Disassembly of tests/data/acpi/pc/DSDT.hpbridge, Tue Sep 29 17:51:04 2020
+ * Disassembly of tests/data/acpi/pc/DSDT.hpbrroot, Tue Sep 29 17:50:00 2020
*
* Original Table Header:
* Signature "DSDT"
- * Length 0x0000139D (5021)
+ * Length 0x00000C07 (3079)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
- * Checksum 0x05
+ * Checksum 0xAD
* OEM ID "BOCHS "
* OEM Table ID "BXPCDSDT"
* OEM Revision 0x00000001 (1)
@@ -247,38 +247,6 @@
}
}
- Scope (_SB.PCI0)
- {
- OperationRegion (PCST, SystemIO, 0xAE00, 0x08)
- Field (PCST, DWordAcc, NoLock, WriteAsZeros)
- {
- PCIU, 32,
- PCID, 32
- }
-
- OperationRegion (SEJ, SystemIO, 0xAE08, 0x04)
- Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
- {
- B0EJ, 32
- }
-
- OperationRegion (BNMR, SystemIO, 0xAE10, 0x04)
- Field (BNMR, DWordAcc, NoLock, WriteAsZeros)
- {
- BNUM, 32
- }
-
- Mutex (BLCK, 0x00)
- Method (PCEJ, 2, NotSerialized)
- {
- Acquire (BLCK, 0xFFFF)
- BNUM = Arg0
- B0EJ = (One << Arg1)
- Release (BLCK)
- Return (Zero)
- }
- }
-
Scope (_SB)
{
Scope (PCI0)
@@ -737,12 +705,6 @@
Scope (_GPE)
{
Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID
- Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE
- {
- Acquire (\_SB.PCI0.BLCK, 0xFFFF)
- \_SB.PCI0.PCNT ()
- Release (\_SB.PCI0.BLCK)
- }
}
Scope (\_SB.PCI0)
@@ -813,22 +775,6 @@
)
})
}
-
- Device (PHPR)
- {
- Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID
- Name (_UID, "PCI Hotplug resources") // _UID: Unique ID
- Name (_STA, 0x0B) // _STA: Status
- Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
- {
- IO (Decode16,
- 0xAE00, // Range Minimum
- 0xAE00, // Range Maximum
- 0x01, // Alignment
- 0x14, // Length
- )
- })
- }
}
Scope (\)
@@ -878,7 +824,6 @@
{
Scope (PCI0)
{
- Name (BSEL, Zero)
Device (S00)
{
Name (_ADR, Zero) // _ADR: Address
@@ -907,436 +852,6 @@
{
Name (_ADR, 0x00030000) // _ADR: Address
}
-
- 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 & 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)
- {
- BNUM = Zero
- DVNT (PCIU, One)
- DVNT (PCID, 0x03)
- }
}
}
}
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200929123011.31836-3-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
This change adds a unit test to exercise the case when hotplug is disabled
both for pci root bus and the pci bridges by passing the following two
switches to qemu:
-global PIIX4_PM.acpi-root-pci-hotplug=off
-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off
bios-tables-test-allowed-diff.h documents the fact that a new DSDT acpi gold
master binary blob we need to be added to test this. We will do the actual
addition in the next patch in the series.
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200929123011.31836-2-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
We don't need texinfo to build the docs any more, so we can
drop that dependency from our docker and other CI configs.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-22-peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
We no longer use the generated texinfo format documentation,
so delete the code that generates it, and the test case for
the generation.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-17-peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
Add a test of the rST output from the QAPI doc-comment generator,
similar to what we currently have that tests the Texinfo output.
This is a bit more awkward with Sphinx, because the generated output
is not 100% under our control the way the QAPI-to-Texinfo generator
was. We can't observe the data we generate, only the Sphinx
output. Two issues.
One, the output can vary with the Sphinx version. In practice Sphinx's
plaintext output generation has been identical between at least Sphinx
1.6 and 3.0, so we use that. (The HTML output has had changes across
versions). We use an exact-match comparison check, with the
understanding that perhaps changes in a future Sphinx version might
require us to implement something more clever to cope with variation
in the output.
Two, the test can only protect us from changes in the data we generate
that are visible in plain text.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-16-peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Commit message improved]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
doc-good.json currently uses the old *strong* and _emphasis_ markup.
As part of the conversion to rST this needs to switch to **strong**
and *emphasis*, because rST uses underscores as part of its markup
of hyperlinks and will otherwise warn about the syntax error.
In commit a660eed482063b we fixed up the in-tree uses of the
old markup:
1) _this_ was replaced with *this*
2) the only in-tree use of *this* was left alone (turning
a 'strong' into an 'emphasis')
(and so currently in-tree nothing is using either new-style
**strong** or old-style _emphasis_).
Update doc-good.json in a similar way:
1) replace _this_ with *this*
2) remove the usage of old-style *this*
(This slightly reduces the coverage for the old Texinfo generator,
which is about to go away, but is fine for the new rST generator
because that does not need to handle strong/emphasis itself because
it is simply passing the entire text as raw rST to Sphinx.)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-13-peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
Make the handling of indentation in doc comments more sophisticated,
so that when we see a section like:
Notes: some text
some more text
indented line 3
we save it for the doc-comment processing code as:
some text
some more text
indented line 3
and when we see a section with the heading on its own line:
Notes:
some text
some more text
indented text
we also accept that and save it in the same form.
If we detect that the comment document text is not indented as much
as we expect it to be, we throw a parse error. (We don't complain
about over-indented sections, because for rST this can be legitimate
markup.)
The golden reference for the doc comment text is updated to remove
the two 'wrong' indents; these now form a test case that we correctly
stripped leading whitespace from an indented multi-line argument
definition.
We update the documentation in docs/devel/qapi-code-gen.txt to
describe the new indentation rules.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-6-peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[Whitespace between sentences tweaked]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
As we accumulate lines from doc comments when parsing the JSON, the
QAPIDoc class generally strips leading and trailing whitespace using
line.strip() when it calls _append_freeform(). This is fine for
Texinfo, but for rST leading whitespace is significant. We'd like to
move to having the text in doc comments be rST format rather than a
custom syntax, so move the removal of leading whitespace from the
QAPIDoc class to the texinfo-specific processing code in
texi_format() in qapi/doc.py.
(Trailing whitespace will always be stripped by the rstrip() in
Section::append regardless.)
In a followup commit we will make the whitespace in the lines of doc
comment sections more consistently follow the input source.
There is no change to the generated .texi files before and after this
commit.
Because the qapi-schema test checks the exact values of the
documentation comments against a reference, we need to update that
reference to match the new whitespace. In the first four places this
is now correctly checking that we did put in the amount of whitespace
to pass a rST-formatted list to the backend; in the last two places
the extra whitespace is 'wrong' and will go away again in the
following commit.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-5-peter.maydell@linaro.org>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
doc-good.json tests doc comment parser corner cases. We're about to
largely replace it by a Sphinx extension, which will have different
corner cases. Tweak the test so it passes both with the old parser
and the Sphinx extension, by making it match the more restrictive
rST syntax:
* in a single list the bullet types must all match
* lists must have leading and following blank lines
* the rules on when and where indentation matters differ
* the '|' example syntax is going to go away entirely, so stop
testing it
This will avoid the tests spuriously breaking when we tighten up the
parser code in the following commits.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200925162316.21205-4-peter.maydell@linaro.org>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
The last pull added a ton of useless files by mistake.
Drop them all.
Fixes: 0ed93f4c05896 ("update golden master DSDT binary table blobs for q35")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
In the previously applied commit ("piix4: don't reserve hw resources when
hotplug is off globally"), we make changes to the ACPI DSDT tables
such that some ACPI code are not generated when bsel is absent. Since
as of this point in time, in q35 machines, we do not use bsel for pci
buses, we need to update the DSDT table blobs.
This patch updates the DSDT golden master tables for q35 machines.
At the same time, we clear bios-tables-test-allowed-diff.h for future
changes which update tables.
Following is a typical diff between the q35 acpi DSDT table blobs:
@@ -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/q35/DSDT, Tue Sep 15 18:52:47 2020
+ * Disassembly of /tmp/aml-3O0DR0, Tue Sep 15 18:52:47 2020
*
* Original Table Header:
* Signature "DSDT"
- * Length 0x00001DFE (7678)
+ * Length 0x00001DF6 (7670)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
- * Checksum 0xAC
+ * Checksum 0x17
* 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
}
@@ -3113,24 +3113,20 @@
Name (_ADR, 0x00010000) // _ADR: Address
Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State
{
Return (Zero)
}
Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State
{
Return (Zero)
}
Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State
{
Return (Zero)
}
}
-
- Method (PCNT, 0, NotSerialized)
- {
- }
}
}
}
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-12-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
The following patch ("piix4: don't reserve hw resources when
hotplug is off globally") modifies certain ACPI tables for q35 machines.
This patch adds those table names to tests/qtest/bios-tables-test-allowed-diff.h
so that unit tests continue to pass and bisection is not broken.
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-10-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
This patch adds a binary blob corresponding to the DSDT acpi table. It is used
to unit test the flag 'acpi-pci-hotplug-with-bridge-support' used with pci
bridges.
This change also clears the file tests/qtest/bios-tables-test-allowed-diff.h
so that future changes which affect the table can be caught.
The following is the diff between files tests/data/acpi/pc/DSDT.bridge and
tests/data/acpi/pc/DSDT.hpbridge after disassembly :
@@ -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 11 23:21:34 2020
+ * Disassembly of /tmp/aml-7UURQ0, Fri Sep 11 23:21:34 2020
*
* Original Table Header:
* Signature "DSDT"
- * Length 0x00001A89 (6793)
+ * Length 0x0000131F (4895)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
- * Checksum 0x09
+ * Checksum 0xF9
* 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,522 +859,32 @@
}
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)
- {
- BNUM = One
- DVNT (PCIU, One)
- DVNT (PCID, 0x03)
- }
}
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
@@ -1779,22 +1289,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 ()
}
}
}
}
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-9-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
This change adds a new unit test for the global flag
'acpi-pci-hotplug-with-bridge-support' which is available for cold plugged pci
bridges in i440fx. The flag can be used to turn off ACPI based hotplug support
on all pci bridges.
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-8-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
The file 'tests/data/acpi/pc/DSDT.hpbridge' is a newly added acpi table file
for testing the pci bridge option 'acpi-pci-hotplug-with-bridge-support' under
i440fx. This change documents this fact.
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-7-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
A new binary ACPI table tests/data/acpi/pc/DSDT.roothp is added in order
to unit test hotplug on/off capability on the root pci bus for i440fx.
The diff between the table DSDT.bridge and DSDT.roothp is listed below:
@@ -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 11 22:51:04 2020
+ * Disassembly of /tmp/aml-UGIHQ0, Fri Sep 11 22:51:04 2020
*
* Original Table Header:
* Signature "DSDT"
- * Length 0x00001A89 (6793)
+ * Length 0x0000140A (5130)
* Revision 0x01 **** 32-bit table (V1), no 64-bit math support
- * Checksum 0x09
+ * Checksum 0xE6
* 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
}
@@ -831,61 +831,60 @@
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0510, // Range Minimum
0x0510, // Range Maximum
0x01, // Alignment
0x0C, // Length
)
})
}
}
Scope (\_SB)
{
Scope (PCI0)
{
- Name (BSEL, Zero)
Device (S00)
{
Name (_ADR, Zero) // _ADR: Address
}
Device (S10)
{
Name (_ADR, 0x00020000) // _ADR: Address
Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State
{
Return (Zero)
}
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)
+ Name (BSEL, Zero)
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
{
@@ -1345,456 +1344,30 @@
Notify (SE8, Arg1)
}
If ((Arg0 & 0x40000000))
{
Notify (SF0, Arg1)
}
If ((Arg0 & 0x80000000))
{
Notify (SF8, Arg1)
}
}
Method (PCNT, 0, NotSerialized)
{
- BNUM = One
+ BNUM = Zero
DVNT (PCIU, One)
DVNT (PCID, 0x03)
}
}
- 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 & 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)
{
- BNUM = Zero
- DVNT (PCIU, One)
- DVNT (PCID, 0x03)
^S18.PCNT ()
}
}
}
}
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-4-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
Ability to turn hotplug off on the pci root bus for i440fx was added in commit:
3d7e78aa7777f0 ("Introduce a new flag for i440fx to disable PCI hotplug on the
root bus")
This change adds a unit test in order to test this feature.
Signed-off-by: Ani Sinha <ani@anisinha.ca>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200918084111.15339-3-ani@anisinha.ca>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|