Makefile 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. # Copyright (c) 2014 The Linux Foundation. All rights reserved.
  2. #
  3. include $(TOPDIR)/rules.mk
  4. include $(INCLUDE_DIR)/image.mk
  5. DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
  6. DEVICE_VARS += TPLINK_BOARD_ID
  7. define Build/buffalo-rootfs-cksum
  8. ( \
  9. echo -ne "\x$$(od -A n -t u1 $@ | tr -s ' ' '\n' | \
  10. $(STAGING_DIR_HOST)/bin/awk '{s+=$$0}END{printf "%x", 255-s%256}')"; \
  11. ) >> $@
  12. endef
  13. define Build/edimax-header
  14. $(eval edimax_model=$(word 1,$(1)))
  15. $(STAGING_DIR_HOST)/bin/mkedimaximg \
  16. -b -s CSYS -m $(edimax_model) \
  17. -f 0x70000 -S 0x1200000 \
  18. -i $@ -o [email protected]
  19. @mv [email protected] $@
  20. endef
  21. define Device/Default
  22. PROFILES := Default
  23. KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
  24. KERNEL_LOADADDR = 0x42208000
  25. DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
  26. DEVICE_DTS_CONFIG := config@1
  27. IMAGES := sysupgrade.bin
  28. IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
  29. IMAGE/sysupgrade.bin/squashfs :=
  30. endef
  31. define Device/LegacyImage
  32. KERNEL_SUFFIX := -uImage
  33. KERNEL = kernel-bin | append-dtb | uImage none
  34. KERNEL_NAME := zImage
  35. endef
  36. define Device/FitImage
  37. KERNEL_SUFFIX := -fit-uImage.itb
  38. KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  39. KERNEL_NAME := Image
  40. endef
  41. define Device/FitImageLzma
  42. KERNEL_SUFFIX := -fit-uImage.itb
  43. KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  44. KERNEL_NAME := Image
  45. endef
  46. define Device/UbiFit
  47. KERNEL_IN_UBI := 1
  48. IMAGES := nand-factory.bin nand-sysupgrade.bin
  49. IMAGE/nand-factory.bin := append-ubi
  50. IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
  51. endef
  52. define Device/DniImage
  53. KERNEL_SUFFIX := -uImage
  54. KERNEL = kernel-bin | append-dtb | uImage none
  55. KERNEL_NAME := zImage
  56. NETGEAR_BOARD_ID :=
  57. NETGEAR_HW_ID :=
  58. UBINIZE_OPTS := -E 5
  59. IMAGES += factory.img
  60. IMAGE/factory.img := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | netgear-dni
  61. IMAGE/sysupgrade.bin := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | sysupgrade-tar kernel=$$$$@ | append-metadata
  62. endef
  63. define Device/TpSafeImage
  64. KERNEL_SUFFIX := -uImage
  65. KERNEL = kernel-bin | append-dtb | uImage none
  66. KERNEL_NAME := zImage
  67. TPLINK_BOARD_ID :=
  68. IMAGES += factory.bin
  69. IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
  70. IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata
  71. endef
  72. define Device/ZyXELImage
  73. KERNEL_SUFFIX := -uImage
  74. KERNEL = kernel-bin | append-dtb | uImage none | pad-to $$(KERNEL_SIZE)
  75. KERNEL_NAME := zImage
  76. IMAGES += factory.bin
  77. IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to $$$$(BLOCKSIZE) | zyxel-ras-image separate-kernel
  78. IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
  79. endef
  80. define Device/askey_rt4230w-rev6
  81. $(call Device/LegacyImage)
  82. DEVICE_VENDOR := Askey
  83. DEVICE_MODEL := RT4230W
  84. DEVICE_VARIANT := REV6
  85. SOC := qcom-ipq8065
  86. BLOCKSIZE := 128k
  87. PAGESIZE := 2048
  88. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  89. KERNEL_IN_UBI := 1
  90. endef
  91. TARGET_DEVICES += askey_rt4230w-rev6
  92. define Device/asrock_g10
  93. $(call Device/FitImage)
  94. $(call Device/UbiFit)
  95. SOC := qcom-ipq8064
  96. DEVICE_VENDOR := ASRock
  97. DEVICE_MODEL := G10
  98. BLOCKSIZE := 128k
  99. PAGESIZE := 2048
  100. KERNEL_SIZE := 5332k
  101. DEVICE_PACKAGES := kmod-i2c-gpio ath10k-firmware-qca99x0-ct
  102. IMAGE/nand-factory.bin := append-ubi | edimax-header RN67
  103. endef
  104. TARGET_DEVICES += asrock_g10
  105. define Device/buffalo_wxr-2533dhp
  106. $(call Device/LegacyImage)
  107. SOC := qcom-ipq8064
  108. DEVICE_VENDOR := Buffalo
  109. DEVICE_MODEL := WXR-2533DHP
  110. BLOCKSIZE := 128k
  111. PAGESIZE := 2048
  112. IMAGE_SIZE := 65536k
  113. KERNEL_IN_UBI := 1
  114. IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \
  115. sysupgrade-tar rootfs=$$$$@ | append-metadata
  116. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  117. endef
  118. TARGET_DEVICES += buffalo_wxr-2533dhp
  119. define Device/compex_wpq864
  120. $(call Device/FitImage)
  121. $(call Device/UbiFit)
  122. DEVICE_VENDOR := Compex
  123. DEVICE_MODEL := WPQ864
  124. BLOCKSIZE := 128k
  125. PAGESIZE := 2048
  126. SOC := qcom-ipq8064
  127. DEVICE_PACKAGES := kmod-gpio-beeper
  128. endef
  129. TARGET_DEVICES += compex_wpq864
  130. define Device/edgecore_ecw5410
  131. $(call Device/FitImage)
  132. $(call Device/UbiFit)
  133. DEVICE_VENDOR := Edgecore
  134. DEVICE_MODEL := ECW5410
  135. SOC := qcom-ipq8068
  136. BLOCKSIZE := 128k
  137. PAGESIZE := 2048
  138. DEVICE_DTS_CONFIG := [email protected]
  139. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-edgecore_ecw5410
  140. endef
  141. TARGET_DEVICES += edgecore_ecw5410
  142. define Device/linksys_ea7500-v1
  143. $(call Device/LegacyImage)
  144. DEVICE_VENDOR := Linksys
  145. DEVICE_MODEL := EA7500
  146. DEVICE_VARIANT := v1
  147. SOC := qcom-ipq8064
  148. PAGESIZE := 2048
  149. BLOCKSIZE := 128k
  150. KERNEL_SIZE := 3072k
  151. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  152. UBINIZE_OPTS := -E 5
  153. IMAGES := factory.bin sysupgrade.bin
  154. IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to $$$$(PAGESIZE)
  155. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  156. endef
  157. TARGET_DEVICES += linksys_ea7500-v1
  158. define Device/linksys_ea8500
  159. $(call Device/LegacyImage)
  160. DEVICE_VENDOR := Linksys
  161. DEVICE_MODEL := EA8500
  162. SOC := qcom-ipq8064
  163. PAGESIZE := 2048
  164. BLOCKSIZE := 128k
  165. KERNEL_SIZE := 3072k
  166. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  167. BOARD_NAME := ea8500
  168. SUPPORTED_DEVICES += ea8500
  169. UBINIZE_OPTS := -E 5
  170. IMAGES += factory.bin
  171. IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
  172. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  173. endef
  174. TARGET_DEVICES += linksys_ea8500
  175. define Device/nec_wg2600hp
  176. $(call Device/LegacyImage)
  177. DEVICE_VENDOR := NEC
  178. DEVICE_MODEL := Aterm WG2600HP
  179. SOC := qcom-ipq8064
  180. BLOCKSIZE := 64k
  181. BOARD_NAME := wg2600hp
  182. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  183. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  184. endef
  185. TARGET_DEVICES += nec_wg2600hp
  186. define Device/nec_wg2600hp3
  187. $(call Device/LegacyImage)
  188. DEVICE_VENDOR := NEC Platforms
  189. DEVICE_MODEL := Aterm WG2600HP3
  190. SOC := qcom-ipq8062
  191. BLOCKSIZE := 64k
  192. IMAGES := sysupgrade.bin
  193. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  194. DEVICE_PACKAGES := -kmod-ata-ahci -kmod-ata-ahci-platform -kmod-usb-ohci -kmod-usb2 \
  195. -kmod-usb-ledtrig-usbport -kmod-usb-phy-qcom-dwc3 -kmod-usb3 -kmod-usb-dwc3-qcom \
  196. ath10k-firmware-qca9984-ct ipq-wifi-nec_wg2600hp3
  197. endef
  198. TARGET_DEVICES += nec_wg2600hp3
  199. define Device/netgear_d7800
  200. $(call Device/DniImage)
  201. DEVICE_VENDOR := NETGEAR
  202. DEVICE_MODEL := Nighthawk X4 D7800
  203. SOC := qcom-ipq8064
  204. KERNEL_SIZE := 4096k
  205. NETGEAR_BOARD_ID := D7800
  206. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
  207. BLOCKSIZE := 128k
  208. PAGESIZE := 2048
  209. BOARD_NAME := d7800
  210. SUPPORTED_DEVICES += d7800
  211. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  212. endef
  213. TARGET_DEVICES += netgear_d7800
  214. define Device/netgear_r7500
  215. $(call Device/DniImage)
  216. DEVICE_VENDOR := NETGEAR
  217. DEVICE_MODEL := Nighthawk X4 R7500
  218. DEVICE_VARIANT := v1
  219. SOC := qcom-ipq8064
  220. KERNEL_SIZE := 4096k
  221. NETGEAR_BOARD_ID := R7500
  222. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  223. BLOCKSIZE := 128k
  224. PAGESIZE := 2048
  225. BOARD_NAME := r7500
  226. SUPPORTED_DEVICES += r7500
  227. DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
  228. endef
  229. TARGET_DEVICES += netgear_r7500
  230. define Device/netgear_r7500v2
  231. $(call Device/DniImage)
  232. DEVICE_VENDOR := NETGEAR
  233. DEVICE_MODEL := Nighthawk X4 R7500
  234. DEVICE_VARIANT := v2
  235. SOC := qcom-ipq8064
  236. KERNEL_SIZE := 4096k
  237. NETGEAR_BOARD_ID := R7500v2
  238. NETGEAR_HW_ID := 29764958+0+128+512+3x3+4x4
  239. BLOCKSIZE := 128k
  240. PAGESIZE := 2048
  241. BOARD_NAME := r7500v2
  242. SUPPORTED_DEVICES += r7500v2
  243. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct
  244. endef
  245. TARGET_DEVICES += netgear_r7500v2
  246. define Device/netgear_r7800
  247. $(call Device/DniImage)
  248. DEVICE_VENDOR := NETGEAR
  249. DEVICE_MODEL := Nighthawk X4S R7800
  250. SOC := qcom-ipq8065
  251. KERNEL_SIZE := 4096k
  252. NETGEAR_BOARD_ID := R7800
  253. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
  254. BLOCKSIZE := 128k
  255. PAGESIZE := 2048
  256. BOARD_NAME := r7800
  257. SUPPORTED_DEVICES += r7800
  258. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  259. endef
  260. TARGET_DEVICES += netgear_r7800
  261. define Device/qcom_ipq8064-ap148
  262. $(call Device/FitImage)
  263. $(call Device/UbiFit)
  264. DEVICE_VENDOR := Qualcomm
  265. DEVICE_MODEL := AP148
  266. DEVICE_VARIANT := standard
  267. SOC := qcom-ipq8064
  268. DEVICE_DTS := qcom-ipq8064-ap148
  269. KERNEL_INSTALL := 1
  270. BLOCKSIZE := 128k
  271. PAGESIZE := 2048
  272. BOARD_NAME := ap148
  273. SUPPORTED_DEVICES += ap148
  274. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  275. endef
  276. TARGET_DEVICES += qcom_ipq8064-ap148
  277. define Device/qcom_ipq8064-ap148-legacy
  278. $(call Device/LegacyImage)
  279. $(call Device/UbiFit)
  280. DEVICE_VENDOR := Qualcomm
  281. DEVICE_MODEL := AP148
  282. DEVICE_VARIANT := legacy
  283. SOC := qcom-ipq8064
  284. DEVICE_DTS := qcom-ipq8064-ap148
  285. BLOCKSIZE := 128k
  286. PAGESIZE := 2048
  287. BOARD_NAME := ap148
  288. SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148
  289. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  290. endef
  291. TARGET_DEVICES += qcom_ipq8064-ap148-legacy
  292. define Device/qcom_ipq8064-ap161
  293. $(call Device/FitImage)
  294. $(call Device/UbiFit)
  295. DEVICE_VENDOR := Qualcomm
  296. DEVICE_MODEL := AP161
  297. SOC := qcom-ipq8064
  298. DEVICE_DTS := qcom-ipq8064-ap161
  299. KERNEL_INSTALL := 1
  300. BLOCKSIZE := 128k
  301. PAGESIZE := 2048
  302. BOARD_NAME := ap161
  303. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  304. endef
  305. TARGET_DEVICES += qcom_ipq8064-ap161
  306. define Device/qcom_ipq8064-db149
  307. $(call Device/FitImage)
  308. DEVICE_VENDOR := Qualcomm
  309. DEVICE_MODEL := DB149
  310. SOC := qcom-ipq8064
  311. DEVICE_DTS := qcom-ipq8064-db149
  312. KERNEL_INSTALL := 1
  313. BOARD_NAME := db149
  314. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  315. endef
  316. TARGET_DEVICES += qcom_ipq8064-db149
  317. define Device/tplink_ad7200
  318. $(call Device/TpSafeImage)
  319. DEVICE_VENDOR := TP-Link
  320. DEVICE_MODEL := AD7200
  321. DEVICE_VARIANT := v1/v2
  322. DEVICE_ALT0_VENDOR := TP-Link
  323. DEVICE_ALT0_MODEL := Talon AD7200
  324. DEVICE_ALT0_VARIANT := v1/v2
  325. SOC := qcom-ipq8064
  326. BLOCKSIZE := 128k
  327. PAGESIZE := 2048
  328. TPLINK_BOARD_ID := AD7200
  329. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct kmod-wil6210
  330. endef
  331. TARGET_DEVICES += tplink_ad7200
  332. define Device/tplink_c2600
  333. $(call Device/TpSafeImage)
  334. DEVICE_VENDOR := TP-Link
  335. DEVICE_MODEL := Archer C2600
  336. DEVICE_VARIANT := v1
  337. SOC := qcom-ipq8064
  338. BLOCKSIZE := 128k
  339. PAGESIZE := 2048
  340. BOARD_NAME := c2600
  341. SUPPORTED_DEVICES += c2600
  342. TPLINK_BOARD_ID := C2600
  343. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  344. endef
  345. TARGET_DEVICES += tplink_c2600
  346. define Device/tplink_vr2600v
  347. DEVICE_VENDOR := TP-Link
  348. DEVICE_MODEL := Archer VR2600v
  349. DEVICE_VARIANT := v1
  350. KERNEL_SUFFIX := -uImage
  351. KERNEL = kernel-bin | append-dtb | uImage none
  352. KERNEL_NAME := zImage
  353. KERNEL_SIZE := 3072k
  354. SOC := qcom-ipq8064
  355. BLOCKSIZE := 128k
  356. PAGESIZE := 2048
  357. BOARD_NAME := vr2600v
  358. SUPPORTED_DEVICES += vr2600v
  359. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  360. IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | append-metadata
  361. endef
  362. TARGET_DEVICES += tplink_vr2600v
  363. define Device/ubnt_unifi-ac-hd
  364. $(call Device/FitImageLzma)
  365. DEVICE_VENDOR := Ubiquiti
  366. DEVICE_MODEL := UniFi AC HD
  367. SOC := qcom-ipq8064
  368. BLOCKSIZE := 64k
  369. IMAGE_SIZE := 14784k
  370. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  371. IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size | append-metadata
  372. endef
  373. TARGET_DEVICES += ubnt_unifi-ac-hd
  374. define Device/zyxel_nbg6817
  375. DEVICE_VENDOR := ZyXEL
  376. DEVICE_MODEL := NBG6817
  377. SOC := qcom-ipq8065
  378. KERNEL_SIZE := 4096k
  379. BLOCKSIZE := 64k
  380. BOARD_NAME := nbg6817
  381. RAS_BOARD := NBG6817
  382. RAS_ROOTFS_SIZE := 20934k
  383. RAS_VERSION := "V1.99(OWRT.9999)C0"
  384. SUPPORTED_DEVICES += nbg6817
  385. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
  386. $(call Device/ZyXELImage)
  387. endef
  388. TARGET_DEVICES += zyxel_nbg6817
  389. $(eval $(call BuildImage))