Makefile 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. # Copyright (c) 2014 The Linux Foundation. All rights reserved.
  2. #
  3. include $(TOPDIR)/rules.mk
  4. include $(INCLUDE_DIR)/image.mk
  5. define Build/buffalo-rootfs-cksum
  6. ( \
  7. echo -ne "\x$$(od -A n -t u1 $@ | tr -s ' ' '\n' | \
  8. $(STAGING_DIR_HOST)/bin/awk '{s+=$$0}END{printf "%x", 255-s%256}')"; \
  9. ) >> $@
  10. endef
  11. define Device/Default
  12. PROFILES := Default
  13. KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
  14. KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
  15. KERNEL_PREFIX := $$(IMAGE_PREFIX)
  16. KERNEL_LOADADDR = 0x42208000
  17. SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
  18. IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
  19. IMAGE/sysupgrade.bin/squashfs :=
  20. endef
  21. define Device/LegacyImage
  22. KERNEL_SUFFIX := -uImage
  23. KERNEL = kernel-bin | append-dtb | uImage none
  24. KERNEL_NAME := zImage
  25. endef
  26. define Device/FitImage
  27. KERNEL_SUFFIX := -fit-uImage.itb
  28. KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  29. KERNEL_NAME := Image
  30. endef
  31. define Device/FitImageLzma
  32. KERNEL_SUFFIX := -fit-uImage.itb
  33. KERNEL = kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  34. KERNEL_NAME := Image
  35. endef
  36. define Device/UbiFit
  37. KERNEL_IN_UBI := 1
  38. IMAGES := nand-factory.bin nand-sysupgrade.bin
  39. IMAGE/nand-factory.bin := append-ubi
  40. IMAGE/nand-sysupgrade.bin := sysupgrade-tar | append-metadata
  41. endef
  42. define Device/DniImage
  43. KERNEL_SUFFIX := -uImage
  44. KERNEL = kernel-bin | append-dtb | uImage none
  45. KERNEL_NAME := zImage
  46. NETGEAR_BOARD_ID :=
  47. NETGEAR_HW_ID :=
  48. UBINIZE_OPTS := -E 5
  49. IMAGES := factory.img sysupgrade.bin
  50. IMAGE/factory.img := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | pad-to $$$$(KERNEL_SIZE) | append-ubi | netgear-dni
  51. IMAGE/sysupgrade.bin := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | sysupgrade-tar kernel=$$$$@ | append-metadata
  52. endef
  53. DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
  54. define Device/TpSafeImage
  55. KERNEL_SUFFIX := -uImage
  56. KERNEL = kernel-bin | append-dtb | uImage none
  57. KERNEL_NAME := zImage
  58. TPLINK_BOARD_ID :=
  59. IMAGES := factory.bin sysupgrade.bin
  60. IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
  61. IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | append-metadata
  62. endef
  63. DEVICE_VARS += TPLINK_BOARD_ID
  64. define Device/ZyXELImage
  65. KERNEL_SUFFIX := -uImage
  66. KERNEL = kernel-bin | append-dtb | uImage none | pad-to $${KERNEL_SIZE}
  67. KERNEL_NAME := zImage
  68. IMAGES := factory.bin sysupgrade.bin
  69. IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to $$$$(BLOCKSIZE) | zyxel-ras-image separate-kernel
  70. IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to $$$${BLOCKSIZE} | sysupgrade-tar rootfs=$$$$@ | append-metadata
  71. endef
  72. define Device/buffalo_wxr-2533dhp
  73. $(call Device/LegacyImage)
  74. DEVICE_DTS := qcom-ipq8064-wxr-2533dhp
  75. DEVICE_TITLE := Buffalo WXR-2533DHP
  76. BLOCKSIZE := 128k
  77. PAGESIZE := 2048
  78. IMAGE_SIZE := 65536k
  79. KERNEL_IN_UBI := 1
  80. IMAGES := sysupgrade.bin
  81. IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \
  82. sysupgrade-tar rootfs=$$$$@ | append-metadata
  83. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  84. endef
  85. TARGET_DEVICES += buffalo_wxr-2533dhp
  86. define Device/compex_wpq864
  87. $(call Device/FitImage)
  88. $(call Device/UbiFit)
  89. BLOCKSIZE := 128k
  90. PAGESIZE := 2048
  91. DEVICE_DTS := qcom-ipq8064-wpq864
  92. DEVICE_TITLE := Compex WPQ864
  93. DEVICE_PACKAGES := kmod-gpio-beeper
  94. endef
  95. TARGET_DEVICES += compex_wpq864
  96. define Device/linksys_ea8500
  97. $(call Device/LegacyImage)
  98. DEVICE_DTS := qcom-ipq8064-ea8500
  99. PAGESIZE := 2048
  100. BLOCKSIZE := 128k
  101. KERNEL_SIZE := 3072k
  102. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  103. BOARD_NAME := ea8500
  104. SUPPORTED_DEVICES += ea8500
  105. UBINIZE_OPTS := -E 5
  106. IMAGES := factory.bin sysupgrade.bin
  107. IMAGE/factory.bin := append-kernel | pad-to $$$${KERNEL_SIZE} | append-ubi
  108. DEVICE_TITLE := Linksys EA8500
  109. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  110. endef
  111. TARGET_DEVICES += linksys_ea8500
  112. define Device/nec_wg2600hp
  113. $(call Device/LegacyImage)
  114. DEVICE_DTS := qcom-ipq8064-wg2600hp
  115. BLOCKSIZE := 64k
  116. BOARD_NAME := wg2600hp
  117. DEVICE_TITLE := NEC Aterm WG2600HP
  118. IMAGES := sysupgrade.bin
  119. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  120. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  121. endef
  122. TARGET_DEVICES += nec_wg2600hp
  123. define Device/netgear_d7800
  124. $(call Device/DniImage)
  125. DEVICE_DTS := qcom-ipq8064-d7800
  126. KERNEL_SIZE := 4096k
  127. NETGEAR_BOARD_ID := D7800
  128. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
  129. BLOCKSIZE := 128k
  130. PAGESIZE := 2048
  131. BOARD_NAME := d7800
  132. SUPPORTED_DEVICES += d7800
  133. DEVICE_TITLE := Netgear Nighthawk X4 D7800
  134. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  135. endef
  136. TARGET_DEVICES += netgear_d7800
  137. define Device/netgear_r7500
  138. $(call Device/DniImage)
  139. DEVICE_DTS := qcom-ipq8064-r7500
  140. KERNEL_SIZE := 4096k
  141. NETGEAR_BOARD_ID := R7500
  142. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  143. BLOCKSIZE := 128k
  144. PAGESIZE := 2048
  145. BOARD_NAME := r7500
  146. SUPPORTED_DEVICES += r7500
  147. DEVICE_TITLE := Netgear Nighthawk X4 R7500
  148. DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
  149. endef
  150. TARGET_DEVICES += netgear_r7500
  151. define Device/netgear_r7500v2
  152. $(call Device/DniImage)
  153. DEVICE_DTS := qcom-ipq8064-r7500v2
  154. KERNEL_SIZE := 4096k
  155. NETGEAR_BOARD_ID := R7500v2
  156. NETGEAR_HW_ID := 29764958+0+128+512+3x3+4x4
  157. BLOCKSIZE := 128k
  158. PAGESIZE := 2048
  159. BOARD_NAME := r7500v2
  160. SUPPORTED_DEVICES += r7500v2
  161. DEVICE_TITLE := Netgear Nighthawk X4 R7500v2
  162. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct
  163. endef
  164. TARGET_DEVICES += netgear_r7500v2
  165. define Device/netgear_r7800
  166. $(call Device/DniImage)
  167. DEVICE_DTS := qcom-ipq8065-r7800
  168. KERNEL_SIZE := 4096k
  169. NETGEAR_BOARD_ID := R7800
  170. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
  171. BLOCKSIZE := 128k
  172. PAGESIZE := 2048
  173. BOARD_NAME := r7800
  174. SUPPORTED_DEVICES += r7800
  175. DEVICE_TITLE := Netgear Nighthawk X4S R7800
  176. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  177. endef
  178. TARGET_DEVICES += netgear_r7800
  179. define Device/qcom_ipq8064-ap148
  180. $(call Device/FitImage)
  181. $(call Device/UbiFit)
  182. DEVICE_DTS := qcom-ipq8064-ap148
  183. KERNEL_INSTALL := 1
  184. BLOCKSIZE := 128k
  185. PAGESIZE := 2048
  186. BOARD_NAME := ap148
  187. SUPPORTED_DEVICES += ap148
  188. DEVICE_TITLE := Qualcomm AP148
  189. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  190. endef
  191. TARGET_DEVICES += qcom_ipq8064-ap148
  192. define Device/qcom_ipq8064-ap148-legacy
  193. $(call Device/LegacyImage)
  194. $(call Device/UbiFit)
  195. DEVICE_DTS := qcom-ipq8064-ap148
  196. BLOCKSIZE := 128k
  197. PAGESIZE := 2048
  198. BOARD_NAME := ap148
  199. SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148
  200. DEVICE_TITLE := Qualcomm AP148 (legacy)
  201. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  202. endef
  203. TARGET_DEVICES += qcom_ipq8064-ap148-legacy
  204. define Device/qcom_ipq8064-ap161
  205. $(call Device/FitImage)
  206. $(call Device/UbiFit)
  207. DEVICE_DTS := qcom-ipq8064-ap161
  208. KERNEL_INSTALL := 1
  209. BLOCKSIZE := 128k
  210. PAGESIZE := 2048
  211. BOARD_NAME := ap161
  212. DEVICE_TITLE := Qualcomm AP161
  213. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  214. endef
  215. TARGET_DEVICES += qcom_ipq8064-ap161
  216. define Device/qcom_ipq8064-db149
  217. $(call Device/FitImage)
  218. DEVICE_DTS := qcom-ipq8064-db149
  219. KERNEL_INSTALL := 1
  220. BOARD_NAME := db149
  221. DEVICE_TITLE := Qualcomm DB149
  222. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  223. endef
  224. TARGET_DEVICES += qcom_ipq8064-db149
  225. define Device/tplink_c2600
  226. $(call Device/TpSafeImage)
  227. DEVICE_DTS := qcom-ipq8064-c2600
  228. BLOCKSIZE := 128k
  229. PAGESIZE := 2048
  230. BOARD_NAME := c2600
  231. SUPPORTED_DEVICES += c2600
  232. TPLINK_BOARD_ID := C2600
  233. DEVICE_TITLE := TP-Link Archer C2600
  234. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  235. endef
  236. TARGET_DEVICES += tplink_c2600
  237. define Device/tplink_vr2600v
  238. KERNEL_SUFFIX := -uImage
  239. KERNEL = kernel-bin | append-dtb | uImage none
  240. KERNEL_NAME := zImage
  241. KERNEL_SIZE := 3072k
  242. DEVICE_DTS := qcom-ipq8064-vr2600v
  243. BLOCKSIZE := 128k
  244. PAGESIZE := 2048
  245. BOARD_NAME := vr2600v
  246. SUPPORTED_DEVICES += vr2600v
  247. DEVICE_TITLE := TP-Link Archer VR2600v
  248. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  249. IMAGES := sysupgrade.bin
  250. IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$${KERNEL_SIZE} | append-rootfs | pad-rootfs | append-metadata
  251. endef
  252. TARGET_DEVICES += tplink_vr2600v
  253. define Device/zyxel_nbg6817
  254. DEVICE_DTS := qcom-ipq8065-nbg6817
  255. KERNEL_SIZE := 4096k
  256. BLOCKSIZE := 64k
  257. BOARD_NAME := nbg6817
  258. RAS_BOARD := NBG6817
  259. RAS_ROOTFS_SIZE := 20934k
  260. RAS_VERSION := "V1.99(OWRT.9999)C0"
  261. SUPPORTED_DEVICES += nbg6817
  262. DEVICE_TITLE := ZyXEL NBG6817
  263. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
  264. $(call Device/ZyXELImage)
  265. endef
  266. TARGET_DEVICES += zyxel_nbg6817
  267. $(eval $(call BuildImage))