1# SPDX-License-Identifier: GPL-2.0
2#
3# Makefile for Mellanox 5th generation network adapters
4# (ConnectX series) core & netdev driver
5#
6
7subdir-ccflags-y += -I$(src)
8
9obj-$(CONFIG_MLX5_CORE) += mlx5_core.o
10
11#
12# mlx5 core basic
13#
14mlx5_core-y :=	main.o cmd.o debugfs.o fw.o eq.o uar.o pagealloc.o \
15		health.o mcg.o cq.o alloc.o port.o mr.o pd.o \
16		transobj.o vport.o sriov.o fs_cmd.o fs_core.o pci_irq.o \
17		fs_counters.o rl.o lag.o dev.o events.o wq.o lib/gid.o \
18		lib/devcom.o lib/pci_vsc.o lib/dm.o diag/fs_tracepoint.o \
19		diag/fw_tracer.o diag/crdump.o devlink.o diag/rsc_dump.o fw_reset.o
20
21#
22# Netdev basic
23#
24mlx5_core-$(CONFIG_MLX5_CORE_EN) += en_main.o en_common.o en_fs.o en_ethtool.o \
25		en_tx.o en_rx.o en_dim.o en_txrx.o en/xdp.o en_stats.o \
26		en_selftest.o en/port.o en/monitor_stats.o en/health.o \
27		en/reporter_tx.o en/reporter_rx.o en/params.o en/xsk/pool.o \
28		en/xsk/setup.o en/xsk/rx.o en/xsk/tx.o en/devlink.o
29
30#
31# Netdev extra
32#
33mlx5_core-$(CONFIG_MLX5_EN_ARFS)     += en_arfs.o
34mlx5_core-$(CONFIG_MLX5_EN_RXNFC)    += en_fs_ethtool.o
35mlx5_core-$(CONFIG_MLX5_CORE_EN_DCB) += en_dcbnl.o en/port_buffer.o
36mlx5_core-$(CONFIG_PCI_HYPERV_INTERFACE) += en/hv_vhca_stats.o
37mlx5_core-$(CONFIG_MLX5_ESWITCH)     += lag_mp.o lib/geneve.o lib/port_tun.o \
38					en_rep.o en/rep/bond.o en/mod_hdr.o
39mlx5_core-$(CONFIG_MLX5_CLS_ACT)     += en_tc.o en/rep/tc.o en/rep/neigh.o \
40					en/mapping.o lib/fs_chains.o en/tc_tun.o \
41					en/tc_tun_vxlan.o en/tc_tun_gre.o en/tc_tun_geneve.o \
42					en/tc_tun_mplsoudp.o diag/en_tc_tracepoint.o
43mlx5_core-$(CONFIG_MLX5_TC_CT)	     += en/tc_ct.o
44
45#
46# Core extra
47#
48mlx5_core-$(CONFIG_MLX5_ESWITCH)   += eswitch.o eswitch_offloads.o eswitch_offloads_termtbl.o \
49				      ecpf.o rdma.o
50mlx5_core-$(CONFIG_MLX5_ESWITCH)   += esw/acl/helper.o \
51				      esw/acl/egress_lgcy.o esw/acl/egress_ofld.o \
52				      esw/acl/ingress_lgcy.o esw/acl/ingress_ofld.o \
53				      esw/devlink_port.o
54
55mlx5_core-$(CONFIG_MLX5_MPFS)      += lib/mpfs.o
56mlx5_core-$(CONFIG_VXLAN)          += lib/vxlan.o
57mlx5_core-$(CONFIG_PTP_1588_CLOCK) += lib/clock.o
58mlx5_core-$(CONFIG_PCI_HYPERV_INTERFACE) += lib/hv.o lib/hv_vhca.o
59
60#
61# Ipoib netdev
62#
63mlx5_core-$(CONFIG_MLX5_CORE_IPOIB) += ipoib/ipoib.o ipoib/ethtool.o ipoib/ipoib_vlan.o
64
65#
66# Accelerations & FPGA
67#
68mlx5_core-$(CONFIG_MLX5_IPSEC) += accel/ipsec_offload.o
69mlx5_core-$(CONFIG_MLX5_FPGA_IPSEC) += fpga/ipsec.o
70mlx5_core-$(CONFIG_MLX5_FPGA_TLS)   += fpga/tls.o
71mlx5_core-$(CONFIG_MLX5_ACCEL)      += lib/crypto.o accel/tls.o accel/ipsec.o
72
73mlx5_core-$(CONFIG_MLX5_FPGA) += fpga/cmd.o fpga/core.o fpga/conn.o fpga/sdk.o
74
75mlx5_core-$(CONFIG_MLX5_EN_IPSEC) += en_accel/ipsec.o en_accel/ipsec_rxtx.o \
76				     en_accel/ipsec_stats.o en_accel/ipsec_fs.o
77
78mlx5_core-$(CONFIG_MLX5_EN_TLS) += en_accel/tls.o en_accel/tls_rxtx.o en_accel/tls_stats.o \
79				   en_accel/fs_tcp.o en_accel/ktls.o en_accel/ktls_txrx.o \
80				   en_accel/ktls_tx.o en_accel/ktls_rx.o
81
82mlx5_core-$(CONFIG_MLX5_SW_STEERING) += steering/dr_domain.o steering/dr_table.o \
83					steering/dr_matcher.o steering/dr_rule.o \
84					steering/dr_icm_pool.o \
85					steering/dr_ste.o steering/dr_send.o \
86					steering/dr_cmd.o steering/dr_fw.o \
87					steering/dr_action.o steering/fs_dr.o
88