qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Marcelo Tosatti <mtosatti@redhat.com>
To: qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [RFC] Machine description as data
Date: Thu, 12 Feb 2009 16:09:25 -0200	[thread overview]
Message-ID: <20090212180925.GA18971@amt.cnet> (raw)
In-Reply-To: <200902121607.39588.paul@codesourcery.com>

On Thu, Feb 12, 2009 at 04:07:39PM +0000, Paul Brook wrote:
> > * Point me to the FDT code I'm supposed to integrate.  I'm looking for
> >   basic decorated tree stuff: create trees, traverse them, get and put
> >   properties, add and delete nodes, read and write them as plain,
> >   human-readable text.
> 
> I've been threatening to merge my FDT code for a while, but haven't got round 
> to it.  I've attached A drop of my current code, along with a bunch of 
> example devices (I haven't yet converted any of the current machines). 
> The basic strategy is the devices should only have deal with this interface, 
> and not with teh config structures or the rest of qemu directly. Register 
> windows and interrupts are converted, but things like DMA accesses still use 
> the old interfaces.
> 
> Most of the devices (e.g. the serial port) support both new and old init 
> methods. A few (e.g. nand controller) are pure devtree based devices.
> 
> Paul

Ok, so a few questions:

- Should host side parameters live inside particular device nodes, as
  properties? (or to what extent). For example (from early brainstorm
  Markus wrote).

/ {
        model = "pc";                   // -M
        cpus {
                model = "coreduo";      // -cpu
                smp = 2;                // -smp
        }
    // PCI host bridge @domain:bus
        pci@0000:00 {
                // devices on this bus @device.function
                device@1 {              // PIIX3
                        model = "PIIX3";
                        ata {
                                device@0 {
                                        device_type = "disk";
                                        drive {
                                                format = "raw";
                                                file = "/var/lib/libvirt/images/hd.img"
                                                cache = "none";
                                        };
                                                
                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

There is a mapping between QEMUDevice <-> disk (1:1). See
dt_piix3_config/dt_drive_config on Markus's code. Oh:

    if (dc->has_chardev) {
        int n;
        propstr = fdt_getprop_string(dt, node, "chardev");
        if (propstr) {
            i = sscanf(propstr, "serial%d", &n);
            if (i == 1 && n >= 0 && n < MAX_SERIAL_PORTS)
                d->chardev = serial_hds[n];
        }
    }

Can you show a working example tree?

OTOH vlans and nics have a QEMUDevice -> vlan mapping (vlans are not
part of the emulated hardware device tree). Where they belong?

For starters, for i386, one can append command line parameters to a
static tree containing basic PIIX hw, then have the board code (pc.c)
use that.

But both prototypes look similar in essence. I can't find QEMUDevice
linked in a tree in your code though. It should be possible to, for
example, hot add a PCI device, link it in, and dump the updated tree
with a monitor command.

  parent reply	other threads:[~2009-02-12 18:09 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-11 15:40 [Qemu-devel] [RFC] Machine description as data Markus Armbruster
2009-02-11 16:31 ` Ian Jackson
2009-02-11 17:43   ` Markus Armbruster
2009-02-11 18:57   ` Hollis Blanchard
2009-02-12  3:50     ` David Gibson
2009-02-11 18:50 ` Hollis Blanchard
2009-02-11 19:34   ` Blue Swirl
2009-02-12  4:01   ` David Gibson
2009-02-12 10:26     ` Markus Armbruster
2009-02-12 12:49       ` Carl-Daniel Hailfinger
2009-02-12 16:46         ` M. Warner Losh
2009-02-12 18:29           ` Markus Armbruster
2009-02-12 23:58             ` Carl-Daniel Hailfinger
2009-02-13 11:19               ` Markus Armbruster
2009-02-13  1:05             ` David Gibson
2009-02-12 23:35           ` Carl-Daniel Hailfinger
2009-02-12 23:58             ` Paul Brook
2009-02-13  0:32               ` Carl-Daniel Hailfinger
2009-02-13  0:47                 ` Jamie Lokier
2009-02-13  1:46                 ` David Gibson
2009-02-13 14:32                 ` Lennart Sorensen
2009-02-13  0:05             ` M. Warner Losh
2009-02-12 17:52       ` Hollis Blanchard
2009-02-12 18:53         ` Markus Armbruster
2009-02-12 19:33           ` Mitch Bradley
2009-02-13  0:59             ` David Gibson
2009-02-13  1:00         ` David Gibson
2009-02-13  0:43       ` David Gibson
2009-02-13  2:11         ` Carl-Daniel Hailfinger
2009-02-13  2:17           ` David Gibson
2009-02-13  2:45             ` DTS syntax and DTC patches (was: Re: [Qemu-devel] [RFC] Machine description as data) Carl-Daniel Hailfinger
2009-02-13  2:51               ` David Gibson
2009-02-13 20:04           ` [Qemu-devel] [RFC] Machine description as data Jon Loeliger
2009-02-13 20:15             ` Carl-Daniel Hailfinger
2009-02-13 20:19               ` Jon Loeliger
2009-02-12 10:26   ` Markus Armbruster
2009-02-12 12:36     ` Carl-Daniel Hailfinger
2009-02-12 16:07     ` Paul Brook
2009-02-12 17:17       ` Blue Swirl
2009-02-12 18:09       ` Marcelo Tosatti [this message]
2009-02-13  0:37     ` David Gibson
2009-02-13 11:26       ` Markus Armbruster
2009-02-13 12:06         ` Paul Brook
2009-02-13 12:48           ` Markus Armbruster
2009-02-13 13:33             ` Paul Brook
2009-02-13 14:13               ` Markus Armbruster
2009-02-13 14:25                 ` Paul Brook
2009-02-13 15:47                   ` Jamie Lokier
2009-02-13 18:36                 ` Mitch Bradley
2009-02-13 19:49                   ` Markus Armbruster
2009-02-13 19:51                     ` Mitch Bradley
2009-02-16  3:42         ` David Gibson
2009-02-16 16:39           ` Markus Armbruster
2009-02-17  3:29             ` David Gibson
2009-02-17  7:54               ` Markus Armbruster
2009-02-17 17:44               ` Paul Brook
2009-02-18  8:36                 ` Markus Armbruster
2009-02-11 19:01 ` Anthony Liguori
2009-02-11 19:36   ` Blue Swirl
2009-02-11 19:56     ` Anthony Liguori
2009-02-12 10:25       ` Markus Armbruster
2009-02-16 16:22 ` [Qemu-devel] Machine description as data prototype, take 2 (was: [RFC] Machine description as data) Markus Armbruster
2009-02-17 17:32   ` Paul Brook
2009-02-18  8:42     ` [Qemu-devel] Machine description as data prototype, take 2 Markus Armbruster
2009-02-19 10:29 ` [Qemu-devel] Machine description as data prototype, take 3 (was: [RFC] Machine description as data) Markus Armbruster
2009-02-19 13:53   ` Paul Brook
2009-02-19 14:55     ` [Qemu-devel] Machine description as data prototype, take 3 Markus Armbruster
2009-02-19 15:03       ` Paul Brook
2009-02-19 14:36   ` Anthony Liguori
2009-02-19 15:00     ` Markus Armbruster
2009-02-19 14:49   ` Anthony Liguori
2009-02-23 17:38     ` Markus Armbruster
2009-02-23 18:58       ` Anthony Liguori
2009-02-24  9:08         ` Markus Armbruster
2009-02-19 16:40   ` [Qemu-devel] Machine description as data prototype, take 3 (was: [RFC] Machine description as data) Blue Swirl
2009-02-19 18:30     ` [Qemu-devel] Machine description as data prototype, take 3 Markus Armbruster
2009-02-20 18:14       ` Blue Swirl
2009-02-20 18:20         ` Paul Brook
2009-02-23 12:00           ` Markus Armbruster
2009-02-23 12:18         ` Markus Armbruster
2009-02-23 18:00 ` [Qemu-devel] Machine description as data prototype, take 4 (was: [RFC] Machine description as data) Markus Armbruster
2009-02-24 20:06   ` Blue Swirl
2009-02-25 12:13     ` [Qemu-devel] Machine description as data prototype, take 4 Markus Armbruster
2009-02-25 20:11       ` Blue Swirl
2009-03-03 17:46 ` [Qemu-devel] Machine description as data prototype, take 5 (was: [RFC] Machine description as data) Markus Armbruster
2009-03-12 18:43 ` [Qemu-devel] Machine description as data prototype, take 6 " Markus Armbruster
2009-03-17 16:06   ` [Qemu-devel] Machine description as data prototype, take 6 Paul Brook
2009-03-17 17:32     ` Markus Armbruster
2009-03-23 15:50 ` [Qemu-devel] Re: [RFC] Machine description as data Markus Armbruster
2009-03-23 15:53   ` Markus Armbruster
2009-03-31  9:16 ` Markus Armbruster
2009-04-17 16:04 ` Markus Armbruster

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=20090212180925.GA18971@amt.cnet \
    --to=mtosatti@redhat.com \
    --cc=armbru@redhat.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).