Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create I2C device functionality for control of devices by SM/Zynq data path #210

Open
pwittich opened this issue Feb 20, 2024 · 1 comment

Comments

@pwittich
Copy link
Contributor

pwittich commented Feb 20, 2024

We need to create a I2C device functionality that will allow the MCU to relay commands from the Zynq via I2C for configuration and reading of registers on various devices that only the Zynq MCU has access to.

These devices include

  • Firefly devices
  • LGA80D Dc/DC converters
  • clock chips
  • the MCU itself

The Zynq would initiate a command, which the MCU would read (high priority interrupt), get the necessary information (either from MCU memory or via an explicit I2C r/w to the attached I2C busses), and then put the information on the bus back to the Zynq, possibly delaying the response to the zynq (I2C clock stretching?).

The first blush proposal is to support I2C registered access only with a fixed data size (8 bit addresses, 16 bit data). Expand the address space with pages as is customary with I2C devices.

Page Information
0 Frequent baseline information.
1 LGA80D devices
2-2+20 Firefly devices -- one page per device?
23 - 23+5 Clock devices
@pwittich
Copy link
Contributor Author

Can use the base I2CSlaveTask for this purpose, making the changes to expand it beyond the basic single-use I2C device from the IPMC, as outlined here. I guess the additional change would be that it needs to be configurable on the size of the data?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant