QEMU emulates I2C devices in software but currently cannot pass
through real I2C devices from the host to the guest. It would be
useful to access real I2C devices from inside the guest, for example
for developers writing and testing software under QEMU on their
computer.
The project consists of the following tasks:
* Implement -object i2c-bus-passthrough,adapter=N,id=my-i2c-bus
* Add i2c-bus-passthrough support to at least 1 existing emulated I2C controller
* Implement micro:bit TWI controller emulation on the nRF51 system-on-chip
This project will allow you to learn about the I2C bus and how to
write device emulation code in QEMU. You will enjoy it if you like
working with physical hardware.
'''Links:'''
* [https://en.wikipedia.org/wiki/I%C2%B2C I2C wikipedia page]
* [https://elinux.org/Interfacing_with_I2C_Devices Overview of Linux
I2C programming interfaces]
*
[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/i2c/dev-interface
Linux I2C userspace interface documentation]
'''Details:'''
* Skill level: intermediate
* Language: C
* Mentor: Paolo Bonzini <address@hidden> ("bonzini" on IRC),
Stefan Hajnoczi <address@hidden> ("stefanha" on IRC)