macio: don't reference serial_hd() directly within the device
Instead use qdev_prop_set_chr() to configure the ESCC serial chardevs at the Mac Old World and New World machine level. Also remove the now obsolete comment referring to the use of serial_hd() and the setting of user_creatable to false accordingly. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-Id: <20201013114922.2946-2-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
e12ce85b2c
commit
348b8d1a76
@ -109,8 +109,6 @@ static void macio_common_realize(PCIDevice *d, Error **errp)
|
|||||||
qdev_prop_set_uint32(DEVICE(&s->escc), "disabled", 0);
|
qdev_prop_set_uint32(DEVICE(&s->escc), "disabled", 0);
|
||||||
qdev_prop_set_uint32(DEVICE(&s->escc), "frequency", ESCC_CLOCK);
|
qdev_prop_set_uint32(DEVICE(&s->escc), "frequency", ESCC_CLOCK);
|
||||||
qdev_prop_set_uint32(DEVICE(&s->escc), "it_shift", 4);
|
qdev_prop_set_uint32(DEVICE(&s->escc), "it_shift", 4);
|
||||||
qdev_prop_set_chr(DEVICE(&s->escc), "chrA", serial_hd(0));
|
|
||||||
qdev_prop_set_chr(DEVICE(&s->escc), "chrB", serial_hd(1));
|
|
||||||
qdev_prop_set_uint32(DEVICE(&s->escc), "chnBtype", escc_serial);
|
qdev_prop_set_uint32(DEVICE(&s->escc), "chnBtype", escc_serial);
|
||||||
qdev_prop_set_uint32(DEVICE(&s->escc), "chnAtype", escc_serial);
|
qdev_prop_set_uint32(DEVICE(&s->escc), "chnAtype", escc_serial);
|
||||||
if (!qdev_realize(DEVICE(&s->escc), BUS(&s->macio_bus), errp)) {
|
if (!qdev_realize(DEVICE(&s->escc), BUS(&s->macio_bus), errp)) {
|
||||||
@ -458,8 +456,6 @@ static void macio_class_init(ObjectClass *klass, void *data)
|
|||||||
k->class_id = PCI_CLASS_OTHERS << 8;
|
k->class_id = PCI_CLASS_OTHERS << 8;
|
||||||
device_class_set_props(dc, macio_properties);
|
device_class_set_props(dc, macio_properties);
|
||||||
set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
|
set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
|
||||||
/* Reason: Uses serial_hds in macio_instance_init */
|
|
||||||
dc->user_creatable = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo macio_bus_info = {
|
static const TypeInfo macio_bus_info = {
|
||||||
|
@ -123,6 +123,7 @@ static void ppc_core99_init(MachineState *machine)
|
|||||||
UNINHostState *uninorth_pci;
|
UNINHostState *uninorth_pci;
|
||||||
PCIBus *pci_bus;
|
PCIBus *pci_bus;
|
||||||
PCIDevice *macio;
|
PCIDevice *macio;
|
||||||
|
ESCCState *escc;
|
||||||
bool has_pmu, has_adb;
|
bool has_pmu, has_adb;
|
||||||
MACIOIDEState *macio_ide;
|
MACIOIDEState *macio_ide;
|
||||||
BusState *adb_bus;
|
BusState *adb_bus;
|
||||||
@ -380,6 +381,11 @@ static void ppc_core99_init(MachineState *machine)
|
|||||||
qdev_prop_set_bit(dev, "has-adb", has_adb);
|
qdev_prop_set_bit(dev, "has-adb", has_adb);
|
||||||
object_property_set_link(OBJECT(macio), "pic", OBJECT(pic_dev),
|
object_property_set_link(OBJECT(macio), "pic", OBJECT(pic_dev),
|
||||||
&error_abort);
|
&error_abort);
|
||||||
|
|
||||||
|
escc = ESCC(object_resolve_path_component(OBJECT(macio), "escc"));
|
||||||
|
qdev_prop_set_chr(DEVICE(escc), "chrA", serial_hd(0));
|
||||||
|
qdev_prop_set_chr(DEVICE(escc), "chrB", serial_hd(1));
|
||||||
|
|
||||||
pci_realize_and_unref(macio, pci_bus, &error_fatal);
|
pci_realize_and_unref(macio, pci_bus, &error_fatal);
|
||||||
|
|
||||||
/* We only emulate 2 out of 3 IDE controllers for now */
|
/* We only emulate 2 out of 3 IDE controllers for now */
|
||||||
|
@ -96,6 +96,7 @@ static void ppc_heathrow_init(MachineState *machine)
|
|||||||
PCIBus *pci_bus;
|
PCIBus *pci_bus;
|
||||||
PCIDevice *macio;
|
PCIDevice *macio;
|
||||||
MACIOIDEState *macio_ide;
|
MACIOIDEState *macio_ide;
|
||||||
|
ESCCState *escc;
|
||||||
SysBusDevice *s;
|
SysBusDevice *s;
|
||||||
DeviceState *dev, *pic_dev;
|
DeviceState *dev, *pic_dev;
|
||||||
BusState *adb_bus;
|
BusState *adb_bus;
|
||||||
@ -281,6 +282,11 @@ static void ppc_heathrow_init(MachineState *machine)
|
|||||||
qdev_prop_set_uint64(dev, "frequency", tbfreq);
|
qdev_prop_set_uint64(dev, "frequency", tbfreq);
|
||||||
object_property_set_link(OBJECT(macio), "pic", OBJECT(pic_dev),
|
object_property_set_link(OBJECT(macio), "pic", OBJECT(pic_dev),
|
||||||
&error_abort);
|
&error_abort);
|
||||||
|
|
||||||
|
escc = ESCC(object_resolve_path_component(OBJECT(macio), "escc"));
|
||||||
|
qdev_prop_set_chr(DEVICE(escc), "chrA", serial_hd(0));
|
||||||
|
qdev_prop_set_chr(DEVICE(escc), "chrB", serial_hd(1));
|
||||||
|
|
||||||
pci_realize_and_unref(macio, pci_bus, &error_fatal);
|
pci_realize_and_unref(macio, pci_bus, &error_fatal);
|
||||||
|
|
||||||
macio_ide = MACIO_IDE(object_resolve_path_component(OBJECT(macio),
|
macio_ide = MACIO_IDE(object_resolve_path_component(OBJECT(macio),
|
||||||
|
Loading…
Reference in New Issue
Block a user