2
0

Makefile 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Copyright (C) 2012-2016 OpenWrt.org
  4. # Copyright (C) 2016 LEDE-project.org
  5. JFFS2_BLOCKSIZE = 128k
  6. include $(TOPDIR)/rules.mk
  7. include $(INCLUDE_DIR)/image.mk
  8. DEVICE_VARS += BOOT_SCRIPT UBOOT
  9. KERNEL_LOADADDR := 0x00008000
  10. define Build/boot-scr
  11. rm -f [email protected]
  12. sed \
  13. -e 's#@ROOT@#$(IMG_PART_SIGNATURE)#g' \
  14. -e 's#@DTB@#$(firstword $(DEVICE_DTS))#g' \
  15. $(BOOT_SCRIPT).bootscript > [email protected]
  16. mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d [email protected] [email protected]
  17. endef
  18. define Build/boot-img
  19. rm -f [email protected]
  20. mkfs.fat -C [email protected] $$(( $(CONFIG_TARGET_KERNEL_PARTSIZE) * 1024 ))
  21. $(foreach dts,$(DEVICE_DTS), mcopy -i [email protected] $(KDIR)/image-$(dts).dtb ::$(dts).dtb;)
  22. mcopy -i [email protected] $(IMAGE_KERNEL) ::$(KERNEL_NAME)
  23. -mcopy -i [email protected] [email protected] ::boot.scr
  24. endef
  25. define Build/boot-img-ext4
  26. rm -fR [email protected]
  27. mkdir -p [email protected]
  28. $(foreach dts,$(DEVICE_DTS), $(CP) $(KDIR)/image-$(dts).dtb [email protected]/$(dts).dtb;)
  29. $(CP) $(IMAGE_KERNEL) [email protected]/$(KERNEL_NAME)
  30. -$(CP) [email protected] [email protected]/boot.scr
  31. make_ext4fs -J -L kernel -l $(CONFIG_TARGET_KERNEL_PARTSIZE)M [email protected] [email protected]
  32. endef
  33. define Build/buffalo-kernel-jffs2
  34. rm -rf $(KDIR)/kernel_jffs2 [email protected]
  35. mkdir -p $(KDIR)/kernel_jffs2
  36. dd if=/dev/zero [email protected] bs=131008 count=1 conv=sync
  37. $(STAGING_DIR_HOST)/bin/mkimage \
  38. -T ramdisk -A $(LINUX_KARCH) -O linux -C gzip -n 'fake initrd' \
  39. -d [email protected] $(KDIR)/kernel_jffs2/initrd.buffalo
  40. cp $@ $(KDIR)/kernel_jffs2/uImage.buffalo
  41. $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \
  42. --little-endian -v --squash-uids -q -f -n -x lzma -x rtime -m none \
  43. --eraseblock=128KiB --pad=$(KERNEL_SIZE) -d $(KDIR)/kernel_jffs2 -o $@
  44. rm -rf $(KDIR)/kernel_jffs2 [email protected]
  45. endef
  46. define Build/sdcard-img
  47. SIGNATURE="$(IMG_PART_SIGNATURE)" \
  48. ./gen_mvebu_sdcard_img.sh $@ \
  49. $(if $(UBOOT),$(STAGING_DIR_IMAGE)/$(UBOOT)) \
  50. c $(CONFIG_TARGET_KERNEL_PARTSIZE) [email protected] \
  51. 83 $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS)
  52. endef
  53. define Build/sdcard-img-ext4
  54. SIGNATURE="$(IMG_PART_SIGNATURE)" \
  55. ./gen_mvebu_sdcard_img.sh $@ \
  56. $(if $(UBOOT),$(STAGING_DIR_IMAGE)/$(UBOOT)) \
  57. 83 $(CONFIG_TARGET_KERNEL_PARTSIZE) [email protected] \
  58. 83 $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS)
  59. endef
  60. define Build/omnia-medkit-initramfs
  61. $(TAR) -c -T /dev/null -f $@
  62. rm -rf $(dir $(IMAGE_KERNEL))boot
  63. mkdir -p $(dir $(IMAGE_KERNEL))boot/boot/
  64. cp $(KDIR)/zImage-initramfs $(dir $(IMAGE_KERNEL))boot/boot/zImage
  65. cp $(KDIR)/image-$(DEVICE_DTS).dtb $(dir $(IMAGE_KERNEL))boot/boot/dtb
  66. $(TAR) -rp --numeric-owner --owner=0 --group=0 --sort=name \
  67. $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
  68. --file=$@ -C $(dir $(IMAGE_KERNEL))boot/ .
  69. endef
  70. define Build/uDPU-firmware
  71. (rm -fR $@-fw; mkdir -p $@-fw)
  72. $(CP) $(BIN_DIR)/$(IMAGE_PREFIX)-initramfs.itb $@-fw/recovery.itb
  73. $(CP) [email protected] $@-fw/boot.scr
  74. $(TAR) -cvzp --numeric-owner --owner=0 --group=0 --sort=name \
  75. $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
  76. -f $@-fw/rootfs.tgz -C $(TARGET_DIR) .
  77. $(TAR) -cvzp --numeric-owner --owner=0 --group=0 --sort=name \
  78. $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
  79. -f $@-fw/boot.tgz -C [email protected] .
  80. $(TAR) -cvzp --numeric-owner --owner=0 --group=0 --sort=name \
  81. $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
  82. -f $(KDIR_TMP)/$(IMAGE_PREFIX)-firmware.tgz -C $@-fw .
  83. endef
  84. define Device/Default
  85. PROFILES := Default
  86. DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
  87. DEVICE_DTS_DIR := $(DTS_DIR)
  88. BOARD_NAME = $$(DEVICE_DTS)
  89. KERNEL_NAME := zImage
  90. KERNEL := kernel-bin | append-dtb | uImage none
  91. IMAGES := sysupgrade.bin
  92. IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
  93. UBINIZE_OPTS := -E 5
  94. UBOOT :=
  95. BOOT_SCRIPT :=
  96. endef
  97. define Device/Default-arm64
  98. BOOT_SCRIPT := generic-arm64
  99. DEVICE_DTS_DIR := $(DTS_DIR)/marvell
  100. IMAGES := sdcard.img.gz
  101. IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
  102. KERNEL_NAME := Image
  103. KERNEL := kernel-bin
  104. endef
  105. define Device/NAND-128K
  106. BLOCKSIZE := 128k
  107. PAGESIZE := 2048
  108. SUBPAGESIZE := 512
  109. VID_HDR_OFFSET := 2048
  110. endef
  111. define Device/NAND-256K
  112. BLOCKSIZE := 256k
  113. PAGESIZE := 4096
  114. endef
  115. define Device/NAND-512K
  116. BLOCKSIZE := 512k
  117. PAGESIZE := 4096
  118. endef
  119. include $(SUBTARGET).mk
  120. $(eval $(call BuildImage))