Makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. include $(TOPDIR)/rules.mk
  2. include $(INCLUDE_DIR)/image.mk
  3. KERNEL_LOADADDR = 0x80060000
  4. DEVICE_VARS += LOADER_FLASH_OFFS LOADER_TYPE
  5. DEVICE_VARS += LOADER_FLASH_MAX LOADER_KERNEL_MAGIC LZMA_TEXT_START
  6. DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
  7. DEVICE_VARS += RAS_BOARD RAS_ROOTFS_SIZE RAS_VERSION
  8. DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
  9. define Build/loader-common
  10. rm -rf [email protected]
  11. $(MAKE) -C lzma-loader \
  12. PKG_BUILD_DIR="[email protected]" \
  13. TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
  14. LZMA_TEXT_START=$(LZMA_TEXT_START) \
  15. $(1) compile loader.$(LOADER_TYPE)
  16. mv "$@.$(LOADER_TYPE)" "$@"
  17. rm -rf [email protected]
  18. endef
  19. define Build/loader-kernel
  20. $(call Build/loader-common, \
  21. LOADER_DATA="$@" \
  22. BOARD="$(DEVICE_NAME)" )
  23. endef
  24. define Build/loader-okli-compile
  25. $(call Build/loader-common, \
  26. FLASH_OFFS=$(LOADER_FLASH_OFFS) \
  27. FLASH_MAX=$(LOADER_FLASH_MAX) \
  28. KERNEL_MAGIC=$(LOADER_KERNEL_MAGIC) \
  29. BOARD="$(DEVICE_NAME)" )
  30. endef
  31. # Arguments: <output name> <kernel offset>
  32. define Build/loader-okli
  33. dd if=$(KDIR)/loader-$(word 1,$(1)).$(LOADER_TYPE) bs=$(word 2,$(1)) conv=sync of="[email protected]"
  34. cat "$@" >> "[email protected]"
  35. mv "[email protected]" "$@"
  36. endef
  37. define Build/append-loader-okli
  38. cat "$(KDIR)/loader-$(word 1,$(1)).$(LOADER_TYPE)" >> "$@"
  39. endef
  40. define Build/append-loader-okli-uimage
  41. cat "$(KDIR)/loader-$(word 1,$(1)).uImage" >> "$@"
  42. endef
  43. define Build/relocate-kernel
  44. rm -rf [email protected]
  45. $(CP) ../../generic/image/relocate [email protected]
  46. $(MAKE) -j1 -C [email protected] KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
  47. ( \
  48. dd [email protected]/loader.bin bs=32 conv=sync && \
  49. perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
  50. cat "$@" \
  51. ) > "[email protected]"
  52. mv "[email protected]" "$@"
  53. rm -rf [email protected]
  54. endef
  55. define Device/Default
  56. DEVICE_DTS_DIR := ../dts
  57. DEVICE_DTS = $$(SOC)_$(1)
  58. PROFILES = Default
  59. MTDPARTS :=
  60. BLOCKSIZE := 64k
  61. KERNEL := kernel-bin | append-dtb | lzma | uImage lzma
  62. KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
  63. LOADER_KERNEL_MAGIC :=
  64. LOADER_FLASH_MAX :=
  65. LOADER_FLASH_OFFS :=
  66. LOADER_TYPE :=
  67. LZMA_TEXT_START := 0x81800000
  68. COMPILE :=
  69. IMAGES := sysupgrade.bin
  70. IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | \
  71. append-rootfs | pad-rootfs | check-size | append-metadata
  72. endef
  73. define Device/loader-okli-uimage
  74. LOADER_TYPE := bin
  75. COMPILE := loader-$(1).bin loader-$(1).uImage
  76. COMPILE/loader-$(1).bin := loader-okli-compile
  77. COMPILE/loader-$(1).uImage := loader-okli-compile | pad-to 64k | \
  78. lzma | uImage lzma
  79. endef
  80. define Device/seama
  81. KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma
  82. KERNEL_INITRAMFS := $$(KERNEL) | seama
  83. IMAGES += factory.bin
  84. SEAMA_MTDBLOCK := 1
  85. # 64 bytes offset:
  86. # - 28 bytes seama_header
  87. # - 36 bytes of META data (4-bytes aligned)
  88. IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
  89. IMAGE/sysupgrade.bin := $$(IMAGE/default) | seama | pad-rootfs | \
  90. check-size | append-metadata
  91. IMAGE/factory.bin := $$(IMAGE/default) | pad-rootfs -x 64 | seama | \
  92. seama-seal | check-size
  93. SEAMA_SIGNATURE :=
  94. endef
  95. include $(SUBTARGET).mk
  96. ifeq ($(SUBTARGET),generic)
  97. include generic-tp-link.mk
  98. include generic-ubnt.mk
  99. endif
  100. ifeq ($(SUBTARGET),tiny)
  101. include tiny-netgear.mk
  102. include tiny-tp-link.mk
  103. include tiny-ubnt.mk
  104. endif
  105. $(eval $(call BuildImage))