mt7622.mk 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. DTS_DIR := $(DTS_DIR)/mediatek
  2. define Image/Prepare
  3. # For UBI we want only one extra block
  4. rm -f $(KDIR)/ubi_mark
  5. echo -ne '\xde\xad\xc0\xde' > $(KDIR)/ubi_mark
  6. endef
  7. define Build/buffalo-kernel-trx
  8. $(eval magic=$(word 1,$(1)))
  9. $(eval dummy=$(word 2,$(1)))
  10. $(eval kern_size=$(if $(KERNEL_SIZE),$(KERNEL_SIZE),0x400000))
  11. $(if $(dummy),touch $(dummy))
  12. $(STAGING_DIR_HOST)/bin/otrx create [email protected] \
  13. $(if $(magic),-M $(magic),) \
  14. -f $@ \
  15. $(if $(dummy),\
  16. -a 0x20000 \
  17. -b $$(( $(subst k, * 1024,$(kern_size)) )) \
  18. -f $(dummy),)
  19. mv [email protected] $@
  20. endef
  21. define Build/bl2
  22. cat $(STAGING_DIR_IMAGE)/mt7622-$1-bl2.img >> $@
  23. endef
  24. define Build/bl31-uboot
  25. cat $(STAGING_DIR_IMAGE)/mt7622_$1-u-boot.fip >> $@
  26. endef
  27. define Build/mt7622-gpt
  28. cp $@ [email protected] 2>/dev/null || true
  29. ptgen -g -o [email protected] -a 1 -l 1024 \
  30. $(if $(findstring sdmmc,$1), \
  31. -H \
  32. -t 0x83 -N bl2 -r -p 512k@512k \
  33. ) \
  34. -t 0xef -N fip -r -p 2M@2M \
  35. -t 0x83 -N ubootenv -r -p 1M@4M \
  36. -N recovery -r -p 32M@6M \
  37. $(if $(findstring sdmmc,$1), \
  38. -N install -r -p 7M@38M \
  39. -t 0x2e -N production -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@45M \
  40. ) \
  41. $(if $(findstring emmc,$1), \
  42. -t 0x2e -N production -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)M@40M \
  43. )
  44. cat [email protected] >> $@
  45. rm [email protected]
  46. endef
  47. define Build/trx-nand
  48. # kernel: always use 4 MiB (-28 B or TRX header) to allow upgrades even
  49. # if it grows up between releases
  50. # root: UBI with one extra block containing UBI mark to trigger erasing
  51. # rest of partition
  52. $(STAGING_DIR_HOST)/bin/otrx create [email protected] \
  53. -M 0x32504844 \
  54. -f $(IMAGE_KERNEL) -a 0x20000 -b 0x400000 \
  55. -f $@ \
  56. -A $(KDIR)/ubi_mark -a 0x20000
  57. mv [email protected] $@
  58. endef
  59. define Device/bananapi_bpi-r64
  60. DEVICE_VENDOR := Bananapi
  61. DEVICE_MODEL := BPi-R64
  62. DEVICE_DTS := mt7622-bananapi-bpi-r64
  63. DEVICE_DTS_OVERLAY := mt7622-bananapi-bpi-r64-pcie1 mt7622-bananapi-bpi-r64-sata
  64. DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3 e2fsprogs mkf2fs f2fsck
  65. ARTIFACTS := emmc-preloader.bin emmc-bl31-uboot.fip sdcard.img.gz snand-preloader.bin snand-bl31-uboot.fip
  66. IMAGES := sysupgrade.itb
  67. KERNEL_INITRAMFS_SUFFIX := -recovery.itb
  68. ARTIFACT/emmc-preloader.bin := bl2 emmc-2ddr
  69. ARTIFACT/emmc-bl31-uboot.fip := bl31-uboot bananapi_bpi-r64-emmc
  70. ARTIFACT/snand-preloader.bin := bl2 snand-2ddr
  71. ARTIFACT/snand-bl31-uboot.fip := bl31-uboot bananapi_bpi-r64-snand
  72. ARTIFACT/sdcard.img.gz := mt7622-gpt sdmmc |\
  73. pad-to 512k | bl2 sdmmc-2ddr |\
  74. pad-to 2048k | bl31-uboot bananapi_bpi-r64-sdmmc |\
  75. $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),\
  76. pad-to 6144k | append-image-stage initramfs-recovery.itb | check-size 38912k |\
  77. ) \
  78. pad-to 38912k | mt7622-gpt emmc |\
  79. pad-to 39424k | bl2 emmc-2ddr |\
  80. pad-to 40960k | bl31-uboot bananapi_bpi-r64-emmc |\
  81. pad-to 43008k | bl2 snand-2ddr |\
  82. pad-to 43520k | bl31-uboot bananapi_bpi-r64-snand |\
  83. $(if $(CONFIG_TARGET_ROOTFS_SQUASHFS), \
  84. pad-to 46080k | append-image squashfs-sysupgrade.itb | check-size |\
  85. ) \
  86. gzip
  87. IMAGE_SIZE := $$(shell expr 45 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
  88. KERNEL := kernel-bin | gzip
  89. KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd | pad-to 128k
  90. IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
  91. endef
  92. TARGET_DEVICES += bananapi_bpi-r64
  93. define Device/buffalo_wsr-2533dhp2
  94. DEVICE_VENDOR := Buffalo
  95. DEVICE_MODEL := WSR-2533DHP2
  96. DEVICE_DTS := mt7622-buffalo-wsr-2533dhp2
  97. DEVICE_DTS_DIR := ../dts
  98. IMAGE_SIZE := 59392k
  99. KERNEL_SIZE := 4096k
  100. BLOCKSIZE := 128k
  101. PAGESIZE := 2048
  102. SUBPAGESIZE := 512
  103. UBINIZE_OPTS := -E 5
  104. BUFFALO_TAG_PLATFORM := MTK
  105. BUFFALO_TAG_VERSION := 9.99
  106. BUFFALO_TAG_MINOR := 9.99
  107. IMAGES += factory.bin factory-uboot.bin
  108. KERNEL_INITRAMFS := kernel-bin | lzma | \
  109. fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | \
  110. buffalo-kernel-trx
  111. IMAGE/factory.bin := append-ubi | trx-nand | \
  112. buffalo-enc WSR-2533DHP2 $$(BUFFALO_TAG_VERSION) -l | \
  113. buffalo-tag-dhp WSR-2533DHP2 JP JP | buffalo-enc-tag -l | buffalo-dhp-image
  114. IMAGE/factory-uboot.bin := append-ubi | trx-nand
  115. IMAGE/sysupgrade.bin := append-kernel | \
  116. buffalo-kernel-trx 0x32504844 $(KDIR)/tmp/$$(DEVICE_NAME).null | \
  117. sysupgrade-tar kernel=$$$$@ | append-metadata
  118. DEVICE_PACKAGES := kmod-mt7615-firmware swconfig
  119. endef
  120. TARGET_DEVICES += buffalo_wsr-2533dhp2
  121. define Device/elecom_wrc-2533gent
  122. DEVICE_VENDOR := Elecom
  123. DEVICE_MODEL := WRC-2533GENT
  124. DEVICE_DTS := mt7622-elecom-wrc-2533gent
  125. DEVICE_DTS_DIR := ../dts
  126. DEVICE_PACKAGES := kmod-btmtkuart kmod-mt7615-firmware kmod-usb3 swconfig
  127. endef
  128. TARGET_DEVICES += elecom_wrc-2533gent
  129. define Device/elecom_wrc-x3200gst3
  130. DEVICE_VENDOR := ELECOM
  131. DEVICE_MODEL := WRC-X3200GST3
  132. DEVICE_DTS := mt7622-elecom-wrc-x3200gst3
  133. DEVICE_DTS_DIR := ../dts
  134. IMAGE_SIZE := 25600k
  135. KERNEL_SIZE := 6144k
  136. BLOCKSIZE := 128k
  137. PAGESIZE := 2048
  138. UBINIZE_OPTS := -E 5
  139. IMAGES += factory.bin
  140. IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
  141. append-ubi | check-size | \
  142. elecom-wrc-gs-factory WRC-X3200GST3 0.00 -N | \
  143. append-string MT7622_ELECOM_WRC-X3200GST3
  144. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  145. DEVICE_PACKAGES := kmod-mt7915-firmware
  146. endef
  147. TARGET_DEVICES += elecom_wrc-x3200gst3
  148. define Device/linksys_e8450
  149. DEVICE_VENDOR := Linksys
  150. DEVICE_MODEL := E8450
  151. DEVICE_ALT0_VENDOR := Belkin
  152. DEVICE_ALT0_MODEL := RT3200
  153. DEVICE_DTS := mt7622-linksys-e8450
  154. DEVICE_DTS_DIR := ../dts
  155. DEVICE_PACKAGES := kmod-mt7915-firmware kmod-usb3
  156. endef
  157. TARGET_DEVICES += linksys_e8450
  158. define Device/linksys_e8450-ubi
  159. DEVICE_VENDOR := Linksys
  160. DEVICE_MODEL := E8450
  161. DEVICE_VARIANT := UBI
  162. DEVICE_ALT0_VENDOR := Belkin
  163. DEVICE_ALT0_MODEL := RT3200
  164. DEVICE_ALT0_VARIANT := UBI
  165. DEVICE_DTS := mt7622-linksys-e8450-ubi
  166. DEVICE_DTS_DIR := ../dts
  167. DEVICE_PACKAGES := kmod-mt7915-firmware kmod-usb3
  168. UBINIZE_OPTS := -E 5
  169. BLOCKSIZE := 128k
  170. PAGESIZE := 2048
  171. UBOOTENV_IN_UBI := 1
  172. KERNEL_IN_UBI := 1
  173. KERNEL := kernel-bin | gzip
  174. # recovery can also be used with stock firmware web-ui, hence the padding...
  175. KERNEL_INITRAMFS := kernel-bin | lzma | \
  176. fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
  177. KERNEL_INITRAMFS_SUFFIX := -recovery.itb
  178. IMAGES := sysupgrade.itb
  179. IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
  180. ARTIFACTS := preloader.bin bl31-uboot.fip
  181. ARTIFACT/preloader.bin := bl2 snand-1ddr
  182. ARTIFACT/bl31-uboot.fip := bl31-uboot linksys_e8450
  183. endef
  184. TARGET_DEVICES += linksys_e8450-ubi
  185. define Device/mediatek_mt7622-rfb1
  186. DEVICE_VENDOR := MediaTek
  187. DEVICE_MODEL := MTK7622 rfb1 AP
  188. DEVICE_DTS := mt7622-rfb1
  189. DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3
  190. endef
  191. TARGET_DEVICES += mediatek_mt7622-rfb1
  192. define Device/mediatek_mt7622-rfb1-ubi
  193. DEVICE_VENDOR := MediaTek
  194. DEVICE_MODEL := MTK7622 rfb1 AP (UBI)
  195. DEVICE_DTS := mt7622-rfb1-ubi
  196. DEVICE_DTS_DIR := ../dts
  197. DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3
  198. BOARD_NAME := mediatek,mt7622-rfb1-ubi
  199. UBINIZE_OPTS := -E 5
  200. BLOCKSIZE := 128k
  201. PAGESIZE := 2048
  202. KERNEL_SIZE := 4194304
  203. IMAGE_SIZE := 32768k
  204. IMAGES += factory.bin
  205. IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
  206. check-size $$$$(IMAGE_SIZE)
  207. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  208. endef
  209. TARGET_DEVICES += mediatek_mt7622-rfb1-ubi
  210. define Device/netgear_wax206
  211. $(Device/dsa-migration)
  212. DEVICE_VENDOR := NETGEAR
  213. DEVICE_MODEL := WAX206
  214. DEVICE_DTS := mt7622-netgear-wax206
  215. DEVICE_DTS_DIR := ../dts
  216. NETGEAR_ENC_MODEL := WAX206
  217. NETGEAR_ENC_REGION := US
  218. DEVICE_PACKAGES := kmod-mt7915-firmware
  219. UBINIZE_OPTS := -E 5
  220. BLOCKSIZE := 128k
  221. PAGESIZE := 2048
  222. KERNEL_SIZE := 6144k
  223. IMAGE_SIZE := 32768k
  224. KERNEL := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb | \
  225. append-squashfs4-fakeroot
  226. # recovery can also be used with stock firmware web-ui, hence the padding...
  227. KERNEL_INITRAMFS := kernel-bin | lzma | \
  228. fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
  229. KERNEL_INITRAMFS_SUFFIX := -recovery.itb
  230. IMAGES += factory.img
  231. IMAGE/factory.img := append-kernel | pad-to $$(KERNEL_SIZE) | \
  232. append-ubi | check-size | netgear-encrypted-factory
  233. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  234. endef
  235. TARGET_DEVICES += netgear_wax206
  236. define Device/ruijie_rg-ew3200gx-pro
  237. DEVICE_VENDOR := Ruijie
  238. DEVICE_MODEL := RG-EW3200GX PRO
  239. DEVICE_DTS := mt7622-ruijie-rg-ew3200gx-pro
  240. DEVICE_DTS_DIR := ../dts
  241. DEVICE_PACKAGES := kmod-mt7915-firmware
  242. endef
  243. TARGET_DEVICES += ruijie_rg-ew3200gx-pro
  244. define Device/reyee_ax3200-e5
  245. DEVICE_VENDOR := reyee
  246. DEVICE_MODEL := AX3200 E5
  247. DEVICE_DTS := mt7622-reyee-ax3200-e5
  248. DEVICE_DTS_DIR := ../dts
  249. DEVICE_PACKAGES := kmod-mt7915-firmware
  250. endef
  251. TARGET_DEVICES += reyee_ax3200-e5
  252. define Device/totolink_a8000ru
  253. DEVICE_VENDOR := TOTOLINK
  254. DEVICE_MODEL := A8000RU
  255. DEVICE_DTS := mt7622-totolink-a8000ru
  256. DEVICE_DTS_DIR := ../dts
  257. DEVICE_PACKAGES := kmod-mt7615-firmware swconfig
  258. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  259. endef
  260. TARGET_DEVICES += totolink_a8000ru
  261. define Device/ubnt_unifi-6-lr-v1
  262. DEVICE_VENDOR := Ubiquiti
  263. DEVICE_MODEL := UniFi 6 LR
  264. DEVICE_VARIANT := v1
  265. DEVICE_DTS_CONFIG := config@1
  266. DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v1
  267. DEVICE_DTS_DIR := ../dts
  268. DEVICE_PACKAGES := kmod-mt7915-firmware kmod-leds-ubnt-ledbar
  269. SUPPORTED_DEVICES += ubnt,unifi-6-lr
  270. endef
  271. TARGET_DEVICES += ubnt_unifi-6-lr-v1
  272. define Device/ubnt_unifi-6-lr-v1-ubootmod
  273. DEVICE_VENDOR := Ubiquiti
  274. DEVICE_MODEL := UniFi 6 LR
  275. DEVICE_VARIANT := v1 U-Boot mod
  276. DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v1-ubootmod
  277. DEVICE_DTS_DIR := ../dts
  278. DEVICE_PACKAGES := kmod-mt7915-firmware kmod-leds-ubnt-ledbar
  279. KERNEL := kernel-bin | lzma
  280. KERNEL_INITRAMFS_SUFFIX := -recovery.itb
  281. KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
  282. IMAGES := sysupgrade.itb
  283. IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
  284. ARTIFACTS := preloader.bin bl31-uboot.fip
  285. ARTIFACT/preloader.bin := bl2 nor-2ddr
  286. ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
  287. SUPPORTED_DEVICES += ubnt,unifi-6-lr-ubootmod
  288. endef
  289. TARGET_DEVICES += ubnt_unifi-6-lr-v1-ubootmod
  290. define Device/ubnt_unifi-6-lr-v2
  291. DEVICE_VENDOR := Ubiquiti
  292. DEVICE_MODEL := UniFi 6 LR
  293. DEVICE_VARIANT := v2
  294. DEVICE_DTS_CONFIG := config@1
  295. DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v2
  296. DEVICE_DTS_DIR := ../dts
  297. DEVICE_PACKAGES := kmod-mt7915-firmware
  298. endef
  299. TARGET_DEVICES += ubnt_unifi-6-lr-v2
  300. define Device/ubnt_unifi-6-lr-v2-ubootmod
  301. DEVICE_VENDOR := Ubiquiti
  302. DEVICE_MODEL := UniFi 6 LR
  303. DEVICE_VARIANT := v2 U-Boot mod
  304. DEVICE_DTS := mt7622-ubnt-unifi-6-lr-v2-ubootmod
  305. DEVICE_DTS_DIR := ../dts
  306. DEVICE_PACKAGES := kmod-mt7915-firmware
  307. KERNEL := kernel-bin | lzma
  308. KERNEL_INITRAMFS_SUFFIX := -recovery.itb
  309. KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
  310. IMAGES := sysupgrade.itb
  311. IMAGE/sysupgrade.itb := append-kernel | fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | pad-rootfs | append-metadata
  312. ARTIFACTS := preloader.bin bl31-uboot.fip
  313. ARTIFACT/preloader.bin := bl2 nor-2ddr
  314. ARTIFACT/bl31-uboot.fip := bl31-uboot ubnt_unifi-6-lr
  315. endef
  316. TARGET_DEVICES += ubnt_unifi-6-lr-v2-ubootmod
  317. define Device/xiaomi_redmi-router-ax6s
  318. DEVICE_VENDOR := Xiaomi
  319. DEVICE_MODEL := Redmi Router AX6S
  320. DEVICE_ALT0_VENDOR := Xiaomi
  321. DEVICE_ALT0_MODEL := Router AX3200
  322. DEVICE_DTS := mt7622-xiaomi-redmi-router-ax6s
  323. DEVICE_DTS_DIR := ../dts
  324. BOARD_NAME := xiaomi,redmi-router-ax6s
  325. DEVICE_PACKAGES := kmod-mt7915-firmware
  326. UBINIZE_OPTS := -E 5
  327. IMAGES += factory.bin
  328. BLOCKSIZE := 128k
  329. PAGESIZE := 2048
  330. KERNEL_SIZE := 4096k
  331. KERNEL_INITRAMFS_SUFFIX := -recovery.itb
  332. IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi
  333. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  334. endef
  335. TARGET_DEVICES += xiaomi_redmi-router-ax6s