On Mon, Aug 02, 2021 at 11:03:22PM +0000, Shengtan Mao wrote:
> This patch implements the remote I2C device.
> The remote I2C device allows an external I2C device to communicate with the I2C controller in QEMU through the remote I2C protocol.
> Users no longer have to directly modify QEMU to add new I2C devices and can instead implement the emulated device externally and connect it to the remote I2C device.
I apologise, I haven't had time to look at this, and I'm going to be
really busy for a little while.
I looked it over a bit, and is there some description of the protocol?
Could you add a reference to it in the code?
-corey
>
> Previous work by Wolfram Sang (https://git.kernel.org/pub/scm/virt/qemu/wsa/qemu.git/commit/?h=i2c-passthrough) was referenced.
> It shares the similar idea of redirecting the actual I2C device functionalities, but Sang focuses on physical devices, and we focus on emulated devices.
> The work by Sang mainly utilizes file descriptors while ours utilizes character devices, which offers better support for emulated devices.
> The work by Sang is not meant to offer full I2C device support; it only implements the receive functionality.
> Our work implements full support for I2C devices: send, recv, and event (match_and_add is not applicable for external devices).
>
> Shengtan Mao (1):
> hw/i2c: add remote I2C device
>
> hw/arm/Kconfig | 1 +
> hw/i2c/Kconfig | 4 +
> hw/i2c/meson.build | 1 +
> hw/i2c/remote-i2c.c | 117 ++++++++++++++++++
> tests/qtest/meson.build | 1 +
> tests/qtest/remote-i2c-test.c | 216 ++++++++++++++++++++++++++++++++++
> 6 files changed, 340 insertions(+)
> create mode 100644 hw/i2c/remote-i2c.c
> create mode 100644 tests/qtest/remote-i2c-test.c
>
> --
> 2.32.0.554.ge1b32706d8-goog
>