Makefile 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  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_VENDOR := Buffalo
  76. DEVICE_MODEL := WXR-2533DHP
  77. BLOCKSIZE := 128k
  78. PAGESIZE := 2048
  79. IMAGE_SIZE := 65536k
  80. KERNEL_IN_UBI := 1
  81. IMAGES := sysupgrade.bin
  82. IMAGE/sysupgrade.bin := append-rootfs | buffalo-rootfs-cksum | \
  83. sysupgrade-tar rootfs=$$$$@ | append-metadata
  84. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  85. endef
  86. TARGET_DEVICES += buffalo_wxr-2533dhp
  87. define Device/compex_wpq864
  88. $(call Device/FitImage)
  89. $(call Device/UbiFit)
  90. DEVICE_VENDOR := Compex
  91. DEVICE_MODEL := WPQ864
  92. BLOCKSIZE := 128k
  93. PAGESIZE := 2048
  94. DEVICE_DTS := qcom-ipq8064-wpq864
  95. DEVICE_PACKAGES := kmod-gpio-beeper
  96. endef
  97. TARGET_DEVICES += compex_wpq864
  98. define Device/linksys_ea8500
  99. $(call Device/LegacyImage)
  100. DEVICE_VENDOR := Linksys
  101. DEVICE_MODEL := EA8500
  102. DEVICE_DTS := qcom-ipq8064-ea8500
  103. PAGESIZE := 2048
  104. BLOCKSIZE := 128k
  105. KERNEL_SIZE := 3072k
  106. KERNEL = kernel-bin | append-dtb | uImage none | append-uImage-fakehdr filesystem
  107. BOARD_NAME := ea8500
  108. SUPPORTED_DEVICES += ea8500
  109. UBINIZE_OPTS := -E 5
  110. IMAGES := factory.bin sysupgrade.bin
  111. IMAGE/factory.bin := append-kernel | pad-to $$$${KERNEL_SIZE} | append-ubi
  112. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  113. endef
  114. TARGET_DEVICES += linksys_ea8500
  115. define Device/nec_wg2600hp
  116. $(call Device/LegacyImage)
  117. DEVICE_VENDOR := NEC
  118. DEVICE_MODEL := Aterm WG2600HP
  119. DEVICE_DTS := qcom-ipq8064-wg2600hp
  120. BLOCKSIZE := 64k
  121. BOARD_NAME := wg2600hp
  122. IMAGES := sysupgrade.bin
  123. IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
  124. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  125. endef
  126. TARGET_DEVICES += nec_wg2600hp
  127. define Device/netgear_d7800
  128. $(call Device/DniImage)
  129. DEVICE_VENDOR := NETGEAR
  130. DEVICE_MODEL := Nighthawk X4 D7800
  131. DEVICE_DTS := qcom-ipq8064-d7800
  132. KERNEL_SIZE := 4096k
  133. NETGEAR_BOARD_ID := D7800
  134. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
  135. BLOCKSIZE := 128k
  136. PAGESIZE := 2048
  137. BOARD_NAME := d7800
  138. SUPPORTED_DEVICES += d7800
  139. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  140. endef
  141. TARGET_DEVICES += netgear_d7800
  142. define Device/netgear_r7500
  143. $(call Device/DniImage)
  144. DEVICE_VENDOR := NETGEAR
  145. DEVICE_MODEL := Nighthawk X4 R7500
  146. DEVICE_VARIANT := v1
  147. DEVICE_DTS := qcom-ipq8064-r7500
  148. KERNEL_SIZE := 4096k
  149. NETGEAR_BOARD_ID := R7500
  150. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  151. BLOCKSIZE := 128k
  152. PAGESIZE := 2048
  153. BOARD_NAME := r7500
  154. SUPPORTED_DEVICES += r7500
  155. DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
  156. endef
  157. TARGET_DEVICES += netgear_r7500
  158. define Device/netgear_r7500v2
  159. $(call Device/DniImage)
  160. DEVICE_VENDOR := NETGEAR
  161. DEVICE_MODEL := Nighthawk X4 R7500
  162. DEVICE_VARIANT := v2
  163. DEVICE_DTS := qcom-ipq8064-r7500v2
  164. KERNEL_SIZE := 4096k
  165. NETGEAR_BOARD_ID := R7500v2
  166. NETGEAR_HW_ID := 29764958+0+128+512+3x3+4x4
  167. BLOCKSIZE := 128k
  168. PAGESIZE := 2048
  169. BOARD_NAME := r7500v2
  170. SUPPORTED_DEVICES += r7500v2
  171. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ath10k-firmware-qca988x-ct
  172. endef
  173. TARGET_DEVICES += netgear_r7500v2
  174. define Device/netgear_r7800
  175. $(call Device/DniImage)
  176. DEVICE_VENDOR := NETGEAR
  177. DEVICE_MODEL := Nighthawk X4S R7800
  178. DEVICE_DTS := qcom-ipq8065-r7800
  179. KERNEL_SIZE := 4096k
  180. NETGEAR_BOARD_ID := R7800
  181. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
  182. BLOCKSIZE := 128k
  183. PAGESIZE := 2048
  184. BOARD_NAME := r7800
  185. SUPPORTED_DEVICES += r7800
  186. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct
  187. endef
  188. TARGET_DEVICES += netgear_r7800
  189. define Device/qcom_ipq8064-ap148
  190. $(call Device/FitImage)
  191. $(call Device/UbiFit)
  192. DEVICE_VENDOR := Qualcomm
  193. DEVICE_MODEL := AP148
  194. DEVICE_VARIANT := standard
  195. DEVICE_DTS := qcom-ipq8064-ap148
  196. KERNEL_INSTALL := 1
  197. BLOCKSIZE := 128k
  198. PAGESIZE := 2048
  199. BOARD_NAME := ap148
  200. SUPPORTED_DEVICES += ap148
  201. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  202. endef
  203. TARGET_DEVICES += qcom_ipq8064-ap148
  204. define Device/qcom_ipq8064-ap148-legacy
  205. $(call Device/LegacyImage)
  206. $(call Device/UbiFit)
  207. DEVICE_VENDOR := Qualcomm
  208. DEVICE_MODEL := AP148
  209. DEVICE_VARIANT := legacy
  210. DEVICE_DTS := qcom-ipq8064-ap148
  211. BLOCKSIZE := 128k
  212. PAGESIZE := 2048
  213. BOARD_NAME := ap148
  214. SUPPORTED_DEVICES := qcom,ipq8064-ap148 ap148
  215. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  216. endef
  217. TARGET_DEVICES += qcom_ipq8064-ap148-legacy
  218. define Device/qcom_ipq8064-ap161
  219. $(call Device/FitImage)
  220. $(call Device/UbiFit)
  221. DEVICE_VENDOR := Qualcomm
  222. DEVICE_MODEL := AP161
  223. DEVICE_DTS := qcom-ipq8064-ap161
  224. KERNEL_INSTALL := 1
  225. BLOCKSIZE := 128k
  226. PAGESIZE := 2048
  227. BOARD_NAME := ap161
  228. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  229. endef
  230. TARGET_DEVICES += qcom_ipq8064-ap161
  231. define Device/qcom_ipq8064-db149
  232. $(call Device/FitImage)
  233. DEVICE_VENDOR := Qualcomm
  234. DEVICE_MODEL := DB149
  235. DEVICE_DTS := qcom-ipq8064-db149
  236. KERNEL_INSTALL := 1
  237. BOARD_NAME := db149
  238. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  239. endef
  240. TARGET_DEVICES += qcom_ipq8064-db149
  241. define Device/tplink_c2600
  242. $(call Device/TpSafeImage)
  243. DEVICE_VENDOR := TP-Link
  244. DEVICE_MODEL := Archer C2600
  245. DEVICE_VARIANT := v1
  246. DEVICE_DTS := qcom-ipq8064-c2600
  247. BLOCKSIZE := 128k
  248. PAGESIZE := 2048
  249. BOARD_NAME := c2600
  250. SUPPORTED_DEVICES += c2600
  251. TPLINK_BOARD_ID := C2600
  252. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  253. endef
  254. TARGET_DEVICES += tplink_c2600
  255. define Device/tplink_vr2600v
  256. DEVICE_VENDOR := TP-Link
  257. DEVICE_MODEL := Archer VR2600v
  258. DEVICE_VARIANT := v1
  259. KERNEL_SUFFIX := -uImage
  260. KERNEL = kernel-bin | append-dtb | uImage none
  261. KERNEL_NAME := zImage
  262. KERNEL_SIZE := 3072k
  263. DEVICE_DTS := qcom-ipq8064-vr2600v
  264. BLOCKSIZE := 128k
  265. PAGESIZE := 2048
  266. BOARD_NAME := vr2600v
  267. SUPPORTED_DEVICES += vr2600v
  268. DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct
  269. IMAGES := sysupgrade.bin
  270. IMAGE/sysupgrade.bin := pad-extra 512 | append-kernel | pad-to $$$${KERNEL_SIZE} | append-rootfs | pad-rootfs | append-metadata
  271. endef
  272. TARGET_DEVICES += tplink_vr2600v
  273. define Device/zyxel_nbg6817
  274. DEVICE_VENDOR := ZyXEL
  275. DEVICE_MODEL := NBG6817
  276. DEVICE_DTS := qcom-ipq8065-nbg6817
  277. KERNEL_SIZE := 4096k
  278. BLOCKSIZE := 64k
  279. BOARD_NAME := nbg6817
  280. RAS_BOARD := NBG6817
  281. RAS_ROOTFS_SIZE := 20934k
  282. RAS_VERSION := "V1.99(OWRT.9999)C0"
  283. SUPPORTED_DEVICES += nbg6817
  284. DEVICE_PACKAGES := ath10k-firmware-qca9984-ct e2fsprogs kmod-fs-ext4 losetup
  285. $(call Device/ZyXELImage)
  286. endef
  287. TARGET_DEVICES += zyxel_nbg6817
  288. $(eval $(call BuildImage))