Makefile 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. # Copyright (c) 2014 The Linux Foundation. All rights reserved.
  2. #
  3. include $(TOPDIR)/rules.mk
  4. include $(INCLUDE_DIR)/image.mk
  5. UBIFS_OPTS = -m 2048 -e 124KiB -c 4096 -U -F
  6. KERNEL_LOADADDR := 0x42208000
  7. define Image/Prepare
  8. $(CP) $(LINUX_DIR)/vmlinux $(KDIR)/$(IMG_PREFIX)-vmlinux.elf
  9. mkimage -A arm -O linux -T filesystem -C none \
  10. -a $(KERNEL_LOADADDR) -e $(KERNEL_LOADADDR) \
  11. -n 'ARM OpenWrt fakeroot' \
  12. -s $(KDIR_TMP)/root.dummy-uImage.tmp
  13. echo -ne '\xff' > $(KDIR_TMP)/root.dummy
  14. cat $(KDIR_TMP)/root.dummy $(KDIR_TMP)/root.dummy-uImage.tmp > $(KDIR)/root.dummy
  15. endef
  16. define Image/BuildKernel
  17. $(CP) $(KDIR)/$(IMG_PREFIX)-vmlinux.elf $(BIN_DIR)
  18. endef
  19. define Image/Build/squashfs
  20. cp $(KDIR)/root.squashfs $(KDIR)/root.squashfs-raw
  21. $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
  22. endef
  23. define Image/Build
  24. $(call Image/Build/$(1),$(1))
  25. dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(1)-root.img bs=2k conv=sync
  26. endef
  27. define Build/append-file
  28. cat $(1) >> $@
  29. endef
  30. define Device/Default
  31. PROFILES := Default
  32. KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
  33. KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
  34. KERNEL_PREFIX := $$(IMAGE_PREFIX)
  35. endef
  36. DEVICE_VARS += KERNEL_SIZE
  37. define Device/LegacyImage
  38. KERNEL_SUFFIX := -uImage
  39. KERNEL = kernel-bin | append-dtb | uImage none
  40. KERNEL_NAME := zImage
  41. endef
  42. define Device/FitImage
  43. KERNEL_SUFFIX := -fit-uImage.itb
  44. KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  45. KERNEL_NAME := Image
  46. endef
  47. define Device/UbiFit
  48. KERNEL_IN_UBI := 1
  49. IMAGES := nand-factory.ubi nand-sysupgrade.tar
  50. IMAGE/nand-factory.ubi := append-ubi
  51. IMAGE/nand-sysupgrade.tar := sysupgrade-tar
  52. endef
  53. define Device/DniImage
  54. PROFILES += $$(DEVICE_NAME)
  55. FILESYSTEMS := squashfs
  56. KERNEL_SUFFIX := -uImage
  57. KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
  58. KERNEL = kernel-bin | append-dtb | pad-to $$$$(($$(KERNEL_SIZE)-2*64-1)) | uImage none | append-file $(KDIR)/root.dummy
  59. KERNEL_NAME := zImage
  60. NETGEAR_BOARD_ID :=
  61. NETGEAR_HW_ID :=
  62. IMAGES := factory.img sysupgrade.tar
  63. IMAGE/factory.img := append-kernel | append-ubi | netgear-dni
  64. IMAGE/sysupgrade.tar = sysupgrade-nand
  65. endef
  66. DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
  67. define Device/TpSafeImage
  68. PROFILES += $$(DEVICE_NAME)
  69. FILESYSTEMS := squashfs
  70. KERNEL_SUFFIX := -uImage
  71. KERNEL = kernel-bin | append-dtb | uImage none
  72. KERNEL_NAME := zImage
  73. TPLINK_BOARD_NAME :=
  74. IMAGES := factory.bin sysupgrade.bin
  75. IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
  76. IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade
  77. endef
  78. DEVICE_VARS += TPLINK_BOARD_NAME
  79. define Device/AP148
  80. $(call Device/FitImage)
  81. $(call Device/UbiFit)
  82. DEVICE_DTS := qcom-ipq8064-ap148
  83. BLOCKSIZE := 128KiB
  84. PAGESIZE := 2048
  85. BOARD_NAME := ap148
  86. DEVICE_TITLE := Qualcomm AP148
  87. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  88. endef
  89. define Device/AP148-legacy
  90. $(call Device/LegacyImage)
  91. $(call Device/UbiFit)
  92. DEVICE_DTS := qcom-ipq8064-ap148
  93. BLOCKSIZE := 128KiB
  94. PAGESIZE := 2048
  95. BOARD_NAME := ap148
  96. DEVICE_TITLE := Qualcomm AP148 (legacy)
  97. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  98. endef
  99. define Device/C2600
  100. $(call Device/TpSafeImage)
  101. DEVICE_DTS := qcom-ipq8064-c2600
  102. BLOCKSIZE := 128KiB
  103. PAGESIZE := 2048
  104. BOARD_NAME := c2600
  105. TPLINK_BOARD_NAME := C2600
  106. DEVICE_TITLE := TP-Link Archer C2600
  107. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  108. endef
  109. define Device/D7800
  110. $(call Device/DniImage)
  111. DEVICE_DTS := qcom-ipq8064-d7800
  112. KERNEL_SIZE := 2097152
  113. NETGEAR_BOARD_ID := D7800
  114. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4
  115. BLOCKSIZE := 128KiB
  116. PAGESIZE := 2048
  117. BOARD_NAME := d7800
  118. DEVICE_TITLE := Netgear Nighthawk X4 D7800
  119. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  120. endef
  121. define Device/DB149
  122. $(call Device/FitImage)
  123. DEVICE_DTS := qcom-ipq8064-db149
  124. KERNEL_INSTALL := 1
  125. BOARD_NAME := db149
  126. DEVICE_TITLE := Qualcomm DB149
  127. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  128. endef
  129. define Device/EA8500
  130. $(call Device/LegacyImage)
  131. DEVICE_DTS := qcom-ipq8064-ea8500
  132. PAGESIZE := 2048
  133. BLOCKSIZE := 128KiB
  134. KERNEL_SIZE := 3145728
  135. FILESYSTEMS := squashfs
  136. KERNEL = kernel-bin | append-dtb | uImage none | append-file $(KDIR)/root.dummy
  137. PROFILES += $$(DEVICE_NAME)
  138. BOARD_NAME := ea8500
  139. IMAGES := factory.bin sysupgrade.tar
  140. IMAGE/factory.bin := append-kernel 3145728 | append-ubi
  141. IMAGE/sysupgrade.tar := sysupgrade-tar
  142. DEVICE_TITLE := Linksys EA8500
  143. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  144. endef
  145. define Device/R7500
  146. $(call Device/DniImage)
  147. DEVICE_DTS := qcom-ipq8064-r7500
  148. KERNEL_SIZE := 2097152
  149. NETGEAR_BOARD_ID := R7500
  150. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  151. BLOCKSIZE := 128KiB
  152. PAGESIZE := 2048
  153. BOARD_NAME := r7500
  154. DEVICE_TITLE := Netgear Nighthawk X4 R7500
  155. DEVICE_PACKAGES := ath10k-firmware-qca99x0
  156. endef
  157. define Device/R7800
  158. $(call Device/DniImage)
  159. DEVICE_DTS := qcom-ipq8064-r7800
  160. KERNEL_SIZE := 2097152
  161. NETGEAR_BOARD_ID := R7800
  162. NETGEAR_HW_ID := 29764958+0+128+512+4x4+4x4+cascade
  163. BLOCKSIZE := 128KiB
  164. PAGESIZE := 2048
  165. BOARD_NAME := r7800
  166. DEVICE_TITLE := Netgear Nighthawk X4S R7800
  167. DEVICE_PACKAGES := ath10k-firmware-qca9984
  168. endef
  169. TARGET_DEVICES += AP148 AP148-legacy C2600 D7800 DB149 EA8500 R7500 R7800
  170. $(eval $(call BuildImage))