f8790f81eb
hw/isa/piix3: Resolve redundant TYPE_PIIX3_XEN_DEVICE
...
During the last patches, TYPE_PIIX3_XEN_DEVICE turned into a clone of
TYPE_PIIX3_DEVICE. Remove this redundancy.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com >
Tested-by: Chuck Zmudzinski <brchuckz@aol.com >
Message-Id: <20230312120221.99183-7-shentey@gmail.com >
Message-Id: <20230403074124.3925-8-shentey@gmail.com >
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com >
2023-06-07 15:07:10 +01:00
f0bc6bf725
hw/i386/pc: Create RTC controllers in south bridges
...
Just like in the real hardware (and in PIIX4), create the RTC
controllers in the south bridges.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Reviewed-by: Thomas Huth <thuth@redhat.com >
Message-Id: <20230519084734.220480-2-shentey@gmail.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2023-05-19 10:30:46 -04:00
edf5ca5dbe
include/hw/pci: Split pci_device.h off pci.h
...
PCIDeviceClass and PCIDevice are defined in pci.h. Many users of the
header don't actually need them. Similar structs live in their own
headers: PCIBusClass and PCIBus in pci_bus.h, PCIBridge in
pci_bridge.h, PCIHostBridgeClass and PCIHostState in pci_host.h,
PCIExpressHost in pcie_host.h, and PCIERootPortClass, PCIEPort, and
PCIESlot in pcie_port.h.
Move PCIDeviceClass and PCIDeviceClass to new pci_device.h, along with
the code that needs them. Adjust include directives.
This also enables the next commit.
Signed-off-by: Markus Armbruster <armbru@redhat.com >
Message-Id: <20221222100330.380143-6-armbru@redhat.com >
Reviewed-by: Michael S. Tsirkin <mst@redhat.com >
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2023-01-08 01:54:22 -05:00
988fb61321
hw/isa/piix3: Inline and remove piix3_create()
...
During the previous changesets piix3_create() became a trivial
wrapper around more generic functions. Modernize the code.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20220603185045.143789-12-shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:50 +02:00
6e8791fb61
hw/isa/piix3: Factor out ISABus retrieval from piix3_create()
...
Modernizes the code.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20220603185045.143789-11-shentey@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:50 +02:00
e8ebf54936
hw/isa/piix4: Inline and remove piix4_create()
...
During the previous changesets piix4_create() became a trivial
wrapper around more generic functions. Modernize the code.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20220603185045.143789-8-shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:50 +02:00
19e375db22
hw/isa/piix4: QOM'ify PIIX4 PM creation
...
Just like the real hardware, create the PIIX4 ACPI controller as part of
the PIIX4 southbridge. This also mirrors how the IDE and USB functions
are already created.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Message-Id: <20220603185045.143789-7-shentey@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:50 +02:00
e3d198eed1
hw/isa/piix4: Factor out ISABus retrieval from piix4_create()
...
Modernizes the code.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220603185045.143789-6-shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:50 +02:00
3963e1398e
hw/southbridge/piix: Aggregate all PIIX southbridge type names
...
TYPE_PIIX3_PCI_DEVICE resides there as already, so add the remaining
ones, too.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220603185045.143789-2-shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:50 +02:00
65417e548a
hw/acpi/piix4: remove unused piix4_pm_initfn() function
...
This function is now unused and so can be completely removed.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220528091934.15520-13-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:47 +02:00
b49e94424c
hw/acpi/piix4: use qdev gpio to wire up smi_irq
...
Initialize the SMI IRQ in piix4_pm_init().
The smi_irq can now be wired up directly using a qdev gpio instead
of having to set the IRQ externally in piix4_pm_initfn().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220528091934.15520-10-mark.cave-ayland@ilande.co.uk >
[PMD: Partially squash 20220528091934.15520-8-mark.cave-ayland@ilande.co.uk ]
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:32 +02:00
29786d42ba
hw/acpi/piix4: use qdev gpio to wire up sci_irq
...
Introduce piix4_pm_init() instance init function and use it to
initialise the separate qdev gpio for the SCI IRQ.
The sci_irq can now be wired up directly using a qdev gpio instead
of having to set the IRQ externally in piix4_pm_initfn().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220528091934.15520-9-mark.cave-ayland@ilande.co.uk >
[PMD: Partially squash 20220528091934.15520-8-mark.cave-ayland@ilande.co.uk ]
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:28 +02:00
d0af99ac12
hw/acpi/piix4: rename piix4_pm_init() to piix4_pm_initfn()
...
When QOMifying a device it is typical to use _init() as the suffix for an
instance_init function, however this name is already in use by the legacy
piix4_pm_init() wrapper function. Eventually the wrapper function will be
removed, but for now rename it to piix4_pm_initfn() to avoid a naming
collision.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220528091934.15520-7-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:24 +02:00
19eb2a0da2
hw/acpi/piix4: alter piix4_pm_init() to return PIIX4PMState
...
This exposes the PIIX4_PM device to the caller to allow any qdev gpios to be
mapped outside of piix4_pm_init().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220528091934.15520-6-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:20 +02:00
2bfd0845f0
hw/acpi/piix4: move PIIX4PMState into separate piix4.h header
...
This allows the QOM types in hw/acpi/piix4.c to be used elsewhere by simply including
hw/acpi/piix4.h.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Message-Id: <20220528091934.15520-5-mark.cave-ayland@ilande.co.uk >
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:15 +02:00
5b07f44102
hw/acpi/piix4: change smm_enabled from int to bool
...
This is in preparation for conversion to a qdev property.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Ani Sinha <ani@anisinha.ca >
Message-Id: <20220528091934.15520-3-mark.cave-ayland@ilande.co.uk >
[PMD: Change simm_enabled from int to bool, suggested by Ani Sinha]
Reviewed-by: Bernhard Beschow <shentey@gmail.com >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-06-11 11:44:06 +02:00
34e57845d0
hw/isa/piix4: Resolve global instance variable
...
Now that piix4_set_irq's opaque parameter references own PIIX4State,
piix4_dev becomes redundant.
Signed-off-by: Bernhard Beschow <shentey@gmail.com >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Acked-by: Michael S. Tsirkin <mst@redhat.com >
Message-Id: <20220217101924.15347-6-shentey@gmail.com >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
2022-03-08 19:38:05 +01:00
8110fa1d94
Use DECLARE_*CHECKER* macros
...
Generated using:
$ ./scripts/codeconverter/converter.py -i \
--pattern=TypeCheckMacro $(git grep -l '' -- '*.[ch]')
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-12-ehabkost@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-13-ehabkost@redhat.com >
Message-Id: <20200831210740.126168-14-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
2020-09-09 09:27:09 -04:00
db1015e92e
Move QOM typedefs and add missing includes
...
Some typedefs and macros are defined after the type check macros.
This makes it difficult to automatically replace their
definitions with OBJECT_DECLARE_TYPE.
Patch generated using:
$ ./scripts/codeconverter/converter.py -i \
--pattern=QOMStructTypedefSplit $(git grep -l '' -- '*.[ch]')
which will split "typdef struct { ... } TypedefName"
declarations.
Followed by:
$ ./scripts/codeconverter/converter.py -i --pattern=MoveSymbols \
$(git grep -l '' -- '*.[ch]')
which will:
- move the typedefs and #defines above the type check macros
- add missing #include "qom/object.h" lines if necessary
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-9-ehabkost@redhat.com >
Reviewed-by: Juan Quintela <quintela@redhat.com >
Message-Id: <20200831210740.126168-10-ehabkost@redhat.com >
Message-Id: <20200831210740.126168-11-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
2020-09-09 09:26:43 -04:00
fe47ad3aa9
piix: Move QOM macros to header
...
This will make future conversion to OBJECT_DECLARE* easier.
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
Tested-By: Roman Bolshakov <r.bolshakov@yadro.com >
Message-Id: <20200825192110.3528606-37-ehabkost@redhat.com >
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com >
2020-08-27 14:04:55 -04:00
be1765f398
hw/ide: Do ide_drive_get() within pci_ide_create_devs()
...
The pci_ide_create_devs() function takes a hd_table parameter but all
callers just pass what ide_drive_get() returns so we can do it locally
simplifying callers and removing hd_table parameter.
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu >
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk >
Reviewed-by: Markus Armbruster <armbru@redhat.com >
Message-id: e9713fdded4d212fa68ed03b844e531934226a6f.1584457537.git.balaton@eik.bme.hu
Signed-off-by: John Snow <jsnow@redhat.com >
2020-03-17 12:22:36 -04:00
14a026dd58
hw/pci-host/piix: Extract PIIX3 functions to hw/isa/piix3.c
...
Move all the PIIX3 functions to a new file: hw/isa/piix3.c.
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2019-11-05 23:33:12 +01:00
4b19de14b1
hw/pci-host/piix: Define and use the PIIX IRQ Route Control Registers
...
The IRQ Route Control registers definitions belong to the PIIX
chipset. We were only defining the 'A' register. Define the other
B, C and D registers, and use them.
Acked-by: Paul Durrant <paul@xen.org >
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2019-11-05 23:33:12 +01:00
0063454aff
hw/pci-host/piix: Move RCR_IOPORT register definition
...
The RCR_IOPORT register belongs to the PIIX chipset.
Move the definition to "piix.h", and prepend the PIIX prefix.
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2019-11-05 23:33:12 +01:00
e29f237996
hw/isa/piix4: Move piix4_create() to hw/isa/piix4.c
...
Now that we properly refactored the piix4_create() function, let's
move it to hw/isa/piix4.c where it belongs, so it can be reused
on other places.
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2019-11-05 23:33:12 +01:00
fff123b8fd
piix4: Add a MC146818 RTC Controller as specified in datasheet
...
Remove mc146818rtc instanciated in malta board, to not have it twice.
Acked-by: Michael S. Tsirkin <mst@redhat.com >
Acked-by: Paolo Bonzini <pbonzini@redhat.com >
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org >
Message-Id: <20171216090228.28505-13-hpoussin@reactos.org >
[PMD: rebased, set RTC base_year to 2000]
Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com >
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2019-11-05 23:33:12 +01:00