Makefile 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792
  1. include $(TOPDIR)/rules.mk
  2. PKG_NAME:=mt76
  3. PKG_RELEASE=1
  4. PKG_LICENSE:=BSD-3-Clause-Clear
  5. PKG_LICENSE_FILES:=
  6. PKG_SOURCE_URL:=https://github.com/openwrt/mt76
  7. PKG_SOURCE_PROTO:=git
  8. PKG_SOURCE_DATE:=2026-03-21
  9. PKG_SOURCE_VERSION:=018f60316d4dd6b4e741874eda40e2dfaa29df3b
  10. PKG_MIRROR_HASH:=54a8125453a6fe04c89cf5335bdf0ea16c409361e1e5a79fb339d67cee26df0e
  11. PKG_MAINTAINER:=Felix Fietkau <[email protected]>
  12. PKG_USE_NINJA:=0
  13. PKG_BUILD_PARALLEL:=1
  14. PKG_CONFIG_DEPENDS += \
  15. CONFIG_PACKAGE_kmod-mt76-usb \
  16. CONFIG_PACKAGE_kmod-mt76x02-common \
  17. CONFIG_PACKAGE_kmod-mt76x0-common \
  18. CONFIG_PACKAGE_kmod-mt76x0u \
  19. CONFIG_PACKAGE_kmod-mt76x2-common \
  20. CONFIG_PACKAGE_kmod-mt76x2 \
  21. CONFIG_PACKAGE_kmod-mt76x2u \
  22. CONFIG_PACKAGE_kmod-mt7603 \
  23. CONFIG_PACKAGE_CFG80211_TESTMODE
  24. STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
  25. include $(INCLUDE_DIR)/kernel.mk
  26. include $(INCLUDE_DIR)/package.mk
  27. include $(INCLUDE_DIR)/cmake.mk
  28. CMAKE_SOURCE_DIR:=$(PKG_BUILD_DIR)/tools
  29. CMAKE_BINARY_DIR:=$(PKG_BUILD_DIR)/tools
  30. define KernelPackage/mt76-default
  31. SUBMENU:=Wireless Drivers
  32. DEPENDS:= \
  33. +kmod-mac80211 \
  34. +@DRIVER_11AC_SUPPORT \
  35. +@KERNEL_PAGE_POOL \
  36. @!TARGET_uml
  37. endef
  38. define KernelPackage/mt76
  39. SUBMENU:=Wireless Drivers
  40. TITLE:=MediaTek MT76x2/MT7603 wireless driver (metapackage)
  41. DEPENDS:= \
  42. +kmod-mt76-core +kmod-mt76x2 +kmod-mt7603
  43. endef
  44. define KernelPackage/mt76-core
  45. $(KernelPackage/mt76-default)
  46. TITLE:=MediaTek MT76xx wireless driver
  47. HIDDEN:=1
  48. FILES:=\
  49. $(PKG_BUILD_DIR)/mt76.ko
  50. endef
  51. define KernelPackage/mt76-usb
  52. $(KernelPackage/mt76-default)
  53. TITLE:=MediaTek MT76xx wireless driver USB support
  54. DEPENDS += +kmod-usb-core +kmod-mt76-core
  55. HIDDEN:=1
  56. FILES:=\
  57. $(PKG_BUILD_DIR)/mt76-usb.ko
  58. endef
  59. define KernelPackage/mt76x02-usb
  60. $(KernelPackage/mt76-default)
  61. TITLE:=MediaTek MT76x0/MT76x2 USB wireless driver common code
  62. DEPENDS+=+kmod-mt76-usb +kmod-mt76x02-common
  63. HIDDEN:=1
  64. FILES:=$(PKG_BUILD_DIR)/mt76x02-usb.ko
  65. endef
  66. define KernelPackage/mt76x02-common
  67. $(KernelPackage/mt76-default)
  68. TITLE:=MediaTek MT76x0/MT76x2 wireless driver common code
  69. DEPENDS+=+kmod-mt76-core
  70. HIDDEN:=1
  71. FILES:=$(PKG_BUILD_DIR)/mt76x02-lib.ko
  72. endef
  73. define KernelPackage/mt76x0-common
  74. $(KernelPackage/mt76-default)
  75. TITLE:=MediaTek MT76x0 wireless driver common code
  76. DEPENDS+=+kmod-mt76x02-common
  77. HIDDEN:=1
  78. FILES:=$(PKG_BUILD_DIR)/mt76x0/mt76x0-common.ko
  79. endef
  80. define KernelPackage/mt76x0e
  81. $(KernelPackage/mt76-default)
  82. TITLE:=MediaTek MT76x0E wireless driver
  83. DEPENDS+=@PCI_SUPPORT +kmod-mt76x0-common
  84. FILES:=\
  85. $(PKG_BUILD_DIR)/mt76x0/mt76x0e.ko
  86. AUTOLOAD:=$(call AutoProbe,mt76x0e)
  87. endef
  88. define KernelPackage/mt76x0u
  89. $(KernelPackage/mt76-default)
  90. TITLE:=MediaTek MT76x0U wireless driver
  91. DEPENDS+=+kmod-mt76x0-common +kmod-mt76x02-usb
  92. FILES:=\
  93. $(PKG_BUILD_DIR)/mt76x0/mt76x0u.ko
  94. AUTOLOAD:=$(call AutoProbe,mt76x0u)
  95. endef
  96. define KernelPackage/mt76x2-common
  97. $(KernelPackage/mt76-default)
  98. TITLE:=MediaTek MT76x2 wireless driver common code
  99. DEPENDS+=+kmod-mt76-core +kmod-mt76x02-common
  100. HIDDEN:=1
  101. FILES:=$(PKG_BUILD_DIR)/mt76x2/mt76x2-common.ko
  102. endef
  103. define KernelPackage/mt76x2u
  104. $(KernelPackage/mt76-default)
  105. TITLE:=MediaTek MT76x2U wireless driver
  106. DEPENDS+=+kmod-mt76x2-common +kmod-mt76x02-usb
  107. FILES:=\
  108. $(PKG_BUILD_DIR)/mt76x2/mt76x2u.ko
  109. AUTOLOAD:=$(call AutoProbe,mt76x2u)
  110. endef
  111. define KernelPackage/mt76x2
  112. $(KernelPackage/mt76-default)
  113. TITLE:=MediaTek MT76x2 wireless driver
  114. DEPENDS+=@PCI_SUPPORT +kmod-mt76x2-common
  115. FILES:=\
  116. $(PKG_BUILD_DIR)/mt76x2/mt76x2e.ko
  117. AUTOLOAD:=$(call AutoProbe,mt76x2e)
  118. endef
  119. define KernelPackage/mt7603
  120. $(KernelPackage/mt76-default)
  121. TITLE:=MediaTek MT7603 wireless driver
  122. DEPENDS+=@PCI_SUPPORT +kmod-mt76-core
  123. FILES:=\
  124. $(PKG_BUILD_DIR)/mt7603/mt7603e.ko
  125. AUTOLOAD:=$(call AutoProbe,mt7603e)
  126. endef
  127. define KernelPackage/mt76-connac
  128. $(KernelPackage/mt76-default)
  129. TITLE:=MediaTek MT7615/MT79xx wireless driver common code
  130. HIDDEN:=1
  131. DEPENDS+=+kmod-mt76-core
  132. FILES:= $(PKG_BUILD_DIR)/mt76-connac-lib.ko
  133. endef
  134. define KernelPackage/mt76-sdio
  135. $(KernelPackage/mt76-default)
  136. TITLE:=MediaTek MT7615/MT79xx SDIO driver common code
  137. HIDDEN:=1
  138. DEPENDS+=+kmod-mt76-core +kmod-mmc
  139. FILES:= $(PKG_BUILD_DIR)/mt76-sdio.ko
  140. endef
  141. define KernelPackage/mt7615-common
  142. $(KernelPackage/mt76-default)
  143. TITLE:=MediaTek MT7615 wireless driver common code
  144. HIDDEN:=1
  145. DEPENDS+=@PCI_SUPPORT +kmod-mt76-core +kmod-mt76-connac +kmod-hwmon-core
  146. FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615-common.ko
  147. endef
  148. define KernelPackage/mt7615-firmware
  149. $(KernelPackage/mt76-default)
  150. TITLE:=MediaTek MT7615e firmware
  151. DEPENDS+=+kmod-mt7615e
  152. endef
  153. define KernelPackage/mt7615e
  154. $(KernelPackage/mt76-default)
  155. TITLE:=MediaTek MT7615e wireless driver
  156. DEPENDS+=@PCI_SUPPORT +kmod-mt7615-common
  157. FILES:= $(PKG_BUILD_DIR)/mt7615/mt7615e.ko
  158. AUTOLOAD:=$(call AutoProbe,mt7615e)
  159. endef
  160. define KernelPackage/mt7622-firmware
  161. $(KernelPackage/mt76-default)
  162. TITLE:=MediaTek MT7622 firmware
  163. DEPENDS+=+kmod-mt7615e
  164. endef
  165. define KernelPackage/mt7663-firmware-ap
  166. $(KernelPackage/mt76-default)
  167. TITLE:=MediaTek MT7663e firmware (optimized for AP)
  168. endef
  169. define KernelPackage/mt7663-firmware-sta
  170. $(KernelPackage/mt76-default)
  171. TITLE:=MediaTek MT7663e firmware (client mode offload)
  172. endef
  173. define KernelPackage/mt7663-usb-sdio
  174. $(KernelPackage/mt76-default)
  175. TITLE:=MediaTek MT7663 USB/SDIO shared code
  176. DEPENDS+=+kmod-mt7615-common
  177. HIDDEN:=1
  178. FILES:= \
  179. $(PKG_BUILD_DIR)/mt7615/mt7663-usb-sdio-common.ko
  180. endef
  181. define KernelPackage/mt7663s
  182. $(KernelPackage/mt76-default)
  183. TITLE:=MediaTek MT7663s wireless driver
  184. DEPENDS+=+kmod-mt76-sdio +kmod-mt7615-common +kmod-mt7663-usb-sdio
  185. FILES:= \
  186. $(PKG_BUILD_DIR)/mt7615/mt7663s.ko
  187. AUTOLOAD:=$(call AutoProbe,mt7663s)
  188. endef
  189. define KernelPackage/mt7663u
  190. $(KernelPackage/mt76-default)
  191. TITLE:=MediaTek MT7663u wireless driver
  192. DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common +kmod-mt7663-usb-sdio
  193. FILES:= $(PKG_BUILD_DIR)/mt7615/mt7663u.ko
  194. AUTOLOAD:=$(call AutoProbe,mt7663u)
  195. endef
  196. define KernelPackage/mt7915-firmware
  197. $(KernelPackage/mt76-default)
  198. TITLE:=MediaTek MT7915 firmware
  199. DEPENDS+=+kmod-mt7915e
  200. endef
  201. define KernelPackage/mt7915e
  202. $(KernelPackage/mt76-default)
  203. TITLE:=MediaTek MT7915e wireless driver
  204. DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core +kmod-thermal +@DRIVER_11AX_SUPPORT +@KERNEL_RELAY
  205. FILES:= $(PKG_BUILD_DIR)/mt7915/mt7915e.ko
  206. AUTOLOAD:=$(call AutoProbe,mt7915e)
  207. endef
  208. define KernelPackage/mt7916-firmware
  209. $(KernelPackage/mt76-default)
  210. DEPENDS+=+kmod-mt7915e
  211. TITLE:=MediaTek MT7916 firmware
  212. endef
  213. define KernelPackage/mt7981-firmware
  214. $(KernelPackage/mt76-default)
  215. DEPENDS:=@TARGET_mediatek_filogic
  216. TITLE:=MediaTek MT7981 firmware
  217. endef
  218. define KernelPackage/mt7986-firmware
  219. $(KernelPackage/mt76-default)
  220. DEPENDS:=@TARGET_mediatek_filogic
  221. TITLE:=MediaTek MT7986 firmware
  222. endef
  223. define KernelPackage/mt7921-firmware
  224. $(KernelPackage/mt76-default)
  225. TITLE:=MediaTek MT7921 firmware
  226. endef
  227. define KernelPackage/mt7922-firmware
  228. $(KernelPackage/mt76-default)
  229. TITLE:=MediaTek MT7922 firmware
  230. endef
  231. define KernelPackage/mt792x-common
  232. $(KernelPackage/mt76-default)
  233. TITLE:=MediaTek MT792x wireless driver common code
  234. HIDDEN:=1
  235. DEPENDS+=+kmod-mt76-connac +@DRIVER_11AX_SUPPORT
  236. FILES:= $(PKG_BUILD_DIR)/mt792x-lib.ko
  237. endef
  238. define KernelPackage/mt792x-usb
  239. $(KernelPackage/mt76-default)
  240. TITLE:=MediaTek MT792x wireless driver USB code
  241. HIDDEN:=1
  242. DEPENDS+=+kmod-mt792x-common +kmod-mt76-usb +@DRIVER_11AX_SUPPORT
  243. FILES:= $(PKG_BUILD_DIR)/mt792x-usb.ko
  244. endef
  245. define KernelPackage/mt7921-common
  246. $(KernelPackage/mt76-default)
  247. TITLE:=MediaTek MT7921 wireless driver common code
  248. HIDDEN:=1
  249. DEPENDS+=+kmod-mt792x-common +kmod-mt7921-firmware +@DRIVER_11AX_SUPPORT +kmod-hwmon-core
  250. FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921-common.ko
  251. endef
  252. define KernelPackage/mt7921u
  253. $(KernelPackage/mt76-default)
  254. TITLE:=MediaTek MT7921U wireless driver
  255. DEPENDS+=+kmod-mt792x-usb +kmod-mt7921-common
  256. FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921u.ko
  257. AUTOLOAD:=$(call AutoProbe,mt7921u)
  258. endef
  259. define KernelPackage/mt7921s
  260. $(KernelPackage/mt76-default)
  261. TITLE:=MediaTek MT7921S wireless driver
  262. DEPENDS+=+kmod-mt76-sdio +kmod-mt7921-common
  263. FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921s.ko
  264. AUTOLOAD:=$(call AutoProbe,mt7921s)
  265. endef
  266. define KernelPackage/mt7921e
  267. $(KernelPackage/mt76-default)
  268. TITLE:=MediaTek MT7921e wireless driver
  269. DEPENDS+=@PCI_SUPPORT +kmod-mt7921-common
  270. FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921e.ko
  271. AUTOLOAD:=$(call AutoProbe,mt7921e)
  272. endef
  273. define KernelPackage/mt7996e
  274. $(KernelPackage/mt76-default)
  275. TITLE:=MediaTek MT7996E wireless driver
  276. DEPENDS+=@PCI_SUPPORT +kmod-mt76-connac +kmod-hwmon-core +@DRIVER_11AX_SUPPORT \
  277. +@KERNEL_RELAY +@DRIVER_11BE_SUPPORT
  278. FILES:= $(PKG_BUILD_DIR)/mt7996/mt7996e.ko
  279. AUTOLOAD:=$(call AutoProbe,mt7996e)
  280. endef
  281. define KernelPackage/mt7990-firmware
  282. $(KernelPackage/mt76-default)
  283. TITLE:=MediaTek MT7990 firmware
  284. DEPENDS+=+kmod-mt7996e
  285. endef
  286. define KernelPackage/mt7992-firmware
  287. $(KernelPackage/mt76-default)
  288. TITLE:=MediaTek MT7992 firmware
  289. DEPENDS+=+kmod-mt7996e
  290. endef
  291. define KernelPackage/mt7992-23-firmware
  292. $(KernelPackage/mt76-default)
  293. TITLE:=MediaTek MT7996 firmware (2+3 antenna variant)
  294. DEPENDS+=+kmod-mt7996e
  295. endef
  296. define KernelPackage/mt7996-firmware-common
  297. $(KernelPackage/mt76-default)
  298. TITLE:=MediaTek MT7996 firmware (common files)
  299. HIDDEN:=1
  300. endef
  301. define KernelPackage/mt7996-firmware
  302. $(KernelPackage/mt76-default)
  303. TITLE:=MediaTek MT7996 firmware
  304. DEPENDS+=+kmod-mt7996e +kmod-mt7996-firmware-common
  305. endef
  306. define KernelPackage/mt7996-233-firmware
  307. $(KernelPackage/mt76-default)
  308. TITLE:=MediaTek MT7996 firmware (2+3+3 antenna variant)
  309. DEPENDS+=+kmod-mt7996e +kmod-mt7996-firmware-common
  310. endef
  311. define KernelPackage/mt7925-firmware
  312. $(KernelPackage/mt76-default)
  313. TITLE:=MediaTek MT7925 firmware
  314. DEPENDS+=+kmod-mt7925e
  315. endef
  316. define KernelPackage/mt7925-common
  317. $(KernelPackage/mt76-default)
  318. TITLE:=MediaTek MT7925 wireless driver common code
  319. HIDDEN:=1
  320. DEPENDS+=+kmod-mt792x-common +@DRIVER_11AX_SUPPORT +kmod-hwmon-core +@DRIVER_11BE_SUPPORT
  321. FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925-common.ko
  322. endef
  323. define KernelPackage/mt7925u
  324. $(KernelPackage/mt76-default)
  325. TITLE:=MediaTek MT7925U wireless driver
  326. DEPENDS+=+kmod-mt792x-usb +kmod-mt7925-common
  327. FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925u.ko
  328. AUTOLOAD:=$(call AutoProbe,mt7925u)
  329. endef
  330. define KernelPackage/mt7925e
  331. $(KernelPackage/mt76-default)
  332. TITLE:=MediaTek MT7925e wireless driver
  333. DEPENDS+=@PCI_SUPPORT +kmod-mt7925-common
  334. FILES:= $(PKG_BUILD_DIR)/mt7925/mt7925e.ko
  335. AUTOLOAD:=$(call AutoProbe,mt7925e)
  336. endef
  337. define Package/mt76-test
  338. SECTION:=devel
  339. CATEGORY:=Development
  340. TITLE:=mt76 testmode CLI
  341. DEPENDS:=kmod-mt76-core +libnl-tiny
  342. endef
  343. TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
  344. NOSTDINC_FLAGS := \
  345. $(KERNEL_NOSTDINC_FLAGS) \
  346. -I$(PKG_BUILD_DIR) \
  347. -I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
  348. -I$(STAGING_DIR)/usr/include/mac80211-backport \
  349. -I$(STAGING_DIR)/usr/include/mac80211/uapi \
  350. -I$(STAGING_DIR)/usr/include/mac80211 \
  351. -include backport/autoconf.h \
  352. -include backport/backport.h
  353. ifdef CONFIG_PACKAGE_MAC80211_MESH
  354. NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
  355. endif
  356. ifdef CONFIG_PACKAGE_CFG80211_TESTMODE
  357. NOSTDINC_FLAGS += -DCONFIG_NL80211_TESTMODE
  358. PKG_MAKE_FLAGS += CONFIG_NL80211_TESTMODE=y
  359. endif
  360. ifdef CONFIG_PACKAGE_kmod-mt76-usb
  361. PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
  362. endif
  363. ifdef CONFIG_PACKAGE_kmod-mt76x02-common
  364. PKG_MAKE_FLAGS += CONFIG_MT76x02_LIB=m
  365. endif
  366. ifdef CONFIG_PACKAGE_kmod-mt76x02-usb
  367. PKG_MAKE_FLAGS += CONFIG_MT76x02_USB=m
  368. endif
  369. ifdef CONFIG_PACKAGE_kmod-mt76x0-common
  370. PKG_MAKE_FLAGS += CONFIG_MT76x0_COMMON=m
  371. endif
  372. ifdef CONFIG_PACKAGE_kmod-mt76x0e
  373. PKG_MAKE_FLAGS += CONFIG_MT76x0E=m
  374. endif
  375. ifdef CONFIG_PACKAGE_kmod-mt76x0u
  376. PKG_MAKE_FLAGS += CONFIG_MT76x0U=m
  377. endif
  378. ifdef CONFIG_PACKAGE_kmod-mt76x2-common
  379. PKG_MAKE_FLAGS += CONFIG_MT76x2_COMMON=m
  380. endif
  381. ifdef CONFIG_PACKAGE_kmod-mt76x2
  382. PKG_MAKE_FLAGS += CONFIG_MT76x2E=m
  383. endif
  384. ifdef CONFIG_PACKAGE_kmod-mt76x2u
  385. PKG_MAKE_FLAGS += CONFIG_MT76x2U=m
  386. endif
  387. ifdef CONFIG_PACKAGE_kmod-mt7603
  388. PKG_MAKE_FLAGS += CONFIG_MT7603E=m
  389. endif
  390. ifdef CONFIG_PACKAGE_kmod-mt76-connac
  391. PKG_MAKE_FLAGS += CONFIG_MT76_CONNAC_LIB=m
  392. endif
  393. ifdef CONFIG_PACKAGE_kmod-mt76-sdio
  394. PKG_MAKE_FLAGS += CONFIG_MT76_SDIO=m
  395. endif
  396. ifdef CONFIG_PACKAGE_kmod-mt7615-common
  397. PKG_MAKE_FLAGS += CONFIG_MT7615_COMMON=m
  398. endif
  399. ifdef CONFIG_PACKAGE_kmod-mt7615e
  400. PKG_MAKE_FLAGS += CONFIG_MT7615E=m
  401. ifdef CONFIG_TARGET_mediatek_mt7622
  402. PKG_MAKE_FLAGS += CONFIG_MT7622_WMAC=y
  403. NOSTDINC_FLAGS += -DCONFIG_MT7622_WMAC
  404. endif
  405. endif
  406. ifdef CONFIG_PACKAGE_kmod-mt7663-usb-sdio
  407. PKG_MAKE_FLAGS += CONFIG_MT7663_USB_SDIO_COMMON=m
  408. endif
  409. ifdef CONFIG_PACKAGE_kmod-mt7663s
  410. PKG_MAKE_FLAGS += CONFIG_MT7663S=m
  411. endif
  412. ifdef CONFIG_PACKAGE_kmod-mt7663u
  413. PKG_MAKE_FLAGS += CONFIG_MT7663U=m
  414. endif
  415. ifdef CONFIG_PACKAGE_kmod-mt7915e
  416. PKG_MAKE_FLAGS += CONFIG_MT7915E=m
  417. ifdef CONFIG_TARGET_mediatek_filogic
  418. PKG_MAKE_FLAGS += CONFIG_MT798X_WMAC=y
  419. NOSTDINC_FLAGS += -DCONFIG_MT798X_WMAC
  420. endif
  421. endif
  422. ifdef CONFIG_PACKAGE_kmod-mt792x-common
  423. PKG_MAKE_FLAGS += CONFIG_MT792x_LIB=m
  424. endif
  425. ifdef CONFIG_PACKAGE_kmod-mt792x-usb
  426. PKG_MAKE_FLAGS += CONFIG_MT792x_USB=m
  427. endif
  428. ifdef CONFIG_PACKAGE_kmod-mt7921-common
  429. PKG_MAKE_FLAGS += CONFIG_MT7921_COMMON=m
  430. endif
  431. ifdef CONFIG_PACKAGE_kmod-mt7921u
  432. PKG_MAKE_FLAGS += CONFIG_MT7921U=m
  433. endif
  434. ifdef CONFIG_PACKAGE_kmod-mt7921s
  435. PKG_MAKE_FLAGS += CONFIG_MT7921S=m
  436. endif
  437. ifdef CONFIG_PACKAGE_kmod-mt7921e
  438. PKG_MAKE_FLAGS += CONFIG_MT7921E=m
  439. endif
  440. ifdef CONFIG_PACKAGE_kmod-mt7996e
  441. PKG_MAKE_FLAGS += CONFIG_MT7996E=m
  442. ifdef CONFIG_TARGET_airoha_an7581
  443. PKG_MAKE_FLAGS += CONFIG_MT76_NPU=y
  444. PKG_MAKE_FLAGS += CONFIG_MT7996_NPU=y
  445. NOSTDINC_FLAGS += -DCONFIG_MT76_NPU
  446. NOSTDINC_FLAGS += -DCONFIG_MT7996_NPU
  447. endif
  448. endif
  449. ifdef CONFIG_PACKAGE_kmod-mt7925-common
  450. PKG_MAKE_FLAGS += CONFIG_MT7925_COMMON=m
  451. endif
  452. ifdef CONFIG_PACKAGE_kmod-mt7925u
  453. PKG_MAKE_FLAGS += CONFIG_MT7925U=m
  454. endif
  455. ifdef CONFIG_PACKAGE_kmod-mt7925e
  456. PKG_MAKE_FLAGS += CONFIG_MT7925E=m
  457. endif
  458. define Build/Compile
  459. +$(KERNEL_MAKE) $(PKG_JOBS) \
  460. $(PKG_MAKE_FLAGS) \
  461. M="$(PKG_BUILD_DIR)" \
  462. NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
  463. modules
  464. $(MAKE) -C $(PKG_BUILD_DIR)/tools
  465. endef
  466. define Build/Install
  467. :
  468. endef
  469. define Package/kmod-mt76/install
  470. true
  471. endef
  472. define KernelPackage/mt76x0-common/install
  473. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  474. cp \
  475. $(PKG_BUILD_DIR)/firmware/mt7610e.bin \
  476. $(1)/lib/firmware/mediatek
  477. endef
  478. define KernelPackage/mt76x2-common/install
  479. $(INSTALL_DIR) $(1)/lib/firmware
  480. cp \
  481. $(PKG_BUILD_DIR)/firmware/mt7662_rom_patch.bin \
  482. $(PKG_BUILD_DIR)/firmware/mt7662.bin \
  483. $(1)/lib/firmware
  484. endef
  485. define KernelPackage/mt76x0u/install
  486. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  487. ln -sf mt7610e.bin $(1)/lib/firmware/mediatek/mt7610u.bin
  488. endef
  489. define KernelPackage/mt76x2u/install
  490. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  491. ln -sf ../mt7662.bin $(1)/lib/firmware/mediatek/mt7662u.bin
  492. ln -sf ../mt7662_rom_patch.bin $(1)/lib/firmware/mediatek/mt7662u_rom_patch.bin
  493. endef
  494. define KernelPackage/mt7603/install
  495. $(INSTALL_DIR) $(1)/lib/firmware
  496. cp $(if $(CONFIG_TARGET_ramips_mt76x8), \
  497. $(PKG_BUILD_DIR)/firmware/mt7628_e1.bin \
  498. $(PKG_BUILD_DIR)/firmware/mt7628_e2.bin \
  499. ,\
  500. $(PKG_BUILD_DIR)/firmware/mt7603_e1.bin \
  501. $(PKG_BUILD_DIR)/firmware/mt7603_e2.bin \
  502. ) \
  503. $(1)/lib/firmware
  504. endef
  505. define KernelPackage/mt7615-firmware/install
  506. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  507. cp \
  508. $(PKG_BUILD_DIR)/firmware/mt7615_cr4.bin \
  509. $(PKG_BUILD_DIR)/firmware/mt7615_n9.bin \
  510. $(PKG_BUILD_DIR)/firmware/mt7615_rom_patch.bin \
  511. $(1)/lib/firmware/mediatek
  512. endef
  513. define KernelPackage/mt7622-firmware/install
  514. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  515. cp \
  516. $(PKG_BUILD_DIR)/firmware/mt7622_n9.bin \
  517. $(PKG_BUILD_DIR)/firmware/mt7622_rom_patch.bin \
  518. $(1)/lib/firmware/mediatek
  519. endef
  520. define KernelPackage/mt7663-firmware-ap/install
  521. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  522. cp \
  523. $(PKG_BUILD_DIR)/firmware/mt7663_n9_rebb.bin \
  524. $(PKG_BUILD_DIR)/firmware/mt7663pr2h_rebb.bin \
  525. $(1)/lib/firmware/mediatek
  526. endef
  527. define KernelPackage/mt7663-firmware-sta/install
  528. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  529. cp \
  530. $(PKG_BUILD_DIR)/firmware/mt7663_n9_v3.bin \
  531. $(PKG_BUILD_DIR)/firmware/mt7663pr2h.bin \
  532. $(1)/lib/firmware/mediatek
  533. endef
  534. define KernelPackage/mt7915-firmware/install
  535. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  536. cp \
  537. $(PKG_BUILD_DIR)/firmware/mt7915_wa.bin \
  538. $(PKG_BUILD_DIR)/firmware/mt7915_wm.bin \
  539. $(PKG_BUILD_DIR)/firmware/mt7915_rom_patch.bin \
  540. $(1)/lib/firmware/mediatek
  541. endef
  542. define KernelPackage/mt7916-firmware/install
  543. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  544. cp \
  545. $(PKG_BUILD_DIR)/firmware/mt7916_wa.bin \
  546. $(PKG_BUILD_DIR)/firmware/mt7916_wm.bin \
  547. $(PKG_BUILD_DIR)/firmware/mt7916_rom_patch.bin \
  548. $(1)/lib/firmware/mediatek
  549. endef
  550. define KernelPackage/mt7981-firmware/install
  551. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  552. cp \
  553. $(PKG_BUILD_DIR)/firmware/mt7981_wa.bin \
  554. $(PKG_BUILD_DIR)/firmware/mt7981_wm.bin \
  555. $(PKG_BUILD_DIR)/firmware/mt7981_rom_patch.bin \
  556. $(1)/lib/firmware/mediatek
  557. endef
  558. define KernelPackage/mt7986-firmware/install
  559. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  560. cp \
  561. $(PKG_BUILD_DIR)/firmware/mt7986_wa.bin \
  562. $(PKG_BUILD_DIR)/firmware/mt7986_wm_mt7975.bin \
  563. $(PKG_BUILD_DIR)/firmware/mt7986_wm.bin \
  564. $(PKG_BUILD_DIR)/firmware/mt7986_rom_patch_mt7975.bin \
  565. $(PKG_BUILD_DIR)/firmware/mt7986_rom_patch.bin \
  566. $(1)/lib/firmware/mediatek
  567. endef
  568. define KernelPackage/mt7921-firmware/install
  569. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  570. cp \
  571. $(PKG_BUILD_DIR)/firmware/WIFI_MT7961_patch_mcu_1_2_hdr.bin \
  572. $(PKG_BUILD_DIR)/firmware/WIFI_RAM_CODE_MT7961_1.bin \
  573. $(1)/lib/firmware/mediatek
  574. endef
  575. define KernelPackage/mt7922-firmware/install
  576. $(INSTALL_DIR) $(1)/lib/firmware/mediatek
  577. cp \
  578. $(PKG_BUILD_DIR)/firmware/WIFI_MT7922_patch_mcu_1_1_hdr.bin \
  579. $(PKG_BUILD_DIR)/firmware/WIFI_RAM_CODE_MT7922_1.bin \
  580. $(1)/lib/firmware/mediatek
  581. endef
  582. define KernelPackage/mt7925-firmware/install
  583. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7925
  584. cp \
  585. $(PKG_BUILD_DIR)/firmware/mt7925/WIFI_MT7925_PATCH_MCU_1_1_hdr.bin \
  586. $(PKG_BUILD_DIR)/firmware/mt7925/WIFI_RAM_CODE_MT7925_1_1.bin \
  587. $(1)/lib/firmware/mediatek/mt7925
  588. endef
  589. define KernelPackage/mt7990-firmware/install
  590. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
  591. cp \
  592. $(PKG_BUILD_DIR)/firmware/mt7996/mt7990_eeprom.bin \
  593. $(PKG_BUILD_DIR)/firmware/mt7996/mt7990_eeprom_2i5i.bin \
  594. $(PKG_BUILD_DIR)/firmware/mt7996/mt7990_rom_patch.bin \
  595. $(PKG_BUILD_DIR)/firmware/mt7996/mt7990_wm.bin \
  596. $(1)/lib/firmware/mediatek/mt7996
  597. endef
  598. define KernelPackage/mt7992-firmware/install
  599. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
  600. cp \
  601. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_dsp.bin \
  602. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_eeprom.bin \
  603. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_eeprom_2i5i.bin \
  604. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_eeprom_2i5e.bin \
  605. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_rom_patch.bin \
  606. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_wa.bin \
  607. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_wm.bin \
  608. $(1)/lib/firmware/mediatek/mt7996
  609. endef
  610. define KernelPackage/mt7992-23-firmware/install
  611. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
  612. cp \
  613. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_dsp_23.bin \
  614. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_eeprom_23.bin \
  615. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_eeprom_23_2i5i.bin \
  616. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_rom_patch_23.bin \
  617. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_wa_23.bin \
  618. $(PKG_BUILD_DIR)/firmware/mt7996/mt7992_wm_23.bin \
  619. $(1)/lib/firmware/mediatek/mt7996
  620. endef
  621. define KernelPackage/mt7996-firmware-common/install
  622. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
  623. cp \
  624. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_dsp.bin \
  625. $(1)/lib/firmware/mediatek/mt7996
  626. endef
  627. define KernelPackage/mt7996-firmware/install
  628. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
  629. cp \
  630. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_eeprom.bin \
  631. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_eeprom_2i5i6i.bin \
  632. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_rom_patch.bin \
  633. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wa.bin \
  634. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wm.bin \
  635. $(1)/lib/firmware/mediatek/mt7996
  636. endef
  637. define KernelPackage/mt7996-233-firmware/install
  638. $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
  639. cp \
  640. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_eeprom_233.bin \
  641. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_eeprom_233_2i5i6i.bin \
  642. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_rom_patch_233.bin \
  643. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wa_233.bin \
  644. $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wm_233.bin \
  645. $(1)/lib/firmware/mediatek/mt7996
  646. endef
  647. define Package/mt76-test/install
  648. mkdir -p $(1)/usr/sbin
  649. $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/mt76-test $(1)/usr/sbin
  650. endef
  651. define Build/InstallDev
  652. mkdir -p $(STAGING_DIR_IMAGE)
  653. $(CP) $(PKG_BUILD_DIR)/firmware/mt7981_eeprom_mt7976_dbdc.bin $(STAGING_DIR_IMAGE)/
  654. endef
  655. $(eval $(call KernelPackage,mt76-core))
  656. $(eval $(call KernelPackage,mt76-usb))
  657. $(eval $(call KernelPackage,mt76x02-usb))
  658. $(eval $(call KernelPackage,mt76x02-common))
  659. $(eval $(call KernelPackage,mt76x0-common))
  660. $(eval $(call KernelPackage,mt76x0e))
  661. $(eval $(call KernelPackage,mt76x0u))
  662. $(eval $(call KernelPackage,mt76x2-common))
  663. $(eval $(call KernelPackage,mt76x2u))
  664. $(eval $(call KernelPackage,mt76x2))
  665. $(eval $(call KernelPackage,mt7603))
  666. $(eval $(call KernelPackage,mt76-connac))
  667. $(eval $(call KernelPackage,mt76-sdio))
  668. $(eval $(call KernelPackage,mt7615-common))
  669. $(eval $(call KernelPackage,mt7615-firmware))
  670. $(eval $(call KernelPackage,mt7622-firmware))
  671. $(eval $(call KernelPackage,mt7615e))
  672. $(eval $(call KernelPackage,mt7663-firmware-ap))
  673. $(eval $(call KernelPackage,mt7663-firmware-sta))
  674. $(eval $(call KernelPackage,mt7663-usb-sdio))
  675. $(eval $(call KernelPackage,mt7663u))
  676. $(eval $(call KernelPackage,mt7663s))
  677. $(eval $(call KernelPackage,mt7915-firmware))
  678. $(eval $(call KernelPackage,mt7915e))
  679. $(eval $(call KernelPackage,mt7916-firmware))
  680. $(eval $(call KernelPackage,mt7981-firmware))
  681. $(eval $(call KernelPackage,mt7986-firmware))
  682. $(eval $(call KernelPackage,mt7921-firmware))
  683. $(eval $(call KernelPackage,mt7922-firmware))
  684. $(eval $(call KernelPackage,mt7925-firmware))
  685. $(eval $(call KernelPackage,mt792x-common))
  686. $(eval $(call KernelPackage,mt792x-usb))
  687. $(eval $(call KernelPackage,mt7921-common))
  688. $(eval $(call KernelPackage,mt7925-common))
  689. $(eval $(call KernelPackage,mt7921u))
  690. $(eval $(call KernelPackage,mt7921s))
  691. $(eval $(call KernelPackage,mt7921e))
  692. $(eval $(call KernelPackage,mt7925u))
  693. $(eval $(call KernelPackage,mt7925e))
  694. $(eval $(call KernelPackage,mt7996e))
  695. $(eval $(call KernelPackage,mt7990-firmware))
  696. $(eval $(call KernelPackage,mt7992-firmware))
  697. $(eval $(call KernelPackage,mt7992-23-firmware))
  698. $(eval $(call KernelPackage,mt7996-firmware-common))
  699. $(eval $(call KernelPackage,mt7996-firmware))
  700. $(eval $(call KernelPackage,mt7996-233-firmware))
  701. $(eval $(call KernelPackage,mt76))
  702. $(eval $(call BuildPackage,mt76-test))