From: Paul Brook <paul@codesourcery.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Wood Scott-B07421 <B07421@freescale.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Alexander Graf <agraf@suse.de>,
"blauwirbel@gmail.com" <blauwirbel@gmail.com>,
Yoder Stuart-B08248 <B08248@freescale.com>,
"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
"joerg.roedel@amd.com" <joerg.roedel@amd.com>,
"dwg@au1.ibm.com" <dwg@au1.ibm.com>,
"armbru@redhat.com" <armbru@redhat.com>
Subject: Re: [Qemu-devel] device assignment for embedded Power
Date: Fri, 1 Jul 2011 13:52:37 +0100 [thread overview]
Message-ID: <201107011352.37482.paul@codesourcery.com> (raw)
In-Reply-To: <4E0DB945.4070203@codemonkey.ws>
> > So, from a qemu command line perspective, all you should have to do is
> > pass qemu the device-tree -path- to the device you want to pass-trough
> > (you may support passing a full hierarchy here).
>
> I agree in principle but I think it should be done in a slightly
> different way.
>
> I think we ought to support composing a device by passthrough. For
> instance, something like:
>
> [physical-device "mydev"]
> region[0].file = "/dev/mem"
> region[0].guest_address = "0x42232000"
> region[0].file_offset = "0x23423400"
> region[0].size = "4096"
> irq[0].guest_irq = "10"
> irq[0].host_irq = "10"
>
> This should be independent of anything to do with device tree. This
> would be useful for x86 too to assign platform devices (like the HPET).
I'm not quite sure what you're getting at here. IMO there should be little or
no need for special knowledge of passthrough devices. They should just be
annother qdev device, configured in the normal way. e.g.:
-device sysbus-host,hostdev=whatever,normal_mmio_and_irq_config
Should work the same as adding any other device. If it doesn't then we should
fix that. This is an example of why it's good to have device features (IRQs,
MMIO regions, sockets, or whatever we call them) registered when the device is
instantiated, not relying on pre-compiled device decriptors/property lists.
In the latter case you probably need explicit variants for differnt numbers of
IRQs, MMIO regions, etc.
While I'm thinking about it, we already have exactly this for USB (i.e. the
usb-host device).
> I think there should be a separate mechanism to manipulate the guest
> device tree, just like there are mechanisms to manipulate the guest's
> ACPI tables.
I aggree. Any sort of device tree (IIUC ACPI tables are in principle giving
the same information) is, in practice, going to need to be assembled at
runtime. This needs some mechanism for devices to describe themselves,
probably largely independent of actual machine/device creation code.
We've got away without it thus far because the only real place where we have
nontrivial user-specified machine variants is on the PCI bus. Devices there
are for the most part self-describing so the guest firmware/OS can probe
hardware itself.
Paul
next prev parent reply other threads:[~2011-07-01 12:52 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-30 15:59 [Qemu-devel] device assignment for embedded Power Yoder Stuart-B08248
2011-07-01 0:58 ` Benjamin Herrenschmidt
2011-07-01 11:40 ` Alexander Graf
2011-07-01 12:13 ` Anthony Liguori
2011-07-01 12:10 ` Anthony Liguori
2011-07-01 12:52 ` Paul Brook [this message]
2011-07-01 13:33 ` Anthony Liguori
2011-07-01 16:43 ` Scott Wood
2011-07-01 17:03 ` Paul Brook
2011-07-01 17:49 ` Scott Wood
2011-07-01 20:59 ` Paul Brook
2011-07-01 21:51 ` Scott Wood
2011-07-01 23:33 ` Paul Brook
2011-07-01 23:05 ` Benjamin Herrenschmidt
2011-07-01 23:50 ` Paul Brook
2011-07-02 2:17 ` Alexander Graf
2011-07-02 11:45 ` Paul Brook
2011-07-01 22:35 ` Anthony Liguori
2011-07-01 22:32 ` Anthony Liguori
2011-07-05 18:16 ` Scott Wood
2011-07-01 16:34 ` Scott Wood
2011-07-05 18:19 ` Yoder Stuart-B08248
2011-07-05 22:23 ` Alexander Graf
2011-07-01 11:16 ` Paul Brook
2011-07-01 11:33 ` Alexander Graf
2011-07-01 11:55 ` Paul Brook
2011-07-01 12:02 ` Alexander Graf
2011-07-01 12:14 ` Anthony Liguori
2011-07-01 17:51 ` Scott Wood
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=201107011352.37482.paul@codesourcery.com \
--to=paul@codesourcery.com \
--cc=B07421@freescale.com \
--cc=B08248@freescale.com \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=armbru@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=dwg@au1.ibm.com \
--cc=joerg.roedel@amd.com \
--cc=qemu-devel@nongnu.org \
/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).