The S4112F-ON switch has 12 SFP+ ports; we are using several of them. My goal is to access the EEPROM on ALL the SFPs on the switch via their i2c interface with i2c-tools (linux) and ultimately open optical monitoring (OOM) or a derivation of that capability. The OOM tools are segfaulting when run after installation of the optoe
driver (the driver installs successfully) -- this is why I am working in a more direct way.
Right now the i2c addresses 0x50 and 0x51 can be accessed, but they point to a specific SFP+ EEPROM. Address 0x70 (in use by the driver) is a multiplexer whose control register determines WHICH SFP is accessed via 0x50 and 0x51 (I think).
root@OPX:/home/admin# i2cdetect -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: UU -- -- -- -- -- -- --
Any changes to the control register (via i2cset
) are failing to take effect without an error message. I suppose this is interferrence from the driver OR because i2cset does NOT guarantee it will work...
root@OPX:/home/admin# i2cget -f -y 4 0x70 0x00
0x04
root@OPX:/home/admin# i2cset -f -y 4 0x70 0x00 0x05
root@OPX:/home/admin# i2cget -f -y 4 0x70 0x00
0x04
The i2c driver (part of the OPX install), presents access points via linux's sysfs
"API" but I am unclear how this interface allows access to the EEPROMs.
I am looking for a solution to SWITCH the SFP that the i2c registers are accessing. Any insight would be super helpful. Thanks.