This task will refactor the kernel driver
i2c-bcm2708, the low-level i2c driver on the raspberry pi 3.
The refactoring is aimed at isolating the I2C I/O address space accesses (both reads and writes) into a set of functions that have no Linux kernel dependency. These will eventually be moved into a uobject and accessed via hypercalls to protect the I2C I/O range access from the guest OS.
The following was the identified flow for the
i2c-dev read call that we had discussed previously in this post: üApp: picar-s: add HMAC-SHA256 message authentication code between app and i2c driver
This might be a good place to start when attempting to begin the refactoring.
The eventual idea is that the picar-s should still follow the line-following with the refactoring that will be accomplished by this task.
We should disable any interrupts in the
i2c-bcm2708 device driver (if enabled) and use polling.