Re: [virtio-dev] [PATCH] transitional issues: add new IDs for all devices

From
Rusty Russell <>
Date
2013-10-02T04:40:24+00:00
ID
Thread
Re: [virtio-dev] [PATCH] transitional issues: add new IDs for all devices
"Michael S. Tsirkin" <> writes:
> On Thu, Sep 26, 2013 at 11:35:53AM +0930, Rusty Russell wrote:
>> How about a PCI note something like:
>> 
>>         If a device does not support legacy mode, and is on a platform
>>         where a legacy device with the same ID has previously existed,
>>         it MUST take the following steps to fail gracefully when a
>>         legacy driver attempts to drive it:
>> 
>>         1) Present no I/O BAR, and no BAR 0, OR
>>         2) Respond to a single-byte zero write to offset 18 of any I/O
>>            BAR or BAR0 by presenting zeroes on every BAR and ignoring
>>            writes.
>> 
>> This means it presents 0 virtqueues; at the very least, it makes the
>> device harmless.
>> 
>> Note that I didn't specify that it should only be the first write: think
>> of the kexec case, where an OS crash causes an older OS to come in and
>> try to reset the device...
>> 
>> Would that work?
>> Rusty.
>
> So I guess we can also suggest revision id > 0 for pci
> and > 1 for mmio for non transitional devices.

Only if mmio changes its layout in an incompatible way: that's not
confimed yet.  Otherwise there's no reason to worry about older drivers
as the device can fail gracefully when feature 32 isn't acknowledged.

> At least with recent windows drivers, this will be enough
> to not make them bind, and it will also work for
> linux drivers.
>
> Question: what to do if we want do create a non transitional
> device on ccw?

I think they're happy with their current layout, but I leave this to
Cornelia (CC'd, but she's still away).

Cheers,
Rusty.