From: Andy Moreton <andy.more...@amd.com>

The BAR layout on X4 has changed to put MSI-X (and CXL) in BAR0/1,
and moved the main memory BAR to be BAR2/3. Update definitions to
match the updated hardware and cmodel.

Also add PCI IDs used for functions which only have the full feature
(X2 style) datapath engines, and do not support the low latency
datapath engine.

Signed-off-by: Andy Moreton <andy.more...@amd.com>
Reviewed-by: Ivan Malov <ivan.ma...@arknetworks.am>
---
 drivers/common/sfc_efx/base/efx.h     | 12 +++++++++---
 drivers/common/sfc_efx/base/efx_nic.c |  2 ++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/common/sfc_efx/base/efx.h 
b/drivers/common/sfc_efx/base/efx.h
index 442dfa0830..a9ed3f423f 100644
--- a/drivers/common/sfc_efx/base/efx.h
+++ b/drivers/common/sfc_efx/base/efx.h
@@ -173,9 +173,15 @@ efx_family_probe_bar(
 #define        EFX_PCI_DEVID_RIVERHEAD                 0x0100
 #define        EFX_PCI_DEVID_RIVERHEAD_VF              0x1100
 
+/*
+ * Medford4 has low latency (LL) and full feature (FF) datapath engines.
+ * Some Medford4 functions have FF and LL datapath, others only have FF.
+ */
 #define        EFX_PCI_DEVID_MEDFORD4_PF_UNINIT        0x0C13
-#define        EFX_PCI_DEVID_MEDFORD4                  0x0C03
-#define        EFX_PCI_DEVID_MEDFORD4_VF               0x1C03
+#define        EFX_PCI_DEVID_MEDFORD4                  0x0C03  /* X4 PF, FF+LL 
*/
+#define        EFX_PCI_DEVID_MEDFORD4_VF               0x1C03  /* X4 VF, FF+LL 
*/
+#define        EFX_PCI_DEVID_MEDFORD4_NO_LL            0x2C03  /* X4 PF, FF 
only */
+#define        EFX_PCI_DEVID_MEDFORD4_NO_LL_VF         0x3C03  /* X4 VF, FF 
only */
 
 #define        EFX_MEM_BAR_SIENA                       2
 
@@ -190,7 +196,7 @@ efx_family_probe_bar(
 /* FIXME Fix it when memory bar is fixed in FPGA image. It must be 0. */
 #define        EFX_MEM_BAR_RIVERHEAD                   2
 
-#define        EFX_MEM_BAR_MEDFORD4                    0
+#define        EFX_MEM_BAR_MEDFORD4                    2
 
 /* Error codes */
 
diff --git a/drivers/common/sfc_efx/base/efx_nic.c 
b/drivers/common/sfc_efx/base/efx_nic.c
index 5bcc0a04ff..1ec684da40 100644
--- a/drivers/common/sfc_efx/base/efx_nic.c
+++ b/drivers/common/sfc_efx/base/efx_nic.c
@@ -87,6 +87,8 @@ efx_family(
                         */
                case EFX_PCI_DEVID_MEDFORD4:
                case EFX_PCI_DEVID_MEDFORD4_VF:
+               case EFX_PCI_DEVID_MEDFORD4_NO_LL:
+               case EFX_PCI_DEVID_MEDFORD4_NO_LL_VF:
                        *efp = EFX_FAMILY_MEDFORD4;
                        *membarp = EFX_MEM_BAR_MEDFORD4;
                        return (0);
-- 
2.39.5

Reply via email to