1# Kernel build directory 2KDIR := /lib/modules/$(shell uname -r)/build 3RADIO_TEST := 0 4FW_LOAD_SUPPORT := 1 5FW_LOAD?=PATCH 6# Default is empty to force explicit selection 7BUS_IF := PCIE 8 9# Due to multiple Makefiles, we need to get the current directory 10NRF_WIFI_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) 11 12INCLUDES = -I$(NRF_WIFI_DIR)/utils/inc \ 13 -I$(NRF_WIFI_DIR)/os_if/inc \ 14 -I$(NRF_WIFI_DIR)/bus_if/bal/inc/ \ 15 -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc \ 16 -I$(NRF_WIFI_DIR)/fw_load/mips/fw/inc \ 17 -I$(NRF_WIFI_DIR)/hw_if/hal/inc/ \ 18 -I$(NRF_WIFI_DIR)/hw_if/hal/inc/fw \ 19 -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc/fw 20 21ifeq ($(BUS_IF), QSPI) 22 INCLUDES += -I$(NRF_WIFI_DIR)/bus_if/bus/qspi/inc 23else ifeq ($(BUS_IF), SPI) 24 INCLUDES += -I$(NRF_WIFI_DIR)/bus_if/bus/spi/inc 25else ifeq ($(BUS_IF), PCIE) 26 INCLUDES += -I$(NRF_WIFI_DIR)/bus_if/bus/pcie/inc 27endif 28 29# TODO: Use Kconfig + menuconfig for this 30# For now, just comment/uncomment the flags you want 31ccflags-y += -DNRF_WIFI_LOW_POWER 32ccflags-y += -DNRF_WIFI_RPU_RECOVERY 33ccflags-y += -DNRF_WIFI_AP_DEAD_DETECT_TIMEOUT=20 34ccflags-y += -DNRF_WIFI_IFACE_MTU=1500 35ccflags-y += -DNRF70_STA_MODE 36ccflags-y += -DNRF70_DATA_TX 37#ccflags-y += -DNRF70_RAW_DATA_TX 38#ccflags-y += -DNRF70_RAW_DATA_RX 39#ccflags-y += -DNRF70_PROMISC_DATA_RX 40#ccflags-y += -DNRF70_TX_DONE_WQ_ENABLED 41#ccflags-y += -DNRF70_RX_WQ_ENABLED 42ccflags-y += -DNRF70_UTIL 43#ccflags-y += -DNRF70_OFFLOADED_RAW_TX 44ccflags-y += -DNRF70_TCP_IP_CHECKSUM_OFFLOAD 45ccflags-y += -DNRF70_RPU_EXTEND_TWT_SP 46#ccflags-y += -DNRF70_SYSTEM_WITH_RAW_MODES 47#ccflags-y += -DNRF70_SCAN_ONLY 48#ccflags-y += -DNRF70_2_4G_ONLY 49ccflags-y += -DNRF70_LOG_VERBOSE 50#ccflags-y += -DNRF70_AP_MODE 51ccflags-y += -DNRF_WIFI_MGMT_BUFF_OFFLOAD 52ccflags-y += -DNRF_WIFI_FEAT_KEEPALIVE 53ccflags-y += -DNRF_WIFI_KEEPALIVE_PERIOD_S=60 54#ccflags-y += -DWIFI_MGMT_RAW_SCAN_RESULTS 55#ccflags-y += -DNRF_WIFI_COEX_DISABLE_PRIORITY_WINDOW_FOR_SCAN 56ccflags-y += -DNRF70_RX_NUM_BUFS=48 57ccflags-y += -DNRF70_MAX_TX_TOKENS=10 58ccflags-y += -DNRF70_RX_MAX_DATA_SIZE=1600 59ccflags-y += -DNRF70_MAX_TX_PENDING_QLEN=18 60ccflags-y += -DNRF70_RPU_PS_IDLE_TIMEOUT_MS=10 61ccflags-y += -DNRF70_BAND_2G_LOWER_EDGE_BACKOFF_DSSS=0 62ccflags-y += -DNRF70_BAND_2G_LOWER_EDGE_BACKOFF_HT=0 63ccflags-y += -DNRF70_BAND_2G_LOWER_EDGE_BACKOFF_HE=0 64ccflags-y += -DNRF70_BAND_2G_UPPER_EDGE_BACKOFF_DSSS=0 65ccflags-y += -DNRF70_BAND_2G_UPPER_EDGE_BACKOFF_HT=0 66ccflags-y += -DNRF70_BAND_2G_UPPER_EDGE_BACKOFF_HE=0 67ccflags-y += -DNRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HT=0 68ccflags-y += -DNRF70_BAND_UNII_1_LOWER_EDGE_BACKOFF_HE=0 69ccflags-y += -DNRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HT=0 70ccflags-y += -DNRF70_BAND_UNII_1_UPPER_EDGE_BACKOFF_HE=0 71ccflags-y += -DNRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HT=0 72ccflags-y += -DNRF70_BAND_UNII_2A_LOWER_EDGE_BACKOFF_HE=0 73ccflags-y += -DNRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HT=0 74ccflags-y += -DNRF70_BAND_UNII_2A_UPPER_EDGE_BACKOFF_HE=0 75ccflags-y += -DNRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HT=0 76ccflags-y += -DNRF70_BAND_UNII_2C_LOWER_EDGE_BACKOFF_HE=0 77ccflags-y += -DNRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HT=0 78ccflags-y += -DNRF70_BAND_UNII_2C_UPPER_EDGE_BACKOFF_HE=0 79ccflags-y += -DNRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HT=0 80ccflags-y += -DNRF70_BAND_UNII_3_LOWER_EDGE_BACKOFF_HE=0 81ccflags-y += -DNRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HT=0 82ccflags-y += -DNRF70_BAND_UNII_3_UPPER_EDGE_BACKOFF_HE=0 83ccflags-y += -DNRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HT=0 84ccflags-y += -DNRF70_BAND_UNII_4_LOWER_EDGE_BACKOFF_HE=0 85ccflags-y += -DNRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HT=0 86ccflags-y += -DNRF70_BAND_UNII_4_UPPER_EDGE_BACKOFF_HE=0 87ccflags-y += -DNRF70_PCB_LOSS_2G=0 88ccflags-y += -DNRF70_PCB_LOSS_5G_BAND1=0 89ccflags-y += -DNRF70_PCB_LOSS_5G_BAND2=0 90ccflags-y += -DNRF70_PCB_LOSS_5G_BAND3=0 91ccflags-y += -DNRF70_ANT_GAIN_2G=0 92ccflags-y += -DNRF70_ANT_GAIN_5G_BAND1=0 93ccflags-y += -DNRF70_ANT_GAIN_5G_BAND2=0 94ccflags-y += -DNRF70_ANT_GAIN_5G_BAND3=0 95ccflags-y += -DNRF_WIFI_PS_INT_PS 96ccflags-y += -DNRF_WIFI_RPU_RECOVERY_PS_ACTIVE_TIMEOUT_MS=50000 97ccflags-y += -DNRF_WIFI_DISPLAY_SCAN_BSS_LIMIT=150 98ccflags-y += -DNRF_WIFI_RPU_MIN_TIME_TO_ENTER_SLEEP_MS=1000 99ccflags-y += -DWIFI_NRF70_LOG_LEVEL=1 100 101# Source files 102SRCS = os_if/src/osal.c \ 103 utils/src/list.c \ 104 utils/src/queue.c \ 105 utils/src/util.c \ 106 hw_if/hal/src/common/hal_interrupt.c \ 107 hw_if/hal/src/common/hal_mem.c \ 108 hw_if/hal/src/common/hal_reg.c \ 109 hw_if/hal/src/common/hpqm.c \ 110 hw_if/hal/src/common/pal.c \ 111 bus_if/bal/src/bal.c \ 112 fw_if/umac_if/src/common/fmac_cmd_common.c \ 113 fw_if/umac_if/src/common/fmac_api_common.c \ 114 fw_if/umac_if/src/common/fmac_util.c \ 115 hw_if/hal/src/common/hal_api_common.c \ 116 nrf_wifi_osal_module.c 117 118ifeq ($(BUS_IF), QSPI) 119 SRCS += bus_if/bus/qspi/src/qspi.c 120else ifeq ($(BUS_IF), SPI) 121 SRCS += bus_if/bus/pcie/src/spi.c 122else ifeq ($(BUS_IF), PCIE) 123 SRCS += bus_if/bus/pcie/src/pcie.c 124endif 125 126ifeq ($(RADIO_TEST), 1) 127 SRCS += fw_if/umac_if/src/radio_test/fmac_api.c 128 SRCS += fw_if/umac_if/src/radio_test/fmac_cmd.c 129 SRCS += fw_if/umac_if/src/radio_test/fmac_event.c 130 ccflags-y += -DNRF70_RADIO_TEST 131 INCLUDES += -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc/radio_test 132else 133 SRCS += fw_if/umac_if/src/system/fmac_peer.c 134 SRCS += fw_if/umac_if/src/system/fmac_vif.c 135 SRCS += fw_if/umac_if/src/system/fmac_api.c 136 SRCS += fw_if/umac_if/src/system/fmac_cmd.c 137 SRCS += fw_if/umac_if/src/system/fmac_event.c 138 SRCS += fw_if/umac_if/src/system/rx.c 139 SRCS += fw_if/umac_if/src/system/tx.c 140 SRCS += hw_if/hal/src/system/hal_api.c 141 ccflags-y += -DNRF70_SYSTEM_MODE 142 INCLUDES += -I$(NRF_WIFI_DIR)/fw_if/umac_if/inc/system 143endif 144 145ifeq ($(FW_LOAD_SUPPORT), 1) 146ifeq ($(FW_LOAD), $(filter $(FW_LOAD), ROM ROM_PATCH)) 147SRCS += hw_if/hal/src/hal_fw_rom_loader.c 148endif 149ifeq ($(FW_LOAD), $(filter $(FW_LOAD), PATCH ROM_PATCH)) 150SRCS += hw_if/hal/src/common/hal_fw_patch_loader.c 151endif 152ifeq ($(FW_LOAD), $(filter $(FW_LOAD), RAM)) 153SRCS += hw_if/hal/src/hal_fw_ram_loader.c 154endif 155endif 156 157ccflags-y += $(INCLUDES) 158# Object files 159OBJS = $(SRCS:.c=.o) 160 161# Module 162obj-m := nrf_wifi_osal.o 163nrf_wifi_osal-objs := $(OBJS) 164 165all: 166 @echo "Building nrf_wifi_osal module: $(NRF_WIFI_DIR)" 167 $(MAKE) -C $(KDIR) M=$(NRF_WIFI_DIR) modules 168 169menuconfig: 170 $(MAKE) -C $(KDIR) M=$(NRF_WIFI_DIR) menuconfig 171 172clean: 173 make -C $(KDIR) M=$(NRF_WIFI_DIR) clean 174 175install: 176 $(MAKE) -C $(KDIR) M=$(NRF_WIFI_DIR) modules_install 177 178.PHONY: all clean install menuconfig 179