# Kernel build directory KDIR := /lib/modules/$(shell uname -r)/build RADIO_TEST := 0 FW_LOAD_SUPPORT := 1 FW_LOAD?=PATCH # Default is empty to force explicit selection BUS_IF := PCIE # Due to multiple Makefiles, we need to get the current directory NRF_WIFI_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) INCLUDES = -I$(NRF_WIFI_DIR)/utils/inc \ -I$(NRF_WIFI_DIR)/os_if/inc \ -I$(NRF_WIFI_DIR)/bus_if/bal/inc/ \ -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc \ -I$(NRF_WIFI_DIR)/fw_load/mips/fw/inc \ -I$(NRF_WIFI_DIR)/hw_if/hal/inc/ \ -I$(NRF_WIFI_DIR)/hw_if/hal/inc/fw \ -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc/fw ifeq ($(BUS_IF), QSPI) INCLUDES += -I$(NRF_WIFI_DIR)/bus_if/bus/qspi/inc else ifeq ($(BUS_IF), SPI) INCLUDES += -I$(NRF_WIFI_DIR)/bus_if/bus/spi/inc else ifeq ($(BUS_IF), PCIE) INCLUDES += -I$(NRF_WIFI_DIR)/bus_if/bus/pcie/inc endif # TODO: Use Kconfig + menuconfig for this # For now, just comment/uncomment the flags you want ccflags-y += -DNRF_WIFI_LOW_POWER ccflags-y += -DNRF_WIFI_RPU_RECOVERY ccflags-y += -DNRF_WIFI_AP_DEAD_DETECT_TIMEOUT=20 ccflags-y += -DNRF_WIFI_IFACE_MTU=1500 ccflags-y += -DNRF70_STA_MODE ccflags-y += -DNRF70_DATA_TX #ccflags-y += -DNRF70_RAW_DATA_TX #ccflags-y += -DNRF70_RAW_DATA_RX #ccflags-y += -DNRF70_PROMISC_DATA_RX #ccflags-y += -DNRF70_TX_DONE_WQ_ENABLED #ccflags-y += -DNRF70_RX_WQ_ENABLED ccflags-y += -DNRF70_UTIL #ccflags-y += -DNRF70_OFFLOADED_RAW_TX ccflags-y += -DNRF70_TCP_IP_CHECKSUM_OFFLOAD ccflags-y += -DNRF70_RPU_EXTEND_TWT_SP #ccflags-y += -DNRF70_SYSTEM_WITH_RAW_MODES #ccflags-y += -DNRF70_SCAN_ONLY #ccflags-y += -DNRF70_2_4G_ONLY ccflags-y += -DNRF70_LOG_VERBOSE #ccflags-y += -DNRF70_AP_MODE ccflags-y += -DNRF_WIFI_MGMT_BUFF_OFFLOAD ccflags-y += -DNRF_WIFI_FEAT_KEEPALIVE ccflags-y += -DNRF_WIFI_KEEPALIVE_PERIOD_S=60 #ccflags-y += -DWIFI_MGMT_RAW_SCAN_RESULTS #ccflags-y += -DNRF_WIFI_COEX_DISABLE_PRIORITY_WINDOW_FOR_SCAN ccflags-y += -DNRF70_RX_NUM_BUFS=48 ccflags-y += -DNRF70_MAX_TX_TOKENS=10 ccflags-y += -DNRF70_RX_MAX_DATA_SIZE=1600 ccflags-y += -DNRF70_MAX_TX_PENDING_QLEN=18 ccflags-y += -DNRF70_RPU_PS_IDLE_TIMEOUT_MS=10 ccflags-y += -DNRF70_BAND_2G_LOWER_EDGE_BACKOFF_DSSS=0 ccflags-y += -DNRF70_BAND_2G_LOWER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_2G_LOWER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_2G_UPPER_EDGE_BACKOFF_DSSS=0 ccflags-y += -DNRF70_BAND_2G_UPPER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_2G_UPPER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HT=0 ccflags-y += -DNRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HE=0 ccflags-y += -DNRF70_PCB_LOSS_2G=0 ccflags-y += -DNRF70_PCB_LOSS_5G_BAND1=0 ccflags-y += -DNRF70_PCB_LOSS_5G_BAND2=0 ccflags-y += -DNRF70_PCB_LOSS_5G_BAND3=0 ccflags-y += -DNRF70_ANT_GAIN_2G=0 ccflags-y += -DNRF70_ANT_GAIN_5G_BAND1=0 ccflags-y += -DNRF70_ANT_GAIN_5G_BAND2=0 ccflags-y += -DNRF70_ANT_GAIN_5G_BAND3=0 ccflags-y += -DNRF_WIFI_PS_INT_PS ccflags-y += -DNRF_WIFI_RPU_RECOVERY_PS_ACTIVE_TIMEOUT_MS=50000 ccflags-y += -DNRF_WIFI_DISPLAY_SCAN_BSS_LIMIT=150 ccflags-y += -DNRF_WIFI_RPU_MIN_TIME_TO_ENTER_SLEEP_MS=1000 ccflags-y += -DWIFI_NRF70_LOG_LEVEL=1 # Source files SRCS = os_if/src/osal.c \ utils/src/list.c \ utils/src/queue.c \ utils/src/util.c \ hw_if/hal/src/common/hal_interrupt.c \ hw_if/hal/src/common/hal_mem.c \ hw_if/hal/src/common/hal_reg.c \ hw_if/hal/src/common/hpqm.c \ hw_if/hal/src/common/pal.c \ bus_if/bal/src/bal.c \ fw_if/umac_if/src/common/fmac_cmd_common.c \ fw_if/umac_if/src/common/fmac_api_common.c \ fw_if/umac_if/src/common/fmac_util.c \ hw_if/hal/src/common/hal_api_common.c \ nrf_wifi_osal_module.c ifeq ($(BUS_IF), QSPI) SRCS += bus_if/bus/qspi/src/qspi.c else ifeq ($(BUS_IF), SPI) SRCS += bus_if/bus/pcie/src/spi.c else ifeq ($(BUS_IF), PCIE) SRCS += bus_if/bus/pcie/src/pcie.c endif ifeq ($(RADIO_TEST), 1) SRCS += fw_if/umac_if/src/radio_test/fmac_api.c SRCS += fw_if/umac_if/src/radio_test/fmac_cmd.c SRCS += fw_if/umac_if/src/radio_test/fmac_event.c ccflags-y += -DNRF70_RADIO_TEST INCLUDES += -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc/radio_test else SRCS += fw_if/umac_if/src/system/fmac_peer.c SRCS += fw_if/umac_if/src/system/fmac_vif.c SRCS += fw_if/umac_if/src/system/fmac_api.c SRCS += fw_if/umac_if/src/system/fmac_cmd.c SRCS += fw_if/umac_if/src/system/fmac_event.c SRCS += fw_if/umac_if/src/system/rx.c SRCS += fw_if/umac_if/src/system/tx.c SRCS += hw_if/hal/src/system/hal_api.c ccflags-y += -DNRF70_SYSTEM_MODE INCLUDES += -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc/system endif ifeq ($(FW_LOAD_SUPPORT), 1) ifeq ($(FW_LOAD), $(filter $(FW_LOAD), ROM ROM_PATCH)) SRCS += hw_if/hal/src/hal_fw_rom_loader.c endif ifeq ($(FW_LOAD), $(filter $(FW_LOAD), PATCH ROM_PATCH)) SRCS += hw_if/hal/src/common/hal_fw_patch_loader.c endif ifeq ($(FW_LOAD), $(filter $(FW_LOAD), RAM)) SRCS += hw_if/hal/src/hal_fw_ram_loader.c endif endif ccflags-y += $(INCLUDES) # Object files OBJS = $(SRCS:.c=.o) # Module obj-m := nrf_wifi_osal.o nrf_wifi_osal-objs := $(OBJS) all: @echo "Building nrf_wifi_osal module: $(NRF_WIFI_DIR)" $(MAKE) -C $(KDIR) M=$(NRF_WIFI_DIR) modules menuconfig: $(MAKE) -C $(KDIR) M=$(NRF_WIFI_DIR) menuconfig clean: make -C $(KDIR) M=$(NRF_WIFI_DIR) clean install: $(MAKE) -C $(KDIR) M=$(NRF_WIFI_DIR) modules_install .PHONY: all clean install menuconfig