xref: /linux/drivers/net/ethernet/mellanox/mlx5/core/Makefile (revision 07fdad3a93756b872da7b53647715c48d0f4a2d0)
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 fs_ft_pool.o rl.o lag/debugfs.o lag/lag.o dev.o events.o wq.o lib/gid.o \
18		lib/devcom.o lib/pci_vsc.o lib/dm.o lib/fs_ttc.o diag/fs_tracepoint.o \
19		diag/fw_tracer.o diag/crdump.o devlink.o diag/rsc_dump.o diag/reporter_vnic.o \
20		fw_reset.o qos.o lib/tout.o lib/aso.o wc.o fs_pool.o lib/nv_param.o
21
22#
23# Netdev basic
24#
25mlx5_core-$(CONFIG_MLX5_CORE_EN) += en/rqt.o en/tir.o en/rss.o en/rx_res.o \
26		en/channels.o en_main.o en_common.o en_fs.o en_ethtool.o \
27		en_tx.o en_rx.o en_dim.o en_txrx.o en/xdp.o en_stats.o \
28		en_selftest.o en/port.o en/monitor_stats.o en/health.o \
29		en/reporter_tx.o en/reporter_rx.o en/params.o en/xsk/pool.o \
30		en/xsk/setup.o en/xsk/rx.o en/xsk/tx.o en/devlink.o en/ptp.o \
31		en/qos.o en/htb.o en/trap.o en/fs_tt_redirect.o en/selq.o \
32		lib/crypto.o lib/sd.o en/pcie_cong_event.o
33
34#
35# Netdev extra
36#
37mlx5_core-$(CONFIG_MLX5_EN_ARFS)     += en_arfs.o
38mlx5_core-$(CONFIG_MLX5_EN_RXNFC)    += en_fs_ethtool.o
39mlx5_core-$(CONFIG_MLX5_CORE_EN_DCB) += en_dcbnl.o en/port_buffer.o
40mlx5_core-$(CONFIG_PCI_HYPERV_INTERFACE) += en/hv_vhca_stats.o
41mlx5_core-$(CONFIG_MLX5_ESWITCH)     += lag/mp.o lag/port_sel.o lib/geneve.o lib/port_tun.o \
42					en_rep.o en/rep/bond.o en/mod_hdr.o \
43					en/mapping.o lag/mpesw.o
44mlx5_core-$(CONFIG_MLX5_CLS_ACT)     += en_tc.o en/rep/tc.o en/rep/neigh.o \
45					lib/fs_chains.o en/tc_tun.o \
46					esw/indir_table.o en/tc_tun_encap.o \
47					en/tc_tun_vxlan.o en/tc_tun_gre.o en/tc_tun_geneve.o \
48					en/tc_tun_mplsoudp.o diag/en_tc_tracepoint.o \
49					en/tc/post_act.o en/tc/int_port.o en/tc/meter.o \
50					en/tc/post_meter.o en/tc/act_stats.o
51
52mlx5_core-$(CONFIG_MLX5_CLS_ACT)     += en/tc/act/act.o en/tc/act/drop.o en/tc/act/trap.o \
53					en/tc/act/accept.o en/tc/act/mark.o en/tc/act/goto.o \
54					en/tc/act/tun.o en/tc/act/csum.o en/tc/act/pedit.o \
55					en/tc/act/vlan.o en/tc/act/vlan_mangle.o en/tc/act/mpls.o \
56					en/tc/act/mirred.o en/tc/act/mirred_nic.o \
57					en/tc/act/ct.o en/tc/act/sample.o en/tc/act/ptype.o \
58					en/tc/act/redirect_ingress.o en/tc/act/police.o
59
60ifneq ($(CONFIG_MLX5_TC_CT),)
61	mlx5_core-y			     += en/tc_ct.o en/tc/ct_fs_dmfs.o
62	mlx5_core-$(CONFIG_MLX5_SW_STEERING) += en/tc/ct_fs_smfs.o
63	mlx5_core-$(CONFIG_MLX5_HW_STEERING) += en/tc/ct_fs_hmfs.o
64endif
65
66mlx5_core-$(CONFIG_MLX5_TC_SAMPLE)   += en/tc/sample.o
67
68#
69# Core extra
70#
71mlx5_core-$(CONFIG_MLX5_ESWITCH)   += eswitch.o eswitch_offloads.o eswitch_offloads_termtbl.o \
72				      ecpf.o rdma.o esw/legacy.o esw/adj_vport.o \
73				      esw/devlink_port.o esw/vporttbl.o esw/qos.o esw/ipsec.o
74
75mlx5_core-$(CONFIG_MLX5_ESWITCH)   += esw/acl/helper.o \
76				      esw/acl/egress_lgcy.o esw/acl/egress_ofld.o \
77				      esw/acl/ingress_lgcy.o esw/acl/ingress_ofld.o
78
79ifneq ($(CONFIG_MLX5_EN_IPSEC),)
80	mlx5_core-$(CONFIG_MLX5_ESWITCH)   += esw/ipsec_fs.o
81endif
82
83mlx5_core-$(CONFIG_MLX5_BRIDGE)    += esw/bridge.o esw/bridge_mcast.o esw/bridge_debugfs.o \
84				      en/rep/bridge.o
85
86mlx5_core-$(CONFIG_HWMON)          += hwmon.o
87mlx5_core-$(CONFIG_MLX5_MPFS)      += lib/mpfs.o
88ifneq ($(CONFIG_VXLAN),)
89	mlx5_core-y		   += lib/vxlan.o
90endif
91mlx5_core-$(CONFIG_PTP_1588_CLOCK) += lib/clock.o
92mlx5_core-$(CONFIG_PCI_HYPERV_INTERFACE) += lib/hv.o lib/hv_vhca.o
93
94#
95# Ipoib netdev
96#
97mlx5_core-$(CONFIG_MLX5_CORE_IPOIB) += ipoib/ipoib.o ipoib/ethtool.o ipoib/ipoib_vlan.o
98
99#
100# Accelerations & FPGA
101#
102mlx5_core-$(CONFIG_MLX5_FPGA) += fpga/cmd.o fpga/core.o fpga/conn.o fpga/sdk.o
103
104mlx5_core-$(CONFIG_MLX5_MACSEC) += en_accel/macsec.o lib/macsec_fs.o \
105				      en_accel/macsec_stats.o
106
107mlx5_core-$(CONFIG_MLX5_EN_IPSEC) += en_accel/ipsec.o en_accel/ipsec_rxtx.o \
108				     en_accel/ipsec_stats.o en_accel/ipsec_fs.o \
109				     en_accel/ipsec_offload.o lib/ipsec_fs_roce.o
110
111mlx5_core-$(CONFIG_MLX5_EN_TLS) += en_accel/ktls_stats.o \
112				   en_accel/fs_tcp.o en_accel/ktls.o en_accel/ktls_txrx.o \
113				   en_accel/ktls_tx.o en_accel/ktls_rx.o
114
115mlx5_core-$(CONFIG_MLX5_EN_PSP) += en_accel/psp.o en_accel/psp_rxtx.o
116
117#
118# SW Steering
119#
120mlx5_core-$(CONFIG_MLX5_SW_STEERING) += steering/sws/dr_domain.o \
121					steering/sws/dr_table.o \
122					steering/sws/dr_matcher.o \
123					steering/sws/dr_rule.o \
124					steering/sws/dr_icm_pool.o \
125					steering/sws/dr_buddy.o \
126					steering/sws/dr_ste.o \
127					steering/sws/dr_send.o \
128					steering/sws/dr_ste_v0.o \
129					steering/sws/dr_ste_v1.o \
130					steering/sws/dr_ste_v2.o \
131					steering/sws/dr_ste_v3.o \
132					steering/sws/dr_cmd.o \
133					steering/sws/dr_fw.o \
134					steering/sws/dr_action.o \
135					steering/sws/dr_definer.o \
136					steering/sws/dr_ptrn.o \
137					steering/sws/dr_arg.o \
138					steering/sws/dr_dbg.o \
139					steering/sws/fs_dr.o \
140					lib/smfs.o
141
142#
143# HW Steering
144#
145mlx5_core-$(CONFIG_MLX5_HW_STEERING) += steering/hws/cmd.o \
146					steering/hws/context.o \
147					steering/hws/pat_arg.o \
148					steering/hws/buddy.o \
149					steering/hws/pool.o \
150					steering/hws/table.o \
151					steering/hws/action.o \
152					steering/hws/rule.o \
153					steering/hws/matcher.o \
154					steering/hws/send.o \
155					steering/hws/definer.o \
156					steering/hws/bwc.o \
157					steering/hws/debug.o \
158					steering/hws/vport.o \
159					steering/hws/bwc_complex.o \
160					steering/hws/fs_hws_pools.o \
161					steering/hws/fs_hws.o \
162					steering/hws/action_ste_pool.o
163
164#
165# SF device
166#
167mlx5_core-$(CONFIG_MLX5_SF) += sf/vhca_event.o sf/dev/dev.o sf/dev/driver.o irq_affinity.o
168
169#
170# SF manager
171#
172mlx5_core-$(CONFIG_MLX5_SF_MANAGER) += sf/cmd.o sf/hw_table.o sf/devlink.o
173
174#
175# TPH support
176#
177mlx5_core-$(CONFIG_PCIE_TPH) += lib/st.o
178
179obj-$(CONFIG_MLX5_DPLL) += mlx5_dpll.o
180mlx5_dpll-y :=	dpll.o
181