[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 03/15] qdev: Allow device addressing via 'dri
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH v2 03/15] qdev: Allow device addressing via 'driver.instance' |
Date: |
Sat, 29 May 2010 10:09:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
Markus Armbruster wrote:
> Jan Kiszka <address@hidden> writes:
>
>> From: Jan Kiszka <address@hidden>
>>
>> Extend qbus_find_dev to allow addressing of devices without an unique id
>> via an optional per-bus instance number. The new formats are
>> 'driver.instance' and 'alias.instance'.
>>
>> Signed-off-by: Jan Kiszka <address@hidden>
>> ---
>> docs/qdev-device-use.txt | 12 +++++++++++-
>> hw/qdev.c | 23 ++++++++++++++++++-----
>> 2 files changed, 29 insertions(+), 6 deletions(-)
>>
>> diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt
>> index 9ac1fa1..5939481 100644
>> --- a/docs/qdev-device-use.txt
>> +++ b/docs/qdev-device-use.txt
>> @@ -1,6 +1,6 @@
>> = How to convert to -device & friends =
>>
>> -=== Specifying Bus and Address on Bus ===
>> +=== Specifying Bus, Address on Bus, and Devices ===
>>
>> In qdev, each device has a parent bus. Some devices provide one or
>> more buses for children. You can specify a device's parent bus with
>> @@ -24,6 +24,16 @@ Furthermore, if a device only hosts a single bus, the bus
>> name can be
>> omitted in the path. Example: /i440FX-pcihost/PIIX3 abbreviates
>> /i440FX-pcihost/pci.0/PIIX3/isa.0 as none of the buses has siblings.
>>
>> +Existing devices can be addressed either via a unique ID if it was
>> +assigned during creation or via the device tree path:
>> +
>> +/full_bus_address/driver_name[.instance_number]
>> + or
>> +abbreviated_bus_address/driver_name[.instance_number]
>> +
>> +Example: /i440FX-pcihost/pci.0/e1000.2 addresses the second e1000
>> +adapter on the bus 'pci.0'.
>> +
>> Note: the USB device address can't be controlled at this time.
>
> "instance number" isn't defined in this document.
True, only implicitly via the example.
>
> I understand the problem you're trying to solve; I've had it myself many
> times. But is inventing an instance number the right solution?
>
> The two e1000 devices already have a perfectly fine unique identifier on
> their bus: their bus address. What about recognizing bus addresses in
> paths? Requires a suitable restriction on device names and IDs to avoid
> ambiguity, say "start with letter".
>
> qdev currently doesn't abstract bus addresses, but that's fixable.
You would also have to specify unique addressing scheme to those buses
that do not have it yet. E.g. what should be the address of a ISA bus
device? The base of its first ioport range? But if it does not have any
as it only injects ISA IRQs?
Jan
signature.asc
Description: OpenPGP digital signature
[Qemu-devel] [PATCH v2 04/15] qdev: Convert device and bus lists to QTAILQ, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 05/15] qdev: Allow device specification by qtree path for device_del, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 07/15] monitor: Add completion for qdev paths, Jan Kiszka, 2010/05/22
[Qemu-devel] [PATCH v2 11/15] monitor: return length of printed string via monitor_[v]printf, Jan Kiszka, 2010/05/22