On 25/05/2016 15:08, Peter Maydell wrote: >> > /* AUX / UART1 */ >> > - /* TODO: don't call qemu_char_get_next_serial() here, instead set >> > - * chardev properties for each uart at the board level, once pl011 >> > - * (uart0) has been updated to avoid qemu_char_get_next_serial() >> > - */ > This comment says this should be fixed by having board-level > properties; you've removed it but this patch isn't adding > the properties to this (SoC-level) device. I think the board > level should be looking at serial_hds[], not this code. > >> > @@ -310,8 +312,7 @@ static void pl011_class_init(ObjectClass *oc, void >> > *data) >> > >> > dc->realize = pl011_realize; >> > dc->vmsd = &vmstate_pl011; >> > - /* Reason: realize() method uses qemu_char_get_next_serial() */ >> > - dc->cannot_instantiate_with_device_add_yet = true; > Why does instantiating with device_add work now? There's > still no way to wire up interrupt lines or map mmio regions. > (This has never made much sense to me -- Markus?)
You can create it with -device if your board provides a platform bus and there's an FDT creator function. If you don't, you get an error. Regarding device_add, it's disabled anyway because sysbus is not hotpluggable. Eiter way it's safe to remove this line, which is for outliers that otherwise would not give any error message. Thanks, Paolo