Date: Thu, 10 Jun 2010 17:12:32 -0400 From: Andrew Boyer <aboyer@averesystems.com> To: Alexander Sack <pisymbol@gmail.com> Cc: Juli Mallett <jmallett@freebsd.org>, freebsd-net@freebsd.org, Jack Vogel <jfvogel@gmail.com> Subject: Re: Dual-rate transceivers with ixgbe? Message-ID: <82D310BD-48DE-4F79-84C6-356AB4F04C42@averesystems.com> In-Reply-To: <AANLkTinOnzvjrmmLb3w5jOYEk02CY2tWCwnKxTv8sHS8@mail.gmail.com> References: <AANLkTinO9NZ8F9TeS68I2ULQgdlMGzlXkinCsywWosAM@mail.gmail.com> <AANLkTinS607kd3wc3F2WWmA6Zk9KL4GhscxEHPtcvxA5@mail.gmail.com> <AANLkTimkxOn9h6SAkTPDqfUM9kl2CZiFrZC_BuNDfRyB@mail.gmail.com> <AANLkTikcQMXk8UebmaynOeeInGiwx8yr0NMGE1yJfm8u@mail.gmail.com> <AANLkTil_YRvU54qHtIMO7mP4yYjojeHVrCHaRcl2K2Ug@mail.gmail.com> <AANLkTim5Ao9nSh6T6HF7NztLgvbTzxuVyr8lSXAJ7bMo@mail.gmail.com> <AANLkTim9-Za5mzLTw7MDAHY_TuIQsQ0SF0_1xpxyGY7v@mail.gmail.com> <AANLkTik-V2frmirwBLtg4RemdEVvPhUmVsOP7CqEkvUi@mail.gmail.com> <AANLkTikqjQic_M3mX7OTx-V0OJxbk4vzxajPmHmIUAKa@mail.gmail.com> <AANLkTikjs42mE5QHnSvZ9x9DI1xfYowvIES-DRORz6hH@mail.gmail.com> <AANLkTilqb4y0zEmom0jyg-HEi4yp8D3nkkbUWGHUjWPt@mail.gmail.com> <AANLkTinOnzvjrmmLb3w5jOYEk02CY2tWCwnKxTv8sHS8@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 10, 2010, at 3:59 PM, Alexander Sack wrote: >=20 >> One thing that the base driver probably ought to do is not fail in >> attach if there's an unrecognized SFP+ module. Since we get >> interrupts on module change (although this doesn't seem to always = work >> *entirely* right in the stock sources, mostly wrt stored values of >> AUTOC and the like) it should be possible to bring the interface up >> with the unsupported (and disabled) SFP+ module and do the SFP+ = module >> probing we already do on hot-swap. >=20 > Alright, let me see if I can test that. Let me rephrase so I validate > what you are saying: >=20 > The driver can come up with an unsupported module but disable the > interface (ifconfig shows the interface, etc.). >=20 > If you then hot-swap a supported SFP, it should come up then with a > ifconfig down/up cycle. Right? >=20 > As it stand now, if you load the driver with an unsupported module, it > will not attach at all causing you to reload the entire driver OR > reboot the box to have it reattach to the other SFP. >=20 We use this patch to allow the driver to attach when no module is = installed. This might be a starting point for you. I haven't tested it = without all of our other changes in place so my apologies if it doesn't = quite work. We only have Intel modules around for testing. -Andrew --- ixgbe.c 2010-06-10 16:53:08.000000000 -0400 +++ ixgbe.c 2010-06-10 16:55:26.000000000 -0400 @@ -566,7 +566,7 @@ } else if (error =3D=3D IXGBE_ERR_SFP_NOT_SUPPORTED) device_printf(dev,"Unsupported SFP+ Module\n"); =20 - if (error) { + if (error && error !=3D IXGBE_ERR_SFP_NOT_PRESENT) { error =3D EIO; device_printf(dev,"Hardware Initialization Failure\n"); goto err_late; --- ixgbe_82598.c 2010-06-10 16:53:24.000000000 -0400 +++ ixgbe_82598.c 2010-06-10 16:56:31.000000000 -0400 @@ -257,10 +257,6 @@ ret_val =3D ixgbe_get_sfp_init_sequence_offsets(hw, = &list_offset, = &data_offset); - if (ret_val !=3D IXGBE_SUCCESS) { - ret_val =3D IXGBE_ERR_SFP_NOT_SUPPORTED; - goto out; - } break; default: break; -------------------------------------------------- Andrew Boyer aboyer@averesystems.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?82D310BD-48DE-4F79-84C6-356AB4F04C42>