New Sensor for Xilinx Versal Sysmon Interface

Dear IPMC Experts,

I am attempting to implement a sensor to read the temperature of a Xilinx versal FPGA via the sysmon interface (for ATLAS L0 Global GCM project).

I have found
https://cern-ipmc-forum.web.cern.ch/t/ipmc-reading-data-from-xilinx-fpga-using-sysmon/98 , https://cern-ipmc-forum.web.cern.ch/t/re-cern-ipmc-question/199 and https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-project/-/blob/master/ipmc-sensors/sensor_xcvu125.c?ref_type=heads for the ultrascale platform but unfortunately Xilinx have moved from a 32b command to a 56b command https://adaptivesupport.amd.com/s/article/Versal-Sysmon-Using-I2C?language=en_US .

From the the above references I have pieced together https://gitlab.cern.ch/atlas-tdaq-p2-firmware/global-trigger/ipmc/-/merge_requests/7/diffs but have not tested in HW yet as I got cold feet using undocumented functions which are presumably usually abstracted for a good reason.

I want to ask if you have a suggestion of the best way to proceed adding this sensor? Is it better to ask you to add a i2c_dev_read_7bytesReg function ?

Kind regards

Rhys

Hello Rhys,

your code looks ok, I think this should work. However I’m afraid we can’t test this ourselves, since we don’t have any hardware with an IPMC and a Versal FPGA connected by I2C. So you will have to try it on your hardware. Please let me know how it goes. I would also like to add your sensor driver to the ipmc-project repository so that others may profit from this (like for the xcvu125 sensor driver).

cheers,

Stefan