Makefile 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. #
  2. # Copyright (C) 2016 Jiang Yutang <[email protected]>
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/image.mk
  9. ITB_BOARDS = traverse-five64
  10. define Build/ls-clean
  11. rm -f $@
  12. endef
  13. define Build/ls-append
  14. dd if=$(STAGING_DIR_IMAGE)/$(1) >> $@
  15. endef
  16. define Build/ls-append-dtb
  17. $(call Image/BuildDTB,$(DTS_DIR)/$(1).dts,$(DTS_DIR)/$(1).dtb)
  18. dd if=$(DTS_DIR)/$(1).dtb >> $@
  19. endef
  20. define Build/traverse-fit
  21. ./mkits-multiple-config.sh -o [email protected] -A $(LINUX_KARCH) -v $(LINUX_VERSION) \
  22. -k $@ -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
  23. -C gzip -c 1 -c 2 \
  24. -d $(DEVICE_DTS_DIR)/freescale/traverse-ls1043s.dtb -D "Traverse_LS1043S" -n "ls1043s" -a $(FDT_LOADADDR) -c 1 \
  25. -d $(DEVICE_DTS_DIR)/freescale/traverse-ls1043v.dtb -D "Traverse_LS1043V" -n "ls1043v" -a $(FDT_LOADADDR) -c 2
  26. PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f [email protected] [email protected]
  27. @mv -f [email protected] $@
  28. endef
  29. define Device/Default
  30. PROFILES = Default
  31. FILESYSTEMS := squashfs
  32. DEVICE_DTS :=
  33. IMAGES = firmware.bin
  34. ifeq ($(SUBTARGET),armv8_64b)
  35. KERNEL := kernel-bin | gzip | uImage gzip
  36. KERNEL_LOADADDR = 0x80080000
  37. KERNEL_ENTRY_POINT = 0x80080000
  38. endif
  39. ifeq ($(SUBTARGET),armv8_32b)
  40. KERNEL := kernel-bin | uImage none
  41. KERNEL_NAME := zImage
  42. KERNEL_LOADADDR = 0x80008000
  43. KERNEL_ENTRY_POINT = 0x80008000
  44. endif
  45. FDT_LOADADDR = 0x90000000
  46. endef
  47. define Device/ls1043ardb
  48. DEVICE_TITLE := ls1043ardb-$(SUBTARGET)
  49. DEVICE_PACKAGES += layerscape-rcw-ls1043ardb layerscape-fman-ls1043ardb \
  50. layerscape-ppa-ls1043ardb
  51. ifeq ($(SUBTARGET),armv8_32b)
  52. DEVICE_PACKAGES += u-boot-ls1043ardb-image
  53. endif
  54. DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls1043a-rdb-sdk
  55. IMAGE/firmware.bin = ls-clean | \
  56. ls-append $(1)-rcw.bin | pad-to 1M | \
  57. ls-append $(1)-uboot.bin | pad-to 3M | \
  58. ls-append $(1)-uboot-env.bin | pad-to 4M | \
  59. ls-append $(1)-ppa.itb | pad-to 9M | \
  60. ls-append $(1)-fman.bin | pad-to 15M | \
  61. ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
  62. append-kernel | pad-to 32M | \
  63. append-rootfs | pad-rootfs | check-size 67108865
  64. endef
  65. TARGET_DEVICES += ls1043ardb
  66. define Device/ls1046ardb
  67. DEVICE_TITLE := ls1046ardb-$(SUBTARGET)
  68. DEVICE_PACKAGES += layerscape-rcw-ls1046ardb layerscape-fman-ls1046ardb \
  69. layerscape-ppa-ls1046ardb
  70. ifeq ($(SUBTARGET),armv8_32b)
  71. DEVICE_PACKAGES += u-boot-ls1046ardb-image
  72. endif
  73. DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls1046a-rdb-sdk
  74. FILESYSTEMS := ubifs
  75. UBIFS_OPTS := -m 1 -e 262016 -c 128
  76. UBINIZE_OPTS := -E 5
  77. BLOCKSIZE := 256KiB
  78. PAGESIZE := 1
  79. IMAGE/firmware.bin = ls-clean | \
  80. ls-append $(1)-rcw.bin | pad-to 1M | \
  81. ls-append $(1)-uboot.bin | pad-to 3M | \
  82. ls-append $(1)-uboot-env.bin | pad-to 4M | \
  83. ls-append $(1)-ppa.itb | pad-to 9M | \
  84. ls-append $(1)-fman.bin | pad-to 15M | \
  85. ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
  86. append-kernel | pad-to 32M | \
  87. append-ubi | check-size 67108865
  88. endef
  89. TARGET_DEVICES += ls1046ardb
  90. define Device/ls1012ardb
  91. DEVICE_TITLE := ls1012ardb-$(SUBTARGET)
  92. DEVICE_PACKAGES += layerscape-rcw-ls1012ardb layerscape-ppfe \
  93. layerscape-ppa-ls1012ardb kmod-ppfe
  94. ifeq ($(SUBTARGET),armv8_32b)
  95. DEVICE_PACKAGES += u-boot-ls1012ardb-image
  96. endif
  97. DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls1012a-rdb
  98. FILESYSTEMS := ubifs
  99. UBIFS_OPTS := -m 1 -e 262016 -c 128
  100. UBINIZE_OPTS := -E 5
  101. BLOCKSIZE := 256KiB
  102. PAGESIZE := 1
  103. IMAGE/firmware.bin = ls-clean | \
  104. ls-append $(1)-rcw.bin | pad-to 1M | \
  105. ls-append $(1)-uboot.bin | pad-to 3M | \
  106. ls-append $(1)-uboot-env.bin | pad-to 4M | \
  107. ls-append $(1)-ppa.itb | pad-to 10M | \
  108. ls-append pfe.itb | pad-to 15M | \
  109. ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
  110. append-kernel | pad-to 32M | \
  111. append-ubi | check-size 67108865
  112. endef
  113. TARGET_DEVICES += ls1012ardb
  114. define Device/ls1012afrdm
  115. DEVICE_TITLE := ls1012afrdm-$(SUBTARGET)
  116. DEVICE_PACKAGES += layerscape-rcw-ls1012afrdm layerscape-ppfe \
  117. layerscape-ppa-ls1012afrdm kmod-ppfe
  118. ifeq ($(SUBTARGET),armv8_32b)
  119. DEVICE_PACKAGES += u-boot-ls1012afrdm-image
  120. endif
  121. DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls1012a-frdm
  122. FILESYSTEMS := ubifs
  123. UBIFS_OPTS := -m 1 -e 262016 -c 128
  124. UBINIZE_OPTS := -E 5
  125. BLOCKSIZE := 256KiB
  126. PAGESIZE := 1
  127. IMAGE/firmware.bin = ls-clean | \
  128. ls-append $(1)-rcw.bin | pad-to 1M | \
  129. ls-append $(1)-uboot.bin | pad-to 3M | \
  130. ls-append $(1)-uboot-env.bin | pad-to 4M | \
  131. ls-append $(1)-ppa.itb | pad-to 10M | \
  132. ls-append pfe.itb | pad-to 15M | \
  133. ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
  134. append-kernel | pad-to 32M | \
  135. append-ubi | check-size 67108865
  136. endef
  137. TARGET_DEVICES += ls1012afrdm
  138. ifeq ($(SUBTARGET),armv8_64b)
  139. define Device/ls1088ardb
  140. DEVICE_TITLE := ls1088ardb-$(SUBTARGET)
  141. DEVICE_PACKAGES += layerscape-rcw-ls1088ardb uboot-layerscape-$(SUBTARGET)-ls1088ardb \
  142. layerscape-mc-ls1088ardb layerscape-dpl-ls1088ardb restool \
  143. layerscape-ppa-ls1088ardb
  144. DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls1088a-rdb
  145. FILESYSTEMS := ubifs
  146. UBIFS_OPTS := -m 1 -e 262016 -c 128
  147. UBINIZE_OPTS := -E 5
  148. BLOCKSIZE := 256KiB
  149. PAGESIZE := 1
  150. IMAGE/firmware.bin = ls-clean | \
  151. ls-append $(1)-rcw.bin | pad-to 1M | \
  152. ls-append $(1)-uboot.bin | pad-to 3M | \
  153. ls-append $(1)-uboot-env.bin | pad-to 4M | \
  154. ls-append $(1)-ppa.itb | pad-to 10M | \
  155. ls-append $(1)-mc.itb | pad-to 13M | \
  156. ls-append $(1)-dpl.dtb | pad-to 14M | \
  157. ls-append $(1)-dpc.dtb | pad-to 15M | \
  158. ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
  159. append-kernel | pad-to 32M | \
  160. append-ubi | check-size 67108865
  161. endef
  162. TARGET_DEVICES += ls1088ardb
  163. define Device/ls2088ardb
  164. DEVICE_TITLE := ls2088ardb-$(SUBTARGET)
  165. DEVICE_PACKAGES += layerscape-rcw-ls2088ardb uboot-layerscape-$(SUBTARGET)-ls2088ardb \
  166. layerscape-mc-ls2088ardb layerscape-dpl-ls2088ardb restool \
  167. layerscape-ppa-ls2088ardb
  168. DEVICE_DTS = ../../../arm64/boot/dts/freescale/fsl-ls2088a-rdb
  169. IMAGE/firmware.bin = ls-clean | \
  170. ls-append $(1)-rcw.bin | pad-to 1M | \
  171. ls-append $(1)-uboot.bin | pad-to 3M | \
  172. ls-append $(1)-uboot-env.bin | pad-to 4M | \
  173. ls-append $(1)-ppa.itb | pad-to 10M | \
  174. ls-append $(1)-mc.itb | pad-to 13M | \
  175. ls-append $(1)-dpl.dtb | pad-to 14M | \
  176. ls-append $(1)-dpc.dtb | pad-to 15M | \
  177. ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
  178. append-kernel | pad-to 32M | \
  179. append-rootfs | pad-rootfs | check-size 67108865
  180. endef
  181. TARGET_DEVICES += ls2088ardb
  182. endif
  183. define Device/traverse-five64
  184. KERNEL_NAME := Image
  185. KERNEL_SUFFIX := -kernel.itb
  186. KERNEL_INSTALL := 1
  187. FILESYSTEMS := ubifs
  188. DEVICE_TITLE := Traverse LS1043 Boards (Five64, LS1043S)
  189. DEVICE_PACKAGES += layerscape-fman-ls1043ardb kmod-i2c-core kmod-rtc-isl1208 uboot-envtools \
  190. uboot-traverse-ls1043v uboot-traverse-ls1043v-sdcard \
  191. kmod-hwmon-core kmod-hwmon-ltc2990 kmod-gpio-pca953x kmod-input-gpio-keys-polled \
  192. kmod-i2c-mux-pca954x kmod-hwmon-pac1934 kmod-hwmon-emc17xx
  193. DEVICE_DESCRIPTION = Build images for Traverse LS1043 boards. This generates a single image \
  194. capable of booting on any of the boards in this family.
  195. DEVICE_DTS = freescale/traverse-ls1043s
  196. DEVICE_DTS_DIR = $(LINUX_DIR)/arch/arm64/boot/dts
  197. DEVICE_DTS_CONFIG = ls1043s
  198. KERNEL := kernel-bin | gzip | traverse-fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb $$(FDT_LOADADDR)
  199. KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb $$(FDT_LOADADDR)
  200. IMAGES = root sysupgrade.tar
  201. IMAGE/root = append-rootfs
  202. IMAGE/sysupgrade.tar = sysupgrade-tar
  203. UBIFS_OPTS := -m 2048 -e 124KiB -c 4096
  204. endef
  205. TARGET_DEVICES += traverse-five64
  206. $(eval $(call BuildImage))