Makefile 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=mt76
  3. PKG_RELEASE=2
  4. PKG_LICENSE:=GPLv2
  5. PKG_LICENSE_FILES:=
  6. PKG_SOURCE_URL:=https://github.com/openwrt/mt76
  7. PKG_SOURCE_PROTO:=git
  8. PKG_SOURCE_DATE:=2020-05-30
  9. PKG_SOURCE_VERSION:=85c516081338d3d1454fb53b5741321c2adefbef
  10. PKG_MIRROR_HASH:=a3e110700843ecfee10eba274ab6fe63b9d78a00eb96ee1634b145e0a9ae9a69
  11. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  12. PKG_BUILD_PARALLEL:=1
  13. PKG_CONFIG_DEPENDS += \
  14. CONFIG_PACKAGE_kmod-mt76-usb \
  15. CONFIG_PACKAGE_kmod-mt76x02-common \
  16. CONFIG_PACKAGE_kmod-mt76x0-common \
  17. CONFIG_PACKAGE_kmod-mt76x0u \
  18. CONFIG_PACKAGE_kmod-mt76x2-common \
  19. CONFIG_PACKAGE_kmod-mt76x2 \
  20. CONFIG_PACKAGE_kmod-mt76x2u \
  21. CONFIG_PACKAGE_kmod-mt7603
  22. STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
  23. include $(INCLUDE_DIR)/kernel.mk
  24. include $(INCLUDE_DIR)/package.mk
  25. define KernelPackage/mt76-default
  26. SUBMENU:=Wireless Drivers
  27. DEPENDS:= \
  28. +kmod-mac80211 \
  29. +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
  30. endef
  31. define KernelPackage/mt76
  32. SUBMENU:=Wireless Drivers
  33. TITLE:=MediaTek MT76x2/MT7603 wireless driver (metapackage)
  34. DEPENDS:= \
  35. +kmod-mt76-core +kmod-mt76x2 +kmod-mt7603
  36. endef
  37. define KernelPackage/mt76-core
  38. $(KernelPackage/mt76-default)
  39. TITLE:=MediaTek MT76xx wireless driver
  40. HIDDEN:=1
  41. FILES:=\
  42. $(PKG_BUILD_DIR)/mt76.ko
  43. endef
  44. define KernelPackage/mt76-usb
  45. $(KernelPackage/mt76-default)
  46. TITLE:=MediaTek MT76xx wireless driver USB support
  47. DEPENDS += +kmod-usb-core +kmod-mt76-core
  48. HIDDEN:=1
  49. FILES:=\
  50. $(PKG_BUILD_DIR)/mt76-usb.ko
  51. endef
  52. define KernelPackage/mt76x02-usb
  53. $(KernelPackage/mt76-default)
  54. TITLE:=MediaTek MT76x0/MT76x2 USB wireless driver common code
  55. DEPENDS+=+kmod-mt76-usb +kmod-mt76x02-common
  56. HIDDEN:=1
  57. FILES:=$(PKG_BUILD_DIR)/mt76x02-usb.ko
  58. endef
  59. define KernelPackage/mt76x02-common
  60. $(KernelPackage/mt76-default)
  61. TITLE:=MediaTek MT76x0/MT76x2 wireless driver common code
  62. DEPENDS+=+kmod-mt76-core
  63. HIDDEN:=1
  64. FILES:=$(PKG_BUILD_DIR)/mt76x02-lib.ko
  65. endef
  66. define KernelPackage/mt76x0-common
  67. $(KernelPackage/mt76-default)
  68. TITLE:=MediaTek MT76x0 wireless driver common code
  69. DEPENDS+=+kmod-mt76x02-common
  70. HIDDEN:=1
  71. FILES:=$(PKG_BUILD_DIR)/mt76x0/mt76x0-common.ko
  72. endef
  73. define KernelPackage/mt76x0e
  74. $(KernelPackage/mt76-default)
  75. TITLE:=MediaTek MT76x0E wireless driver
  76. DEPENDS+=@PCI_SUPPORT +kmod-mt76x0-common
  77. FILES:=\
  78. $(PKG_BUILD_DIR)/mt76x0/mt76x0e.ko
  79. AUTOLOAD:=$(call AutoProbe,mt76x0e)
  80. endef
  81. define KernelPackage/mt76x0u
  82. $(KernelPackage/mt76-default)
  83. TITLE:=MediaTek MT76x0U wireless driver
  84. DEPENDS+=+kmod-mt76x0-common +kmod-mt76x02-usb
  85. FILES:=\
  86. $(PKG_BUILD_DIR)/mt76x0/mt76x0u.ko
  87. AUTOLOAD:=$(call AutoProbe,mt76x0u)
  88. endef
  89. define KernelPackage/mt76x2-common
  90. $(KernelPackage/mt76-default)
  91. TITLE:=MediaTek MT76x2 wireless driver common code
  92. DEPENDS+=+kmod-mt76-core +kmod-mt76x02-common
  93. HIDDEN:=1
  94. FILES:=$(PKG_BUILD_DIR)/mt76x2/mt76x2-common.ko
  95. endef
  96. define KernelPackage/mt76x2u
  97. $(KernelPackage/mt76-default)
  98. TITLE:=MediaTek MT76x2U wireless driver
  99. DEPENDS+=+kmod-mt76x2-common +kmod-mt76x02-usb
  100. FILES:=\
  101. $(PKG_BUILD_DIR)/mt76x2/mt76x2u.ko
  102. AUTOLOAD:=$(call AutoProbe,mt76x2u)
  103. endef
  104. define KernelPackage/mt76x2
  105. $(KernelPackage/mt76-default)
  106. TITLE:=MediaTek MT76x2 wireless driver
  107. DEPENDS+=@PCI_SUPPORT +kmod-mt76x2-common
  108. FILES:=\
  109. $(PKG_BUILD_DIR)/mt76x2/mt76x2e.ko
  110. AUTOLOAD:=$(call AutoProbe,mt76x2e)
  111. endef
  112. define KernelPackage/mt7603
  113. $(KernelPackage/mt76-default)
  114. TITLE:=MediaTek MT7603 wireless driver
  115. DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
  116. FILES:=\
  117. $(PKG_BUILD_DIR)/mt7603/mt7603e.ko
  118. AUTOLOAD:=$(call AutoProbe,mt7603e)
  119. endef
  120. define KernelPackage/mt7615-common
  121. $(KernelPackage/mt76-default)
  122. TITLE:=MediaTek MT7615 wireless driver common code
  123. HIDDEN:=1
  124. DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
  125. FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615-common.ko
  126. endef
  127. define KernelPackage/mt7615-firmware
  128. $(KernelPackage/mt76-default)
  129. TITLE:=MediaTek MT7615e firmware
  130. DEFAULT:=PACKAGE_kmod-mt7615e
  131. endef
  132. define KernelPackage/mt7615e
  133. $(KernelPackage/mt76-default)
  134. TITLE:=MediaTek MT7615e wireless driver
  135. DEPENDS+=@PCI_SUPPORT +kmod-mt7615-common
  136. FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615e.ko
  137. AUTOLOAD:=$(call AutoProbe,mt7615e)
  138. endef
  139. define KernelPackage/mt7663-firmware-ap
  140. $(KernelPackage/mt76-default)
  141. TITLE:=MediaTek MT7663e firmware (optimized for AP)
  142. endef
  143. define KernelPackage/mt7663-firmware-sta
  144. $(KernelPackage/mt76-default)
  145. TITLE:=MediaTek MT7663e firmware (client mode offload)
  146. endef
  147. define KernelPackage/mt7663u
  148. $(KernelPackage/mt76-default)
  149. TITLE:=MediaTek MT7663u wireless driver
  150. DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common
  151. FILES:= $(PKG_BUILD_DIR)/mt7615/mt7663u.ko
  152. AUTOLOAD:=$(call AutoProbe,mt7663u)
  153. endef
  154. define KernelPackage/mt7915e
  155. $(KernelPackage/mt76-default)
  156. TITLE:=MediaTek MT7915e wireless driver
  157. DEPENDS+=@PCI_SUPPORT +kmod-mt7615-common +@DRIVER_11AX_SUPPORT
  158. FILES:= $(PKG_BUILD_DIR)/mt7915/mt7915e.ko
  159. AUTOLOAD:=$(call AutoProbe,mt7915e)
  160. endef
  161. NOSTDINC_FLAGS = \
  162. -I$(PKG_BUILD_DIR) \
  163. -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
  164. -I$(STAGING_DIR)/usr/include/mac80211-backport \
  165. -I$(STAGING_DIR)/usr/include/mac80211/uapi \
  166. -I$(STAGING_DIR)/usr/include/mac80211 \
  167. -include backport/autoconf.h \
  168. -include backport/backport.h
  169. ifdef CONFIG_PACKAGE_MAC80211_MESH
  170. NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
  171. endif
  172. ifdef CONFIG_PACKAGE_kmod-mt76-usb
  173. PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
  174. endif
  175. ifdef CONFIG_PACKAGE_kmod-mt76x02-common
  176. PKG_MAKE_FLAGS += CONFIG_MT76x02_LIB=m
  177. endif
  178. ifdef CONFIG_PACKAGE_kmod-mt76x02-usb
  179. PKG_MAKE_FLAGS += CONFIG_MT76x02_USB=m
  180. endif
  181. ifdef CONFIG_PACKAGE_kmod-mt76x0-common
  182. PKG_MAKE_FLAGS += CONFIG_MT76x0_COMMON=m
  183. endif
  184. ifdef CONFIG_PACKAGE_kmod-mt76x0e
  185. PKG_MAKE_FLAGS += CONFIG_MT76x0E=m
  186. endif
  187. ifdef CONFIG_PACKAGE_kmod-mt76x0u
  188. PKG_MAKE_FLAGS += CONFIG_MT76x0U=m
  189. endif
  190. ifdef CONFIG_PACKAGE_kmod-mt76x2-common
  191. PKG_MAKE_FLAGS += CONFIG_MT76x2_COMMON=m
  192. endif
  193. ifdef CONFIG_PACKAGE_kmod-mt76x2
  194. PKG_MAKE_FLAGS += CONFIG_MT76x2E=m
  195. endif
  196. ifdef CONFIG_PACKAGE_kmod-mt76x2u
  197. PKG_MAKE_FLAGS += CONFIG_MT76x2U=m
  198. endif
  199. ifdef CONFIG_PACKAGE_kmod-mt7603
  200. PKG_MAKE_FLAGS += CONFIG_MT7603E=m
  201. endif
  202. ifdef CONFIG_PACKAGE_kmod-mt7615-common
  203. PKG_MAKE_FLAGS += CONFIG_MT7615_COMMON=m
  204. endif
  205. ifdef CONFIG_PACKAGE_kmod-mt7615e
  206. PKG_MAKE_FLAGS += CONFIG_MT7615E=m
  207. ifdef CONFIG_TARGET_mediatek_mt7622
  208. PKG_MAKE_FLAGS += CONFIG_MT7622_WMAC=y
  209. NOSTDINC_FLAGS += -DCONFIG_MT7622_WMAC
  210. endif
  211. endif
  212. ifdef CONFIG_PACKAGE_kmod-mt7663u
  213. PKG_MAKE_FLAGS += CONFIG_MT7663U=m
  214. endif
  215. ifdef CONFIG_PACKAGE_kmod-mt7915e
  216. PKG_MAKE_FLAGS += CONFIG_MT7915E=m
  217. endif
  218. define Build/Compile
  219. +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
  220. $(KERNEL_MAKE_FLAGS) \
  221. $(PKG_MAKE_FLAGS) \
  222. M="$(PKG_BUILD_DIR)" \
  223. NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
  224. modules
  225. endef
  226. define Package/kmod-mt76/install
  227. true
  228. endef
  229. define KernelPackage/mt76x0-common/install
  230. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  231. cp \
  232. $(PKG_BUILD_DIR)/firmware/mt7610e.bin \
  233. $(1)/lib/firmware/mediatek
  234. endef
  235. define KernelPackage/mt76x2-common/install
  236. $(INSTALL_DIR) $(1)/lib/firmware
  237. cp \
  238. $(PKG_BUILD_DIR)/firmware/mt7662_rom_patch.bin \
  239. $(PKG_BUILD_DIR)/firmware/mt7662.bin \
  240. $(1)/lib/firmware
  241. endef
  242. define KernelPackage/mt76x0u/install
  243. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  244. ln -sf mt7610e.bin $(1)/lib/firmware/mediatek/mt7610u.bin
  245. endef
  246. define KernelPackage/mt76x2u/install
  247. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  248. ln -sf ../mt7662.bin $(1)/lib/firmware/mediatek/mt7662u.bin
  249. ln -sf ../mt7662_rom_patch.bin $(1)/lib/firmware/mediatek/mt7662u_rom_patch.bin
  250. endef
  251. define KernelPackage/mt7603/install
  252. $(INSTALL_DIR) $(1)/lib/firmware
  253. cp $(if $(CONFIG_TARGET_ramips_mt76x8), \
  254. $(PKG_BUILD_DIR)/firmware/mt7628_e1.bin \
  255. $(PKG_BUILD_DIR)/firmware/mt7628_e2.bin \
  256. ,\
  257. $(PKG_BUILD_DIR)/firmware/mt7603_e1.bin \
  258. $(PKG_BUILD_DIR)/firmware/mt7603_e2.bin \
  259. ) \
  260. $(1)/lib/firmware
  261. endef
  262. define KernelPackage/mt7615-firmware/install
  263. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  264. cp \
  265. $(PKG_BUILD_DIR)/firmware/mt7615_cr4.bin \
  266. $(PKG_BUILD_DIR)/firmware/mt7615_n9.bin \
  267. $(PKG_BUILD_DIR)/firmware/mt7615_rom_patch.bin \
  268. $(if $(CONFIG_TARGET_mediatek_mt7622), \
  269. $(PKG_BUILD_DIR)/firmware/mt7622_n9.bin \
  270. $(PKG_BUILD_DIR)/firmware/mt7622_rom_patch.bin) \
  271. $(1)/lib/firmware/mediatek
  272. endef
  273. define KernelPackage/mt7663-firmware-ap/install
  274. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  275. cp \
  276. $(PKG_BUILD_DIR)/firmware/mt7663_n9_rebb.bin \
  277. $(PKG_BUILD_DIR)/firmware/mt7663pr2h_rebb.bin \
  278. $(1)/lib/firmware/mediatek
  279. endef
  280. define KernelPackage/mt7663-firmware-sta/install
  281. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  282. cp \
  283. $(PKG_BUILD_DIR)/firmware/mt7663_n9_v3.bin \
  284. $(PKG_BUILD_DIR)/firmware/mt7663pr2h.bin \
  285. $(1)/lib/firmware/mediatek
  286. endef
  287. define KernelPackage/mt7915e/install
  288. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  289. cp \
  290. $(PKG_BUILD_DIR)/firmware/mt7915_wa.bin \
  291. $(PKG_BUILD_DIR)/firmware/mt7915_wm.bin \
  292. $(PKG_BUILD_DIR)/firmware/mt7915_rom_patch.bin \
  293. $(1)/lib/firmware/mediatek
  294. endef
  295. $(eval $(call KernelPackage,mt76-core))
  296. $(eval $(call KernelPackage,mt76-usb))
  297. $(eval $(call KernelPackage,mt76x02-usb))
  298. $(eval $(call KernelPackage,mt76x02-common))
  299. $(eval $(call KernelPackage,mt76x0-common))
  300. $(eval $(call KernelPackage,mt76x0e))
  301. $(eval $(call KernelPackage,mt76x0u))
  302. $(eval $(call KernelPackage,mt76x2-common))
  303. $(eval $(call KernelPackage,mt76x2u))
  304. $(eval $(call KernelPackage,mt76x2))
  305. $(eval $(call KernelPackage,mt7603))
  306. $(eval $(call KernelPackage,mt7615-common))
  307. $(eval $(call KernelPackage,mt7615-firmware))
  308. $(eval $(call KernelPackage,mt7615e))
  309. $(eval $(call KernelPackage,mt7663-firmware-ap))
  310. $(eval $(call KernelPackage,mt7663-firmware-sta))
  311. $(eval $(call KernelPackage,mt7663u))
  312. $(eval $(call KernelPackage,mt7915e))
  313. $(eval $(call KernelPackage,mt76))