Thanks. I tryed. Here are 2 commands for example: find /sys/kernel/debug/i40e/ -name command -exec sh -c 'echo "write 0x000881e0 0x05a01234" > {}' {} ';' find /sys/kernel/debug/i40e/ -name command -exec sh -c 'echo "read 0x000881e0 " > {}' {} ';' Below is the result from the dmesg buffer: [89780.472266] i40e 0000:02:00.1: write: 0x000881e0 = 0x05a00d00 [89780.474727] i40e 0000:02:00.0: write: 0x000881e0 = 0x05a01234 [89780.479131] i40e 0000:02:00.1: read: 0x000881e0 = 0xa5a01234 [89780.481625] i40e 0000:02:00.0: read: 0x000881e0 = 0xa5a01234
I have disconnected qsfp Trancievers and I saw at the same result. It means I wrote nothing to the QSFP Tranciever. Please advise how can I advance? Thank you -----Original Message----- From: Rose, Gregory V [mailto:gregory.v.r...@intel.com] Sent: Monday, May 18, 2015 8:30 PM To: Vladimir Levintovich; e1000-devel@lists.sourceforge.net Subject: RE: Programming i2c interface on XL710 > -----Original Message----- > From: Vladimir Levintovich [mailto:vladim...@silicom.co.il] > Sent: Monday, May 18, 2015 9:07 AM > To: e1000-devel@lists.sourceforge.net > Subject: [E1000-devel] Programming i2c interface on XL710 > > Hi guys, > > Is someone have an experience with programming i2c interface on XL710? > > I need to test QSFP+ 10 Gbs 4X Pluggable Transceiver (FTL410QD2C) , i.e. > to write something data, read that and also to test Acknowledge. > Device code of this transceiver is 1010000 R/W. > > According to XL710 data sheet, I need to write/read to/from register > GLGEN_I2CCMD0 (offset 0x000881E0). > I perform it using some utility. Here are 2 commands for example: > find /sys/kernel/debug/i40e/ -name command -exec sh -c 'echo "write > 0x000881e0 0x20a05a5a" > {}' {} ';' > find /sys/kernel/debug/i40e/ -name command -exec sh -c 'echo "write > 0x000881e0 0x28a00000" > {}' {} ';' > find /sys/kernel/debug/i40e/ -name command -exec sh -c 'echo "read > 0x000881e0 " > {}' {} ';' > > How do I need to write/read to/from this register properly? It appears that you've written 0x5a5a to register 0xA0 and then are reading the value back. What makes you think you haven't done it correctly? > I don't understand what is filed REGADD and PHYADD (chapter 11.2..2.1.14)? I'm no expert on I2C programming but it appears the REGADD field is the offset of one of the registers - in your example above it is 0xA0. The PHYADD bits are refer to the device address - it says it should be 1010b. It is a bit confusing because the field is 3 bits but the default value they mention is 4 bits. From your example above it appears you're using the value 000b. Perhaps changing it 101b might help? Thanks, - Greg ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired