Peter Maydell <peter.mayd...@linaro.org> wrote: > On 14 August 2018 at 12:52, Paolo Bonzini <pbonz...@redhat.com> wrote: >> On 14/08/2018 13:40, Juan Quintela wrote: >>>> CONFIG_SERIAL is a dependency of both CONFIG_SERIAL and >>>> CONFIG_SERIAL_PCI. >>> >>> I guess you here mean CONFIG_SERIAL_ISA or CONFIG_SERIAL_PCI. That is >>> not enough. CONFIG_SERIAL really means CONFIG_SERIAL_COMMON, and things >>> like riscv* require it >> >> Right, I would put >> >> CONFIG_SERIAL=y >> CONFIG_SERIAL_ISA=y >> >> in superio.mak and >> >> CONFIG_SERIAL=y >> CONFIG_SERIAL_PCI=y >> >> in pci.mak. > > What about the boards that use the serial.c code but do not > have PCI, ISA or a superio chip? That is, all the boards/devices > that call serial_mm_init() directly to create a memory-mapped > 16550.
That is what I mean that changing CONFIG_SERIAL to $(call lor,$(CONFIG_SERIAL_ISA), $(CONFIG_SERIAL_PCI)) is not enough. > (If anybody feels like trying to do a complicated refactoring, > serial_mm_init() is a pretty ugly legacy API around some > non-QOMified core 16550 code...) It is really, really interesting, we have: - serial_init() used is sh4, mips and imx serial - serial_mm_init() loads of places - serial_hds_isa_init() sparc64, ppc, other mips, and pc And now you can start getting creative with qom. O:-) Later, Juan.