SFP Programming
Bron: [1]
Making SFP Mini-GBIC's HP ProCurve compatible using a HP ProCurve switch - Some quick notes
Successful was:
- Altering the EEPROM from a 1000BASE-LX and 1000BASE-SX SFP from a HP ProCurve 2824 so it works in HP switches
- Flashing old HP ProCurve SFP's (J4858A, J4859A, J4860A) so they work in new HP switches
Knowning issues:
- When the SFP enforces 'write protection' you cannot flash it from the switch. See: http://www.schelto.com/SFP/SFP%20MSA%20091400.htm "The SFP transceiver may enforce this by using the write protect features of the CMOS E2PROM."
- HP ProCurve 2626 has 'BENCH' mode but cannot write anything to SFP's. Only 28xx seem to work.
Used hardware:
- HP ProCurve 2824 switch (has bench-mode)
- HP ProCurve 2510G-24 switch (does not have bench-mode)
- FINISAR FTRJ-1319-7D 1000BASE-LX Mini-GBIC SFP (x2)
All of the HP ProCurve bench-mode commands:
What's the problem?
The HP ProCurve 2510 switch does not support the Finisar SFP, using a HP ProCurve 2824 switch I have been able to alter some information in the SFP's EEPROM and make the SFP work in the 2510 switch.
When the unaltered SFP is inserted into the 2510 switch, the SFP-port's led on the front of the switch blinks indefinitely, meaning there is something "wrong" with the SFP. The log also shows this:
W 01/01/90 00:02:41 FFI: port 24 This switch only supports revision B and above transceivers.
According to HP only the SFP mentioned in this matrix should work:
http://cdn.procurve.com/training/Manuals/Mini-GBIC-Support-Jul2008.pdf
How to fix it:
- Use a HP switch that is "bench-mode" capable. I know the HP 28xx and 26xx series have this. In this case I have used the 2824. (Update: flashing does not work in 26xx switches)
- Remove the top-cover of the switch.
- Place a jumper on the pins with "BENCH" written next to it.
- Boot it up and use the serial console port to interface with the switch.
- Once booted up, you need to press enter twice and you will see a prompt.
- In the prompt type 'st_jump_pc' and wait a few seconds.
- What we need todo now is figure out what the "HPID Calculation" is. The HP switch uses this ID to check if the SFP is "okay". The ID is calculated using the vendor serial number, date code etc.
- Use this command to see what the ID sould be:
- physhow 24 a
- Where '24' is the port-number.
- You can find something like this:
- HPID Calculation: 0x99a34e36
- The calculated ID should be stored in the EEPROM's registers 380 till 383 and 124 till 127. The 28xx and 26xx switches don't use the data from the 124 till 127 registers, but the 2510/2610/2810 switches do.
- Assuming the SFP to write to is in port number 24, use this command to write the data (the data being 99 a3 4e 36):
- XCVRI2CWRITE 24 124 0xA1 0x99
- XCVRI2CWRITE 24 125 0xA1 0xA3
- XCVRI2CWRITE 24 126 0xA1 0x4E
- XCVRI2CWRITE 24 127 0xA1 0x36
- XCVRI2CWRITE 24 380 0xA1 0x99
- XCVRI2CWRITE 24 381 0xA1 0xA3
- XCVRI2CWRITE 24 382 0xA1 0x4E
- XCVRI2CWRITE 24 383 0xA1 0x36
- Verify if the data is actually written to the SFP by using the 'physhow' command again:
- physhow 24 a
- The HPID Register and HPID Calculation should be equal:
- HPID Register: 0x99a34e36
- HPID Calculation: 0x99a34e36
- Test the SFP out in the HP switch!
X) The HPID calculated in some cases is not 8 characters, but it really needs to be 8 characters or else you cannot write it to the register. To fix this you can for example change to vendor's date code.
The vendor's date code can be found in the registers 84 till 89.
When you have changed this, use the physhow command again to see what the new calculated HPID is, and if it is 8 chars, write the HPID to the registers mentioned at step #8.