FINISAR FTLX8574D3BCL and FTLX1471D3BCL modules report 10Gbase-SR mode
support, but can also operate at 1000base-X.
Add quirk to also support 1000base-X.
EEPROM content of FTLX8574D3BCL SFP module is (where XX is serial number):
00: 03 04 07 10 00 00 00 00 00 00 00 06 67 00 00 00 |............g...|
10: 08 03 00 1e 46 49 4e 49 53 41 52 20 43 4f 52 50 |....FINISAR CORP|
20: 2e 20 20 20 00 00 90 65 46 54 4c 58 38 35 37 34 |. ...eFTLX8574|
30: 44 33 42 43 4c 20 20 20 41 20 20 20 03 52 00 4b |D3BCL A .R.K|
40: 00 1a 00 00 41 30 XX XX XX XX XX XX XX XX XX XX |....A0XXXXXXXXXX|
50: 20 20 20 20 31 38 30 38 31 32 20 20 68 f0 05 e7 | 180812 h...|
EEPROM content of FTLX1471D3BCL SFP module is (where XX is serial number):
00: 03 04 07 20 00 00 00 00 00 00 00 06 67 00 0a 64 |... ........g..d|
10: 00 00 00 00 46 49 4e 49 53 41 52 20 43 4f 52 50 |....FINISAR CORP|
20: 2e 20 20 20 00 00 90 65 46 54 4c 58 31 34 37 31 |. ...eFTLX1471|
30: 44 33 42 43 4c 20 20 20 41 20 20 20 05 1e 00 63 |D3BCL A ...c|
40: 00 1a 00 00 55 4b XX XX XX XX XX XX XX XX XX XX |....UKXXXXXXXXXX|
50: 20 20 20 20 31 31 30 34 30 32 20 20 68 f0 03 bb | 110402 h...|
Signed-off-by: Oleksandr Mazur <[email protected]>
---
drivers/net/phy/sfp-bus.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c
index 15aa5ac1ff49..c3df85501836 100644
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -38,6 +38,12 @@ struct sfp_bus {
bool started;
};
+static void sfp_quirk_1000basex(const struct sfp_eeprom_id *id,
+ unsigned long *modes)
+{
+ phylink_set(modes, 1000baseX_Full);
+}
+
static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
unsigned long *modes)
{
@@ -84,6 +90,16 @@ static const struct sfp_quirk sfp_quirks[] = {
.vendor = "UBNT",
.part = "UF-INSTANT",
.modes = sfp_quirk_ubnt_uf_instant,
+ }, {
+ // Finisar FTLX1471D3BCL can operate at 1000base-X and 10000base-SR,
+ .vendor = "FINISAR CORP.",
+ .part = "FTLX1471D3BCL",
+ .modes = sfp_quirk_1000basex,
+ }, {
+ // Finisar FTLX8574D3BCL can operate at 1000base-X and 10000base-SR,
+ .vendor = "FINISAR CORP.",
+ .part = "FTLX8574D3BCL",
+ .modes = sfp_quirk_1000basex,
},
};
--
2.17.1
On Tue, Sep 13, 2022 at 09:10:08PM +0300, Oleksandr Mazur wrote:
> FINISAR FTLX8574D3BCL and FTLX1471D3BCL modules report 10Gbase-SR mode
> support, but can also operate at 1000base-X.
>
> Add quirk to also support 1000base-X.
>
> EEPROM content of FTLX8574D3BCL SFP module is (where XX is serial number):
>
> 00: 03 04 07 10 00 00 00 00 00 00 00 06 67 00 00 00 |............g...|
> 10: 08 03 00 1e 46 49 4e 49 53 41 52 20 43 4f 52 50 |....FINISAR CORP|
> 20: 2e 20 20 20 00 00 90 65 46 54 4c 58 38 35 37 34 |. ...eFTLX8574|
> 30: 44 33 42 43 4c 20 20 20 41 20 20 20 03 52 00 4b |D3BCL A .R.K|
> 40: 00 1a 00 00 41 30 XX XX XX XX XX XX XX XX XX XX |....A0XXXXXXXXXX|
> 50: 20 20 20 20 31 38 30 38 31 32 20 20 68 f0 05 e7 | 180812 h...|
>
> EEPROM content of FTLX1471D3BCL SFP module is (where XX is serial number):
>
> 00: 03 04 07 20 00 00 00 00 00 00 00 06 67 00 0a 64 |... ........g..d|
> 10: 00 00 00 00 46 49 4e 49 53 41 52 20 43 4f 52 50 |....FINISAR CORP|
> 20: 2e 20 20 20 00 00 90 65 46 54 4c 58 31 34 37 31 |. ...eFTLX1471|
> 30: 44 33 42 43 4c 20 20 20 41 20 20 20 05 1e 00 63 |D3BCL A ...c|
> 40: 00 1a 00 00 55 4b XX XX XX XX XX XX XX XX XX XX |....UKXXXXXXXXXX|
> 50: 20 20 20 20 31 31 30 34 30 32 20 20 68 f0 03 bb | 110402 h...|
Please include the ethtool -m output so we can see what this decodes
to. I'd rather not have to keep on writing tools to parse hexdumps
back to binary and then using a custom tool based on ethtool to get
that information.
However, having the binary dump from ethtool -m emailed to me so it
can be added to my database of EEPROM contents for future testing
would be useful.
Thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!