2022-05-09 22:18:59 +02:00
|
|
|
###########################################################################
|
|
|
|
# Kbuild fragment for nvidia-peermem.ko
|
|
|
|
###########################################################################
|
|
|
|
|
|
|
|
#
|
|
|
|
# Define NVIDIA_PEERMEM_{SOURCES,OBJECTS}
|
|
|
|
#
|
|
|
|
|
|
|
|
NVIDIA_PEERMEM_SOURCES =
|
|
|
|
NVIDIA_PEERMEM_SOURCES += nvidia-peermem/nvidia-peermem.c
|
|
|
|
|
|
|
|
NVIDIA_PEERMEM_OBJECTS = $(patsubst %.c,%.o,$(NVIDIA_PEERMEM_SOURCES))
|
|
|
|
|
|
|
|
obj-m += nvidia-peermem.o
|
|
|
|
nvidia-peermem-y := $(NVIDIA_PEERMEM_OBJECTS)
|
|
|
|
|
|
|
|
NVIDIA_PEERMEM_KO = nvidia-peermem/nvidia-peermem.ko
|
|
|
|
|
|
|
|
NV_KERNEL_MODULE_TARGETS += $(NVIDIA_PEERMEM_KO)
|
|
|
|
|
|
|
|
#
|
|
|
|
# Define nvidia-peermem.ko-specific CFLAGS.
|
|
|
|
#
|
|
|
|
NVIDIA_PEERMEM_CFLAGS += -I$(src)/nvidia-peermem
|
|
|
|
NVIDIA_PEERMEM_CFLAGS += -UDEBUG -U_DEBUG -DNDEBUG -DNV_BUILD_MODULE_INSTANCES=0
|
|
|
|
|
|
|
|
#
|
|
|
|
# In case of MOFED installation, nvidia-peermem compilation
|
|
|
|
# needs paths to the MOFED headers in CFLAGS.
|
|
|
|
# MOFED's Module.symvers is needed for the build
|
|
|
|
# to find the additional ib_* symbols.
|
|
|
|
#
|
2022-11-10 17:39:33 +01:00
|
|
|
# Also, MOFED doesn't use kbuild ARCH names.
|
|
|
|
# So adapt OFA_ARCH to match MOFED's conventions.
|
|
|
|
#
|
|
|
|
ifeq ($(ARCH), arm64)
|
|
|
|
OFA_ARCH := aarch64
|
|
|
|
else ifeq ($(ARCH), powerpc)
|
|
|
|
OFA_ARCH := ppc64le
|
|
|
|
else
|
|
|
|
OFA_ARCH := $(ARCH)
|
|
|
|
endif
|
2022-05-09 22:18:59 +02:00
|
|
|
OFA_DIR := /usr/src/ofa_kernel
|
2022-11-10 17:39:33 +01:00
|
|
|
OFA_CANDIDATES = $(OFA_DIR)/$(OFA_ARCH)/$(KERNELRELEASE) $(OFA_DIR)/$(KERNELRELEASE) $(OFA_DIR)/default /var/lib/dkms/mlnx-ofed-kernel
|
2022-05-09 22:18:59 +02:00
|
|
|
MLNX_OFED_KERNEL := $(shell for d in $(OFA_CANDIDATES); do \
|
|
|
|
if [ -d "$$d" ]; then \
|
|
|
|
echo "$$d"; \
|
|
|
|
exit 0; \
|
|
|
|
fi; \
|
|
|
|
done; \
|
|
|
|
echo $(OFA_DIR) \
|
|
|
|
)
|
|
|
|
|
|
|
|
ifneq ($(shell test -d $(MLNX_OFED_KERNEL) && echo "true" || echo "" ),)
|
|
|
|
NVIDIA_PEERMEM_CFLAGS += -I$(MLNX_OFED_KERNEL)/include -I$(MLNX_OFED_KERNEL)/include/rdma
|
|
|
|
KBUILD_EXTRA_SYMBOLS := $(MLNX_OFED_KERNEL)/Module.symvers
|
|
|
|
endif
|
|
|
|
|
|
|
|
$(call ASSIGN_PER_OBJ_CFLAGS, $(NVIDIA_PEERMEM_OBJECTS), $(NVIDIA_PEERMEM_CFLAGS))
|
|
|
|
|
|
|
|
#
|
|
|
|
# Register the conftests needed by nvidia-peermem.ko
|
|
|
|
#
|
|
|
|
|
|
|
|
NV_OBJECTS_DEPEND_ON_CONFTEST += $(NVIDIA_PEERMEM_OBJECTS)
|
|
|
|
|
|
|
|
NV_CONFTEST_GENERIC_COMPILE_TESTS += ib_peer_memory_symbols
|
|
|
|
|
|
|
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS +=
|
|
|
|
|
|
|
|
NV_CONFTEST_TYPE_COMPILE_TESTS +=
|