From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57302) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X435d-00074F-4J for qemu-devel@nongnu.org; Mon, 07 Jul 2014 03:11:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X435X-0003z2-6t for qemu-devel@nongnu.org; Mon, 07 Jul 2014 03:11:53 -0400 Received: from mail-wi0-f179.google.com ([209.85.212.179]:43904) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X435X-0003yx-0j for qemu-devel@nongnu.org; Mon, 07 Jul 2014 03:11:47 -0400 Received: by mail-wi0-f179.google.com with SMTP id cc10so6155138wib.6 for ; Mon, 07 Jul 2014 00:11:44 -0700 (PDT) From: Eric Auger Date: Mon, 7 Jul 2014 08:08:05 +0100 Message-Id: <1404716892-15600-1-git-send-email-eric.auger@linaro.org> Subject: [Qemu-devel] [PATCH 0/7] machvirt dynamic sysbus device instantiation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: eric.auger@st.com, christoffer.dall@linaro.org, qemu-devel@nongnu.org, kim.phillips@freescale.com, a.rigo@virtualopensystems.com Cc: peter.maydell@linaro.org, eric.auger@linaro.org, patches@linaro.org, agraf@suse.de, stuart.yoder@freescale.com, alex.williamson@redhat.com, a.motakis@virtualopensystems.com, kvmarm@lists.cs.columbia.edu This RFC enables machvirt to dynamically instantiate sysbus devices from command line. the RFC relies on - Alex Graf's "Dynamic sysbus device allocation support" http://lists.gnu.org/archive/html/qemu-ppc/2014-07/msg00047.html On top of sysbus device Alex' modifications, the RFC reuses his code developped in PPC e500.c. First that code was moved in a separate module (hw/misc/physical_devices) and then machvirt was adapted to call those helper routines. It is also proposed to add a new method in SysBysDeviceClass, named fdt_add_node, whose role is to create the device tree node. It is meant to be specialized by devices that support dynamic instantiation. In practice there is a need for 2 specializations: one for the device, and one for the board. It is assumed the provision for PlatformDevtreeData enables the board adaptation. However, this later may need to be augmented: typically some clock handles may need to be provided. Best Regards Eric Eric Auger (7): hw/misc/platform_devices: helpers for dynamic instantiation of platform devices 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/core/sysbus: add fdt_add_node method hw/misc/platform_devices: add call to sysbus fdt_add_node hw/misc/platform_devices: Add platform_bus_base to PlatformDevtreeData hw/arm/boot.c | 2 +- hw/arm/virt.c | 125 ++++++++++++++++----- hw/core/sysbus.c | 12 +++ hw/misc/Makefile.objs | 1 + hw/misc/platform_devices.c | 215 +++++++++++++++++++++++++++++++++++++ include/hw/arm/arm.h | 1 + include/hw/misc/platform_devices.h | 62 +++++++++++ include/hw/sysbus.h | 2 + 8 files changed, 395 insertions(+), 25 deletions(-) create mode 100644 hw/misc/platform_devices.c create mode 100644 include/hw/misc/platform_devices.h -- 1.8.3.2