Makefile 22 KB

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