This patch series tackles serial device hotplug. The first four patches have been on the list before, they implement pci-serial devices featuring a hot-pluggable 16550 uart and got some minor tweaks only.
The next two patches update the usb-serial device. It will only show up in the guest when the chardev is open. You'll see the difference with socket chardevs: If you open the chardev (by connecting to the socket) the device will show up in the guest, on close (disconnect) it will disappear. Final three patches cleanup chardev a bit and adds chardev hotplug to the mix, which makes the other patches alot more useful. It is the missing bit needed to really hotplug serial devices: (qemu) chardev_add file,id=pciserial,path=/root/hotchardev.log (qemu) device_add pci-serial,id=pciserial,chardev=pciserial And the reverse: (qemu) device_del pciserial (qemu) chardev_del pciserial New in v2: - added two chardev cleanup patches. - switched chardev_{add,del} commands to netdev_{add,del} style. cheers, Gerd The following changes since commit 8b4a3df8081f3e6f1061ed5cbb303ad623ade66b: Fix popcnt in long mode (2012-10-14 14:55:09 +0400) are available in the git repository at: git://git.kraxel.org/qemu serial.2 Gerd Hoffmann (9): serial: split serial.c serial: add pci variant serial: add windows inf file for the pci card to docs serial: add 2x + 4x pci variant usb-serial: don't magically zap chardev on umplug usb-serial: only expose device in guest when the chardev is open chardev: add error reporting for qemu_chr_new_from_opts chardev: fix QemuOpts lifecycle chardev: add hotplug support. default-configs/pci.mak | 2 + docs/qemupciserial.inf | 109 ++++++++++++++++++ hmp-commands.hx | 32 ++++++ hmp.c | 23 ++++ hmp.h | 2 + hw/Makefile.objs | 3 +- hw/alpha_dp264.c | 1 + hw/kzm.c | 2 +- hw/mips_fulong2e.c | 1 + hw/mips_jazz.c | 1 + hw/mips_malta.c | 1 + hw/mips_mipssim.c | 2 +- hw/mips_r4k.c | 1 + hw/musicpal.c | 2 +- hw/omap_uart.c | 3 +- hw/openrisc_sim.c | 3 +- hw/pc.c | 1 + hw/pc.h | 27 ----- hw/pci_ids.h | 1 + hw/petalogix_ml605_mmu.c | 2 +- hw/ppc/e500.c | 2 +- hw/ppc405_uc.c | 2 +- hw/ppc440_bamboo.c | 2 +- hw/ppc_prep.c | 1 + hw/pxa2xx.c | 2 +- hw/serial-isa.c | 130 ++++++++++++++++++++++ hw/serial-pci.c | 272 ++++++++++++++++++++++++++++++++++++++++++++++ hw/serial.c | 149 ++----------------------- hw/serial.h | 74 +++++++++++++ hw/sm501.c | 2 +- hw/sun4u.c | 1 + hw/usb/dev-serial.c | 21 +++- hw/virtex_ml507.c | 2 +- hw/xtensa_lx60.c | 3 +- qapi-schema.json | 39 +++++++ qemu-char.c | 83 ++++++++++++--- qemu-char.h | 5 +- qmp-commands.hx | 61 ++++++++++ vl.c | 7 +- 39 files changed, 878 insertions(+), 199 deletions(-) create mode 100644 docs/qemupciserial.inf create mode 100644 hw/serial-isa.c create mode 100644 hw/serial-pci.c create mode 100644 hw/serial.h