common-tp-link.mk 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. DEVICE_VARS += TPLINK_HWID TPLINK_HWREV TPLINK_FLASHLAYOUT TPLINK_HEADER_VERSION
  2. DEVICE_VARS += TPLINK_BOARD_NAME TPLINK_BOARD_ID
  3. define rootfs_align
  4. $(patsubst %-256k,0x40000,$(patsubst %-128k,0x20000,$(patsubst %-64k,0x10000,$(patsubst squashfs%,0x4,$(patsubst root.%,%,$(1))))))
  5. endef
  6. # combine kernel and rootfs into one image
  7. # mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
  8. # <type> is "sysupgrade" or "factory"
  9. #
  10. # -a align the rootfs start on an <align> bytes boundary
  11. # -j add jffs2 end-of-filesystem markers
  12. # -s strip padding from end of the image
  13. # -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
  14. define Build/mktplinkfw
  15. -$(STAGING_DIR_HOST)/bin/mktplinkfw \
  16. -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \
  17. -N OpenWrt -V $(REVISION) -m $(TPLINK_HEADER_VERSION) \
  18. -k $(IMAGE_KERNEL) -r $@ -o [email protected] -j -X 0x40000 \
  19. -a $(call rootfs_align,$(FILESYSTEM)) \
  20. $(wordlist 2,$(words $(1)),$(1)) \
  21. $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv [email protected] $@ || rm -f $@
  22. endef
  23. # mktplinkfw-combined
  24. #
  25. # -c combined image
  26. define Build/mktplinkfw-combined
  27. $(STAGING_DIR_HOST)/bin/mktplinkfw \
  28. -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \
  29. -N OpenWrt -V $(REVISION) $(1) -m $(TPLINK_HEADER_VERSION) \
  30. -k $@ -o [email protected] -s -S -c
  31. @mv [email protected] $@
  32. endef
  33. define Build/uImageArcher
  34. mkimage -A $(LINUX_KARCH) \
  35. -O linux -T kernel -C $(1) -a $(KERNEL_LOADADDR) \
  36. -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
  37. -n '$(call toupper,$(LINUX_KARCH)) OpenWrt Linux-$(LINUX_VERSION)' -d $@ [email protected]
  38. @mv [email protected] $@
  39. endef
  40. define Device/tplink
  41. DEVICE_VENDOR := TP-Link
  42. TPLINK_HWREV := 0x1
  43. TPLINK_HEADER_VERSION := 1
  44. LOADER_TYPE := gz
  45. KERNEL := kernel-bin | append-dtb | lzma
  46. KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | tplink-v1-header
  47. IMAGES += factory.bin
  48. IMAGE/sysupgrade.bin := append-rootfs | mktplinkfw sysupgrade | \
  49. append-metadata
  50. IMAGE/factory.bin := append-rootfs | mktplinkfw factory
  51. endef
  52. define Device/tplink-nolzma
  53. $(Device/tplink)
  54. LOADER_FLASH_OFFS := 0x22000
  55. COMPILE := loader-$(1).gz
  56. COMPILE/loader-$(1).gz := loader-okli-compile
  57. KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \
  58. loader-okli $(1) 7680
  59. KERNEL_INITRAMFS := kernel-bin | append-dtb | gzip | tplink-v1-header
  60. endef
  61. define Device/tplink-4m
  62. $(Device/tplink-nolzma)
  63. TPLINK_FLASHLAYOUT := 4M
  64. IMAGE_SIZE := 3904k
  65. endef
  66. define Device/tplink-4mlzma
  67. $(Device/tplink)
  68. TPLINK_FLASHLAYOUT := 4Mlzma
  69. IMAGE_SIZE := 3904k
  70. endef
  71. define Device/tplink-8m
  72. $(Device/tplink-nolzma)
  73. TPLINK_FLASHLAYOUT := 8M
  74. IMAGE_SIZE := 8000k
  75. endef
  76. define Device/tplink-8mlzma
  77. $(Device/tplink)
  78. TPLINK_FLASHLAYOUT := 8Mlzma
  79. IMAGE_SIZE := 8000k
  80. endef
  81. define Device/tplink-16mlzma
  82. $(Device/tplink)
  83. TPLINK_FLASHLAYOUT := 16Mlzma
  84. IMAGE_SIZE := 16192k
  85. endef
  86. define Device/tplink-safeloader
  87. $(Device/tplink)
  88. KERNEL := kernel-bin | append-dtb | lzma | tplink-v1-header -O
  89. IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
  90. append-metadata | check-size $$$$(IMAGE_SIZE)
  91. IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
  92. endef
  93. define Device/tplink-safeloader-uimage
  94. $(Device/tplink-safeloader)
  95. KERNEL := kernel-bin | append-dtb | lzma | uImageArcher lzma
  96. endef
  97. define Device/tplink-loader-okli
  98. $(Device/tplink-safeloader)
  99. LOADER_TYPE := elf
  100. LOADER_FLASH_OFFS := 0x43000
  101. COMPILE := loader-$(1).elf
  102. COMPILE/loader-$(1).elf := loader-okli-compile
  103. KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | \
  104. loader-okli $(1) 12288
  105. endef