qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
Cc: edgar.iglesias@gmail.com, stefanha@linux.vnet.ibm.com,
	qemu-devel@nongnu.org, john.williams@petalogix.com,
	michal.simek@petalogix.com
Subject: Re: [Qemu-devel] [RFC PATCH V1 00/14] Dynamic machine model creation from device trees
Date: Thu, 25 Aug 2011 11:04:12 -0500	[thread overview]
Message-ID: <4E56727C.3080809@codemonkey.ws> (raw)
In-Reply-To: <CAEgOgz6vT=srSeiyFLvRm65CHTR+7nTPEm-Ws2yKuC0tk9c4nA@mail.gmail.com>

On 08/25/2011 10:43 AM, Peter Crosthwaite wrote:
> Hi Anthony,
>
> So the primary motivation for using this is in embedded systems design flows
> where you are already working with DTS for software boot. For
> microblaze-linux, xilinx-ppc and the xilinx-arm platforms which we are
> working with, it even more makes sense as the hardware platform design tools
> are capable of emitting platforms descriptions as DTS. With this framework,
> there is no need to write another description of your system (i.e. a config
> file, or a hardcoded machine model). DTSs are a standardised way of
> describing machines in the embedded linux arena, and are our machine
> description source, so in one way or another, we will continue need to
> create QEMU machines that match a DTB.

Yes, but as is obvious in your series, the DTB used to create the guest 
is not necessarily what you expose to the guest.

So whether the config you use to create the guest is DTB or something 
else sort of doesn't matter.  It's an implementation detail and you 
should be able to easily use any number of formats.

> So anyways, the framework does a little bit more than read-config as the
> framework allows you to define a mapping between dts descriptions and qdev
> device models,

Yes, this is the main problem.  You should be able to do this via a 
programmatic interface (via the monitor).  Really, you should be able to 
do this all via qdev.

> rather than your configuration source being straight up qdev
> property values. There's also examples of more Ad-Hoc device models that are
> not currently qdev models (e.g. pflash_cfi)

That's a bug.  We should convert those devices to qdev, not paper around it.

  where you are forced to take a
> code driven approach rather than have to rely on QDev. It also allows you to
> define machine creation behavior for device nodes that are not QDev devices
> at all (e.g. simple busses or memories).

Another bug.  We should fix those bugs.

> The possibility would exist to take a DTS and to auto-translate it into a
> config format, however the process for doing this would be near identical to
> the code in this patch series, but rather than just straight up instantiate
> the devices as you go, you would have to dump all the results to a single
> data structure then read-config that result i.e:
>
> foo.dtb ->  foo.cfg ->  pass to qemu.
>
> But another important feature of this work that is perhaps glossed over in
> the original description, is the ability to specify opaque interconnection
> data for inter-communicating devices.

This is the goal of QOM except it does this by fixing the problems in 
qdev instead of adding another layer on top of things.

  dtb provides a natural way for devices
> to reference each other and we use this to handle device interconnections
> without interferring with device models.  In the example given, we create
> qemu_irqs for interrupt controllers as they are discovered then tag them as
> opaque data for the interrupt controller fdt_node. When connected device
> instantiate, they cast the opaque data to qemu_irq and connect the
> interrupt. It would be difficult to do this is the two stage process, as you
> would have create directives for managing this opaque data in config files.
>
> Now my understanding is the part of the qdev philosophy is to not embed
> connection information in device models themselves?

No, that's not a philosophy, it's a bug.

Regards,

Anthony Liguori

  parent reply	other threads:[~2011-08-25 16:04 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-25  6:41 [Qemu-devel] [RFC PATCH V1 00/14] Dynamic machine model creation from device trees Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 01/14] qemu-coroutine: Add simple work queue support Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 02/14] device_tree: Extended interface for fdt_generic Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 03/14] fdt_generic: First revision Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 04/14] xilinx_uartlite: Added fdt gen. platform support Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 05/14] pflash_cfi01: Added fdt generic " Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 06/14] qdev: Added fn for querying device property types Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 07/14] fdt_generic_qdev: first revision Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 08/14] xilinx_timer: Added fdt_generic platform support Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 09/14] xilinx_intc: Added fdt generic " Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 10/14] xilinx_ethlite: " Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 11/14] vl.c: Added hw_dtb/kern_dtb command line opts Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 12/14] microblaze: Make the MSR PVR bit non writable Peter A. G. Crosthwaite
2011-08-25  9:34   ` Peter Maydell
2011-08-25 10:17     ` Peter Crosthwaite
2011-08-25 18:28       ` Edgar E. Iglesias
2011-08-25 21:04       ` Edgar E. Iglesias
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 13/14] microblaze: Add an MSR_PVR constant and use it Peter A. G. Crosthwaite
2011-08-25  6:41 ` [Qemu-devel] [RFC PATCH V1 14/14] microblaze_generic_fdt: first revision Peter A. G. Crosthwaite
2011-08-25 13:27 ` [Qemu-devel] [RFC PATCH V1 00/14] Dynamic machine model creation from device trees Anthony Liguori
2011-08-25 15:43   ` Peter Crosthwaite
2011-08-25 15:59     ` Paolo Bonzini
2011-08-25 16:04     ` Anthony Liguori [this message]
2011-08-25 19:10       ` Edgar E. Iglesias
2011-08-25 19:54         ` Anthony Liguori
2011-08-25 20:20           ` Edgar E. Iglesias
2011-08-25 21:17             ` Anthony Liguori
2011-09-02  2:45               ` John Williams
2011-09-08  0:29                 ` John Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E56727C.3080809@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=edgar.iglesias@gmail.com \
    --cc=john.williams@petalogix.com \
    --cc=michal.simek@petalogix.com \
    --cc=peter.crosthwaite@petalogix.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).