So I've sent
@fohdeesha a couple PM's on the subject of trying to convert/re-code my ipolex 10G SFP+ RJ45 copper transceivers to official Brocade in my ICX6450-24P. While I await his reply I figured I'd post here in case anyone else can help. These are the optics I am working with:
https://www.amazon.com/gp/product/B08NW1VBX6/
Here is what I get at the terminal when I show media:
SSH@switch(config)#show media ethernet 1/2/1
Port 1/2/1: Type : 10GE SR 300m ((SFP+))
Vendor: OEM Version: 02
Part# : SFP-10G-SR Serial#: CSF101L33816
I suspect that the eeprom may be unlocked because it looks like ipolex just copied the eeprom flash from a Cisco SFP-10G-SR and substituted Cicsco with "OEM." Obviously they are not Cisco, are not 300m, and are not 10GBASE SFP+. They are ipolex 10GBASE-T modules with RJ-45.
I'm trying to figure out if I can write to them or not using i2c. So far I have not been able to figure out the context. Firstly I looked at the post where he figured out how to recode the monoprice passive copper cables here and also several other posts.
Unfortunately, on the 6450 at the serial debug console "i2c read" is not a recognized command. In fact there are very few i2c commands here on the 6450 as far as I can tell using help or ?. That seems to be a dead end.
So next I looked at
@fohdeesha's hidden dm menu inside enable config terminal. There are also some i2c commands their, but none of the seem helpful either.
Finally I used
@fohdeesha's guide on "Hidden Brocade Dev Stuff" and then used "Hidden Bootloader Modes." This has proven to provide some answers. However, I cannot figure out the correct context. This is what I got so far inside the hidden bootloader.
ICX64XX-boot>> help i2cprobe
i2cprobe <device>
- probe special i2c device id
device : Valid devices are <pd69000|info_eeprom|sfp_port1|sfp_port2|sfp_port3|sfp_port4s
|cpld|rtc|pca9535_sfp|pca9535_led|pca9535_led_stack|pca9535_id|hwm>
ICX64XX-boot>> i2cprobe sfp_port1
I2C has probe the SFP Port 1.(Reg0=0x03)
loop: 1
i2cprobe PASS
ICX64XX-boot>>
We can see that the optics show up in SFP Port 1 and 3 using this command. In this hidden bootloader there is indeed an i2c read function, but this is where I am not sure about the correct syntax.
ICX64XX-boot>> help i2cread
i2cread <devAddr> <reg_addr> <addrlen> <get_len>
- Get special i2c device id
devAddr : I2C device address
reg_addr : I2c device register
addrlen : I2C device address size, [0/1/2] byte
get_len : Get data bytes
I have tried many variables for all of the switches above, but not to my surprise, nothing has worked. Here are some examples of my trials. Many don't make a lot of sense, but I was throwing the kitchen sink at it:
ICX64XX-boot>> i2cread 0=0x03 1 0 256
i2c read length fail (getLen=256)
ICX64XX-boot>> i2cread 0=0x03 1/2/1 0 FF
TWSI: mvTwsiRead: 977: mvTwsiAddrSet failed
i2c_halRead fail (ret=-200)
ICX64XX-boot>> i2cread 0 0x03 1/2/1 0 256
i2c_halRead fail (ret=-200)
ICX64XX-boot>> i2cread 0 0x03 0 256
i2c_halRead fail (ret=-200)
ICX64XX-boot>> i2cread 0 0x03 0 0 256
i2c_halRead fail (ret=-200)
ICX64XX-boot>> i2cread 0 0x03 1 0 256
i2c_halRead fail (ret=-200)
ICX64XX-boot>> i2cread 0 0x03 2 0 256
i2c_halRead fail (ret=-200)
ICX64XX-boot>> i2cread 0=0x03 1/2/1 0 256
i2c read length fail (getLen=256)
So what exactly is the syntax for devAddr (I2C device address), reg_addr (I2c device register), addrlen (I2C device address size) or do I even need to specify this one, and of course get_len (Get data bytes)? It was super late and I was really tired when I tried all this so it's a bit fuzzy already... I may have also been a bit inebriated
Assuming I can figure out how to read the eeprom, after I back it up, I would then like to try and write one byte to see if it's unlocked. Anybody know the commands to write?
Thanks all,
craigr