From: Paolo Bonzini <pbonzini@redhat.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>,
Alex Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] virtio-blk-pci: how to tell if it is CD or HDD?
Date: Thu, 17 Oct 2013 14:54:30 +0200 [thread overview]
Message-ID: <525FDE06.1000609@redhat.com> (raw)
In-Reply-To: <525FDA47.9050306@ozlabs.ru>
Il 17/10/2013 14:38, Alexey Kardashevskiy ha scritto:
> qdev_get_fw_dev_path:
> /spapr-vio-bridge/spapr-vscsi/channel@0/disk@3,2 suffix=(null)
> /spapr-vio-bridge/spapr-vscsi/channel@0/disk@3,1 suffix=(null)
You need to implement qdev_fw_get_path to change
spapr-vio-bridge -> vdevice
spapr-vscsi -> v-scsi@REG
> /pci@800000020000000/ethernet@1 suffix=/ethernet-phy@0
The extra suffix is not a problem since you can parse a prefix successfully.
> /pci@800000020000000/scsi@0/channel@0/disk@3,2 suffix=(null)
> /pci@800000020000000/scsi@0/channel@0/disk@3,1 suffix=(null)
I guess this is virtio-scsi.
> SLOF:
> 0 > devalias
> cdrom123 : /pci@800000020000000/scsi@0/disk@103000100000000
> cdrom12 : /pci@800000020000000/scsi@0/disk@103000200000000
> hvterm : /vdevice/vty@71000100
> net : /pci@800000020000000/ethernet@1
> scsi : /vdevice/v-scsi@71000001
> cdrom1 : /vdevice/v-scsi@71000001/disk@8301000000000000
> cdrom : /vdevice/v-scsi@71000001/disk@8302000000000000
> nvram : /vdevice/nvram@71000000 ok
>
>
> In ideal world I would want to get in QEMU what SLOF can understand and
> pass this to SLOF. But QEMU APIs return something which cannot be converted
> straight away.
>
> Or I could simply put bootindex to the device tree nodes (as
> "qemu,bootindex") but in this case "wildcard" nodes support fails as there
> is just a single node "/vdevice/v-scsi@71000001/disk" in the device tree
> for all LUNs. And we definitely do not want to create nodes for all disk
> devices.
>
> Or I can implement a "smart" converter from QEMU strings to OF pathnames.
>
> Or I can implement third set of callbacks, something like qdev_OF_dev_path().
>
> Or not support "bootindex" at all.
>
> All possibilities suck but which one sucks less? :) Thanks!
In general, try to make QEMU produce SLOF APIs by modifying the devices
that instantiate the buses.
On top of this, fix the remaining QEMU->OF differences using a callback
in QEMUMachine. This callback would be called by
qdev_get_fw_dev_path_helper and, if it returns something non-NULL, the
result would be used instead of calling bus_get_fw_dev_path.
> btw what format does qdev_get_fw_dev_path() use? This is not OF1275 so what
> is it?
It is based on open-firmware. For SCSI however openfirmware had
"disk@TARGET,LUN" but that does not include the channel.
Paolo
next prev parent reply other threads:[~2013-10-17 12:54 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-16 5:04 [Qemu-devel] virtio-blk-pci: how to tell if it is CD or HDD? Alexey Kardashevskiy
2013-10-16 6:36 ` Paolo Bonzini
2013-10-16 7:59 ` Alexey Kardashevskiy
2013-10-17 12:38 ` Alexey Kardashevskiy
2013-10-17 12:54 ` Paolo Bonzini [this message]
2013-10-17 13:02 ` Alexander Graf
2013-10-17 13:36 ` Alexey Kardashevskiy
2013-10-17 13:49 ` Paolo Bonzini
2013-10-17 13:09 ` Alexey Kardashevskiy
2013-10-17 13:48 ` Paolo Bonzini
2013-10-18 4:56 ` Nikunj A Dadhania
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=525FDE06.1000609@redhat.com \
--to=pbonzini@redhat.com \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=nikunj@linux.vnet.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.