15a6681e2SEdward Cree /**************************************************************************** 25a6681e2SEdward Cree * Driver for Solarflare network controllers and boards 35a6681e2SEdward Cree * Copyright 2006-2013 Solarflare Communications Inc. 45a6681e2SEdward Cree * 55a6681e2SEdward Cree * This program is free software; you can redistribute it and/or modify it 65a6681e2SEdward Cree * under the terms of the GNU General Public License version 2 as published 75a6681e2SEdward Cree * by the Free Software Foundation, incorporated herein by reference. 85a6681e2SEdward Cree */ 95a6681e2SEdward Cree 105a6681e2SEdward Cree #ifndef EF4_WORKAROUNDS_H 115a6681e2SEdward Cree #define EF4_WORKAROUNDS_H 125a6681e2SEdward Cree 135a6681e2SEdward Cree /* 145a6681e2SEdward Cree * Hardware workarounds. 155a6681e2SEdward Cree * Bug numbers are from Solarflare's Bugzilla. 165a6681e2SEdward Cree */ 175a6681e2SEdward Cree 185a6681e2SEdward Cree #define EF4_WORKAROUND_FALCON_A(efx) (ef4_nic_rev(efx) <= EF4_REV_FALCON_A1) 195a6681e2SEdward Cree #define EF4_WORKAROUND_FALCON_AB(efx) (ef4_nic_rev(efx) <= EF4_REV_FALCON_B0) 205a6681e2SEdward Cree #define EF4_WORKAROUND_10G(efx) 1 215a6681e2SEdward Cree 225a6681e2SEdward Cree /* Bit-bashed I2C reads cause performance drop */ 235a6681e2SEdward Cree #define EF4_WORKAROUND_7884 EF4_WORKAROUND_10G 245a6681e2SEdward Cree /* Truncated IPv4 packets can confuse the TX packet parser */ 255a6681e2SEdward Cree #define EF4_WORKAROUND_15592 EF4_WORKAROUND_FALCON_AB 265a6681e2SEdward Cree 275a6681e2SEdward Cree /* Spurious parity errors in TSORT buffers */ 285a6681e2SEdward Cree #define EF4_WORKAROUND_5129 EF4_WORKAROUND_FALCON_A 295a6681e2SEdward Cree /* Unaligned read request >512 bytes after aligning may break TSORT */ 305a6681e2SEdward Cree #define EF4_WORKAROUND_5391 EF4_WORKAROUND_FALCON_A 315a6681e2SEdward Cree /* iSCSI parsing errors */ 325a6681e2SEdward Cree #define EF4_WORKAROUND_5583 EF4_WORKAROUND_FALCON_A 335a6681e2SEdward Cree /* RX events go missing */ 345a6681e2SEdward Cree #define EF4_WORKAROUND_5676 EF4_WORKAROUND_FALCON_A 355a6681e2SEdward Cree /* RX_RESET on A1 */ 365a6681e2SEdward Cree #define EF4_WORKAROUND_6555 EF4_WORKAROUND_FALCON_A 375a6681e2SEdward Cree /* Increase filter depth to avoid RX_RESET */ 385a6681e2SEdward Cree #define EF4_WORKAROUND_7244 EF4_WORKAROUND_FALCON_A 395a6681e2SEdward Cree /* Flushes may never complete */ 405a6681e2SEdward Cree #define EF4_WORKAROUND_7803 EF4_WORKAROUND_FALCON_AB 415a6681e2SEdward Cree /* Leak overlength packets rather than free */ 425a6681e2SEdward Cree #define EF4_WORKAROUND_8071 EF4_WORKAROUND_FALCON_A 435a6681e2SEdward Cree 445a6681e2SEdward Cree #endif /* EF4_WORKAROUNDS_H */ 45