Makefile 2.7 KB

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