Re: [PATCH] i2c: virtio: add a virtio i2c frontend driver

Jason Wang
2020-09-04T03:39:10Z

On 2020/9/3 下午3:19, Jie Deng wrote:
>
> On 2020/9/3 14:12, Jason Wang wrote:
>>
>> On 2020/9/3 下午1:34, Jie Deng wrote:
>>> Add an I2C bus driver for virtio para-virtualization.
>>>
>>> The controller can be emulated by the backend driver in
>>> any device model software by following the virtio protocol.
>>>
>>> This driver communicates with the backend driver through a
>>> virtio I2C message structure which includes following parts:
>>>
>>> - Header: i2c_msg addr, flags, len.
>>> - Data buffer: the pointer to the i2c msg data.
>>> - Status: the processing result from the backend.
>>>
>>> People may implement different backend drivers to emulate
>>> different controllers according to their needs. A backend
>>> example can be found in the device model of the open source
>>> project ACRN. For more information, please refer to
>>> https://projectacrn.org.
>>
>>
>> May I know the reason why don't you use i2c or virtio directly?
>>
> We don't want to add virtio drivers for every I2C devices in the guests.
> This bus driver is designed to provide a way to flexibly expose the
> physical
> I2C slave devices to the guest without adding or changing the drivers
> of the
> I2C slave devices in the guest OS.

Ok, if I understand this correctly, this is virtio transport of i2c
message (similar to virtio-scsi).

>
>
>>
>>>
>>> The virtio device ID 34 is used for this I2C adpter since IDs
>>> before 34 have been reserved by other virtio devices.
>>
>>
>> Is there a link to the spec patch?
>>
>> Thanks
>>
> I haven't submitted the patch to reserve the ID in spec yet.
> I write the ID here because I want to see your opinions first.

It would be helpful to send a spec draft for early review.

Thanks

>
> Thanks
>
>