Right SFP EEPROM config for DFP-34X-2C2 to work automatically work at 2500base-X? #250
Replies: 5 comments 31 replies
-
to change this, do you use SFPTotal Whistle or Mini ? |
Beta Was this translation helpful? Give feedback.
-
Can you share the .bin of the entire firwmare with this modification ? will use a programer to flash direct in SOP |
Beta Was this translation helpful? Give feedback.
-
I found this command can change EEPROM value, but eeprom content does not same as I read from chip using programer, anyone can check it work or not? |
Beta Was this translation helpful? Give feedback.
-
I tried
Mikrotik detect as this instance The way Mikrotik show supported are different, I wonder what value to make |
Beta Was this translation helpful? Give feedback.
-
I test this on Banana Pi BPI-R4, it's work. |
Beta Was this translation helpful? Give feedback.
-
Seems ODI has multiple wrong configuration on DFP-34X-2C2's eeprom. And this blocks linux to use 2500base-X by default.
First, they set BR, Nominal value to 1300MBd, while it should be 3125MBd(Since 3125 cannot be set, it should be round off to 3100MBd).
Second, 1000base-LX is enabled by default, so that linux would prefer that speed (https://github.com/torvalds/linux/blob/cf1182944c7cc9f1c21a8a44e0d29abe12527412/drivers/net/phy/sfp-bus.c#L327)
After disabling 1000base-LX and set BR, Nominal value to 3100MBd in EEPROM, my device (Banana pi BPI-R3 + Openwrt 23.05.2) would use 2500base-X by default now.
For example:
![图片](https://private-user-images.githubusercontent.com/56786900/308652013-63a461cd-a28f-4305-8116-0c712bbf79c7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg3MjYyOTIsIm5iZiI6MTcxODcyNTk5MiwicGF0aCI6Ii81Njc4NjkwMC8zMDg2NTIwMTMtNjNhNDYxY2QtYTI4Zi00MzA1LTgxMTYtMGM3MTJiYmY3OWM3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjE4VDE1NTMxMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVlNzEzMjhiYTRiMWE0NTM3ZGUzYzllMmNhMGY4YjQ5OGQ4ZWFjZWI3MzYxZTQxNGNhMjRiYzc3OGNjNWY1M2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0BKVq_-LHp0UHHtdPMjq46PG7Rk2hMDsP07MzAAXv5o)
Set addr 0x06 to 0x00(Disable 1000base-LX), addr 0x0c to 0x1f(3100MBd), addr 0x3f to 0x80(Checksum)
Beta Was this translation helpful? Give feedback.
All reactions