Hi Eric,

Is there anything still blocking this patch ? Can I get the status ?

Thanks,
Baptiste

On Wed, Mar 4, 2015 at 5:18 PM, Eric Auger <eric.au...@linaro.org> wrote:

> This patch series enables machvirt to dynamically instantiate sysbus
> devices from command line (using -device option).
>
> All those sysbus devices are plugged onto a platform bus. This latter
> device is instantiated in machvirt and takes care of the binding of
> children sysbus devices on a machine init done notifier. The device
> tree node generation for children dynamic sysbus device also happens
> on a subsequent notifier that must be executed after the above one.
> machvirt registers that notifier before the platform bus creation to
> make sure notifiers are executed in the right order: dt generation after
> actual QOM binding.
>
> Very few sysbus devices are supposed to be instantiated that
> way. VFIO devices belong to them.
>
> Node creation really is architecture specific. On ARM the dynamic
> sysbus device node creation is implemented in a new C module,
> hw/arm/sysbus-fdt.c and not in the machine file.
>
> Machvirt transformations and sysbus-fdt are largely inspired from Alex
> work.
>
> The patch series can be found at:
> http://git.linaro.org/people/eric.auger/qemu.git,
> branch official_dynsysbus_v11
>
> Best Regards
>
> Eric
>
> v10 -> v11:
> - rebase on v2.2.0 and especially Alex'
>   "arm: Add PCIe host bridge in virt machine"
>
> v9 -> v10:
> - add assert and fix return value in add_fdt_node
>
> v8 -> v9:
> Take into account Peter's comments:
> hw/arm/sysbus-fdt:
> - s/Fdt/FDT in struct type names
> - reorder fields in PlatformBusFdtNotifierParams and use DO_UPCAST
> - use assert() when relevant (board model issue)
> - g_free the ARMPlatformBusFDTParams and PlatformBusFDTNotifierParams
>   pointers in platform_bus_fdt_notify
> hw/arm/boot.c
> - fix compilation with arm-linux-user
> - reorder fields in ArmLoadKernelNotifier
> hw/arm/virt.c
> - PLATFORM_BUS_NUM_IRQS set to 32 instead of 20
> - platform bus irq now start at 64 instead of 48
> - remove change of indentation in  a15memmap
> - correct misc style issues
>
> add a separate patch file for re-indentation in virt a15memmap
>
> v7 -> v8:
> - rebase on 2.2.0 (boot.c and virt.c)
> - in virt.c machvirt_init, create_platform_bus simply is added
>   after the arm_load_kernel call instead of moving this latter.
>   should ease the review.
> - Add Alex & Shannon Reviewed-by
>
> v6 -> v7:
> Take into account Shannon's comments:
> - hw/arm/sysbus-fdt.c: revert indentation in add_fdt_node_functions
> - hw/arm/virt.c:
>   - add an additional comment in a15irqmap related to PLATFORM_BUS_NUM_IRQS
>   - correct platform bus size to 0x400000
>   - remove PLATFORM_BUS_FIRST_IRQ macro
>
> v5 -> v6:
> Take into account Peter's comments:
> - dtb overload mechanism rewritten: arm_load_kernel code is moved into a
>   machine init done notifier notify instead. arm_load_kernel only registers
>   that notifier. As a consequence the dtb is loaded once.
> - v5 1-4 patch files are removed and replaced by a single patch file moving
>   arm_load_kernel in the notifier (2).
> - as a consequence arm_load_kernel must be called before sysbus-fdt
>   arm_register_platform_bus_fdt_creator.
> - In virt, platform_bus_params not a const anymore since its fields are
>   initialized from vbi->memmap and vbi->irqmap. Hence create_platform_bus
>   proto can be simplified.
> - In sysbus-fdt add_all_platform_bus_fdt_nodes now takes a handle to
>   an ARMPlatformBusFdtParams. This is not a modify_dtb function anymore
>   fdt pointer is checked in case the callback is called after the load_dtb
>   (this latter deallocated fdt pointer). Check of fdt_filename moved in
> here.
>   upgrade_dtb is removed. copyright aligned between .h and .c.
>
> v4 -> v5:
> - in virt.c: platform_bus_params becomes static const
> - sysbus-fdt: change indentation in add_fdt_node_functions array init
> - s/load_dtb/arm_load_dtb in one boot.c comment
>
> v3 -> v4:
> - dyn_sysbus_binding removed since binding stuff now are implemented by
>   the platform bus device
> - due to a change in ARM load_dtb implementation using rom_add_blob_fixed,
>   the dt no more is generated in a reset notifier but is generated on a
>   machine init done notifier
> - the augmented device tree is not generated from scratch anymore but is
>   added using a modify_dtb function. This required some small change in
>   boot.c
> - the case where the user provides a dtb file now is handled
> - some cleanup in virt additions
> - implement a list of dyanmically instantiable devices in sysbus-fdt
>
> v2 -> v3:
> - patch now applies on top of Alex full patchset
> - dyn_sysbus_devtree: add arm_prefix to emphasize the fact those
>   functions are arm specific; arm_sysbus_device_create_devtree
>   becomes static
> - load_dtb renamed into arm_load_dtb
> - add copyright in hw/arm/dyn_sysbus_devtree.c
>
> 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
>
>
> Eric Auger (4):
>   hw/arm/sysbus-fdt: helpers for platform bus nodes addition
>   hw/arm/boot: arm_load_kernel implemented as a machine init done
>     notifier
>   hw/arm/virt: add dynamic sysbus device support
>   hw/arm/virt: change indentation in a15memmap
>
>  hw/arm/Makefile.objs        |   1 +
>  hw/arm/boot.c               |  14 +++-
>  hw/arm/sysbus-fdt.c         | 174
> ++++++++++++++++++++++++++++++++++++++++++++
>  hw/arm/virt.c               |  85 ++++++++++++++++++----
>  include/hw/arm/arm.h        |  28 +++++++
>  include/hw/arm/sysbus-fdt.h |  60 +++++++++++++++
>  6 files changed, 348 insertions(+), 14 deletions(-)
>  create mode 100644 hw/arm/sysbus-fdt.c
>  create mode 100644 include/hw/arm/sysbus-fdt.h
>
> --
> 1.8.3.2
>
>

Reply via email to