[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v2 0/7] machvirt dynamic sysbus device instantiation
From: |
Eric Auger |
Subject: |
[Qemu-devel] [RFC v2 0/7] machvirt dynamic sysbus device instantiation |
Date: |
Fri, 8 Aug 2014 16:03:42 +0100 |
This RFC enables machvirt to dynamically instantiate sysbus devices
from command line.
the RFC originates from Alex Graf's work
- "Dynamic sysbus device allocation support"
http://lists.gnu.org/archive/html/qemu-ppc/2014-07/msg00047.html
The code related to dynamic sysbus device IRQ and mmio region binding
and device tree node generation, originally developped in PPC e500.c,
is moved into 2 new modules:
- hw/misc/dyn_sysbus_binding (IRQ and MMIO binding)
- hw/arm/dyn_sysbus_devtree (dt node generation)
This makes possible to reuse it for ARM/machvirt.
Both e500 and machvirt are adapted to use those helper routines.
This RFC applies onto "sysbus: Make devices spawnable via -device"
https://www.mail-archive.com/address@hidden/msg244394.html.
---
integrated branch can be found on
git://git.linaro.org/people/eric.auger/qemu.git,
branch dyn-sysbus-v2-integ
A related discussion can be found at
https://lists.nongnu.org/archive/html/qemu-devel/2014-07/msg04065.html
For e500 the device tree generation is kept in the machine file,
according to Alex will.
For machvirt we use dyn_sysbus_devtree since the code becomes large
with the expected support of vfio devices.
Best Regards
Eric
v1 -> v2:
- device node generation no more in sysbus device but in
dyn_sysbus_devtree
- VFIO region shrinked to 4MB and relocated in machvirt to avoid PCI
shrink (dynamic vfio-mmio support might come latter)
- platform_bus_base removed from PlatformDevtreeData
Alexander Graf (2):
PPC: e500: Support dynamically spawned sysbus devices
e500: Add support for eTSEC in device tree
Eric Auger (5):
hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding
hw/arm/dyn_sysbus_devtree: helpers for sysbus device dynamic dt node
generation
hw/arm/boot: load_dtb becomes non static
hw/arm/virt: add new add_fdt_xxx_node functions
hw/arm/virt: Support dynamically spawned sysbus devices
hw/arm/Makefile.objs | 1 +
hw/arm/boot.c | 2 +-
hw/arm/dyn_sysbus_devtree.c | 66 ++++++++++++++
hw/arm/virt.c | 129 +++++++++++++++++++++------
hw/misc/Makefile.objs | 1 +
hw/misc/dyn_sysbus_binding.c | 163 +++++++++++++++++++++++++++++++++++
hw/ppc/e500.c | 129 +++++++++++++++++++++++++++
hw/ppc/e500.h | 2 +
hw/ppc/e500plat.c | 9 ++
include/hw/arm/arm.h | 1 +
include/hw/arm/dyn_sysbus_devtree.h | 18 ++++
include/hw/misc/dyn_sysbus_binding.h | 24 ++++++
12 files changed, 519 insertions(+), 26 deletions(-)
create mode 100644 hw/arm/dyn_sysbus_devtree.c
create mode 100644 hw/misc/dyn_sysbus_binding.c
create mode 100644 include/hw/arm/dyn_sysbus_devtree.h
create mode 100644 include/hw/misc/dyn_sysbus_binding.h
--
1.8.3.2
- [Qemu-devel] [RFC v2 0/7] machvirt dynamic sysbus device instantiation,
Eric Auger <=
- [Qemu-devel] [RFC v2 1/7] hw/misc/dyn_sysbus_binding: helpers for sysbus device dynamic binding, Eric Auger, 2014/08/08
- [Qemu-devel] [RFC v2 3/7] PPC: e500: Support dynamically spawned sysbus devices, Eric Auger, 2014/08/08
- [Qemu-devel] [RFC v2 2/7] hw/arm/dyn_sysbus_devtree: helpers for sysbus device dynamic dt node generation, Eric Auger, 2014/08/08
- [Qemu-devel] [RFC v2 4/7] e500: Add support for eTSEC in device tree, Eric Auger, 2014/08/08
- [Qemu-devel] [RFC v2 5/7] hw/arm/boot: load_dtb becomes non static, Eric Auger, 2014/08/08