PL i2c with Petalinux is significantly slower respect to Embedded version
I am working on a design that from the PS assert an interrupt to a Microblaze. The latter is responsible of controlling an AXI IIC controller that reads from a I2C device.
I have, at first, started working on an embedded environment where both PS and Microblaze run a bare-metal application. This worked fine as I could fetch data from the I2C bus properly (4800 samples in 1.4s, I don't think is the best achievable performance, but it's fine right now).
After this step I changed the PS implementation migrating to PetaLinux. I did not touch the Microblaze implementation at all. With this setup the data collection from I2C takes around 19s, which is much more.
I have collected the times above by using an AXI timer attached to Microblaze and I have measured the clock cycles, and multiplied such a number by the Microblaze Frequency (150MHz).
I can't tell why this is happening, I suspect it may be related to Linux that tries to save energy.
You can find a picture of the design in the attachment (Some components of the original design have been stripped out).