mt7622.mk 11 KB

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