hw/isa/piix: Allow for optional PIT creation in PIIX3
In the PC machine, the PIT is created in board code to allow it to be virtualized with various virtualization techniques. So explicitly disable its creation in the PC machine via a property which defaults to enabled. Once the PIIX implementations are consolidated this default will keep Malta working without further ado. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Message-Id: <20231007123843.127151-22-shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
2d7630f5c7
commit
ac4330359b
@ -270,6 +270,8 @@ static void pc_init1(MachineState *machine,
|
||||
&error_abort);
|
||||
object_property_set_bool(OBJECT(pci_dev), "has-pic", false,
|
||||
&error_abort);
|
||||
object_property_set_bool(OBJECT(pci_dev), "has-pit", false,
|
||||
&error_abort);
|
||||
qdev_prop_set_uint32(DEVICE(pci_dev), "smb_io_base", 0xb100);
|
||||
object_property_set_bool(OBJECT(pci_dev), "smm-enabled",
|
||||
x86_machine_is_smm_enabled(x86ms),
|
||||
|
@ -361,6 +361,11 @@ static void pci_piix3_realize(PCIDevice *dev, Error **errp)
|
||||
|
||||
isa_bus_register_input_irqs(isa_bus, d->isa_irqs_in);
|
||||
|
||||
/* PIT */
|
||||
if (d->has_pit) {
|
||||
i8254_pit_init(isa_bus, 0x40, 0, NULL);
|
||||
}
|
||||
|
||||
i8257_dma_init(isa_bus, 0);
|
||||
|
||||
/* RTC */
|
||||
@ -436,6 +441,7 @@ static Property pci_piix3_props[] = {
|
||||
DEFINE_PROP_UINT32("smb_io_base", PIIXState, smb_io_base, 0),
|
||||
DEFINE_PROP_BOOL("has-acpi", PIIXState, has_acpi, true),
|
||||
DEFINE_PROP_BOOL("has-pic", PIIXState, has_pic, true),
|
||||
DEFINE_PROP_BOOL("has-pit", PIIXState, has_pit, true),
|
||||
DEFINE_PROP_BOOL("has-usb", PIIXState, has_usb, true),
|
||||
DEFINE_PROP_BOOL("smm-enabled", PIIXState, smm_enabled, false),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
|
@ -70,6 +70,7 @@ struct PIIXState {
|
||||
|
||||
bool has_acpi;
|
||||
bool has_pic;
|
||||
bool has_pit;
|
||||
bool has_usb;
|
||||
bool smm_enabled;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user