Makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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. UBINIZE_OPTS = -m 2048 -p 128KiB
  7. KERNEL_LOADADDR := 0x42208000
  8. define Image/Prepare
  9. $(CP) $(LINUX_DIR)/vmlinux $(KDIR)/$(IMG_PREFIX)-vmlinux.elf
  10. mkimage -A arm -O linux -T filesystem -C none \
  11. -a $(KERNEL_LOADADDR) -e $(KERNEL_LOADADDR) \
  12. -n 'ARM OpenWrt fakeroot' \
  13. -s $(KDIR_TMP)/root.dummy-uImage.tmp
  14. echo -ne '\xff' > $(KDIR_TMP)/root.dummy
  15. cat $(KDIR_TMP)/root.dummy $(KDIR_TMP)/root.dummy-uImage.tmp > $(KDIR)/root.dummy
  16. endef
  17. define Image/BuildKernel
  18. $(CP) $(KDIR)/$(IMG_PREFIX)-vmlinux.elf $(BIN_DIR)
  19. endef
  20. define Image/Build/squashfs
  21. cp $(KDIR)/root.squashfs $(KDIR)/root.squashfs-raw
  22. $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
  23. endef
  24. define Image/Build
  25. $(call Image/Build/$(1),$(1))
  26. dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(1)-root.img bs=2k conv=sync
  27. endef
  28. define Build/append-dtb
  29. cat $(DTS_DIR)/$(DEVICE_DTS).dtb >> $@
  30. endef
  31. define Build/append-file
  32. cat $(1) >> $@
  33. endef
  34. define Device/Default
  35. PROFILES := Default
  36. KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
  37. DEVICE_DTS :=
  38. KERNEL_PREFIX := $$(IMAGE_PREFIX)
  39. IMAGES :=
  40. KERNEL_IN_UBI :=
  41. BOARD_NAME :=
  42. endef
  43. DEVICE_VARS += DEVICE_DTS KERNEL_IN_UBI BOARD_NAME
  44. define Device/LegacyImage
  45. KERNEL_SUFFIX := -uImage
  46. KERNEL = kernel-bin | append-dtb | uImage none
  47. KERNEL_NAME := zImage
  48. endef
  49. define Device/FitImage
  50. KERNEL_SUFFIX := -fit-uImage.itb
  51. KERNEL = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
  52. KERNEL_NAME := Image
  53. endef
  54. define Device/UbiFit
  55. KERNEL_IN_UBI := 1
  56. IMAGES := nand-factory.ubi nand-sysupgrade.tar
  57. IMAGE/nand-factory.ubi := append-ubi
  58. IMAGE/nand-sysupgrade.tar := sysupgrade-nand
  59. endef
  60. define Device/DniImage
  61. PROFILES += $$(DEVICE_NAME)
  62. FILESYSTEMS := squashfs
  63. KERNEL_SUFFIX := -uImage
  64. KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
  65. KERNEL = kernel-bin | append-dtb | pad-to $$$$(($$(KERNEL_SIZE)-2*64-1)) | uImage none | append-file $(KDIR)/root.dummy
  66. KERNEL_NAME := zImage
  67. NETGEAR_BOARD_ID :=
  68. NETGEAR_HW_ID :=
  69. IMAGES := factory.img sysupgrade.tar
  70. IMAGE/factory.img := append-kernel | append-ubi | netgear-dni
  71. IMAGE/sysupgrade.tar = sysupgrade-nand
  72. endef
  73. DEVICE_VARS += KERNEL_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID DEVICE_BLOCK_SIZE DEVICE_PAGE_SIZE
  74. define Device/AP148
  75. $(call Device/FitImage)
  76. $(call Device/UbiFit)
  77. DEVICE_DTS := qcom-ipq8064-ap148
  78. BLOCKSIZE := 128KiB
  79. PAGESIZE := 2048
  80. BOARD_NAME := ap148
  81. endef
  82. define Device/AP148-legacy
  83. $(call Device/LegacyImage)
  84. $(call Device/UbiFit)
  85. DEVICE_DTS := qcom-ipq8064-ap148
  86. BLOCKSIZE := 128KiB
  87. PAGESIZE := 2048
  88. BOARD_NAME := ap148
  89. endef
  90. define Device/DB149
  91. $(call Device/FitImage)
  92. DEVICE_DTS := qcom-ipq8064-db149
  93. KERNEL_INSTALL := 1
  94. BOARD_NAME := db149
  95. endef
  96. define Device/R7500
  97. $(call Device/DniImage)
  98. DEVICE_DTS := qcom-ipq8064-r7500
  99. KERNEL_SIZE := 2097152
  100. NETGEAR_BOARD_ID := R7500
  101. NETGEAR_HW_ID := 29764841+0+128+256+3x3+4x4
  102. BLOCKSIZE := 128KiB
  103. PAGESIZE := 2048
  104. BOARD_NAME := r7500
  105. endef
  106. TARGET_DEVICES += AP148 AP148-legacy DB149 R7500
  107. $(eval $(call BuildImage))