Makefile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #
  2. # Copyright (C) 2011 OpenWrt.org
  3. # Copyright (C) 2011 Gabor Juhos <[email protected]>
  4. #
  5. # This is free software, licensed under the GNU General Public License v2.
  6. # See /LICENSE for more information.
  7. #
  8. include $(TOPDIR)/rules.mk
  9. LZMA_TEXT_START := 0x81800000
  10. LOADADDR := 0x80060000
  11. LOADER := loader.bin
  12. LOADER_NAME := $(basename $(notdir $(LOADER)))
  13. LOADER_DATA :=
  14. KERNEL_MAGIC :=
  15. TARGET_DIR :=
  16. FLASH_OFFS :=
  17. FLASH_MAX :=
  18. BOARD :=
  19. ifeq ($(TARGET_DIR),)
  20. TARGET_DIR := $(KDIR)
  21. endif
  22. LOADER_BIN := $(TARGET_DIR)/$(LOADER_NAME).bin
  23. LOADER_GZ := $(TARGET_DIR)/$(LOADER_NAME).gz
  24. LOADER_ELF := $(TARGET_DIR)/$(LOADER_NAME).elf
  25. PKG_NAME := lzma-loader
  26. PKG_BUILD_DIR := $(KDIR)/$(PKG_NAME)
  27. .PHONY : loader-compile loader.bin loader.elf loader.gz
  28. $(PKG_BUILD_DIR)/.prepared:
  29. mkdir $(PKG_BUILD_DIR)
  30. $(CP) ./src/* $(PKG_BUILD_DIR)/
  31. touch $@
  32. loader-compile: $(PKG_BUILD_DIR)/.prepared
  33. $(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE="$(TARGET_CROSS)" \
  34. LZMA_TEXT_START=$(LZMA_TEXT_START) \
  35. LOADADDR=$(LOADADDR) \
  36. LOADER_DATA=$(LOADER_DATA) \
  37. KERNEL_MAGIC=$(KERNEL_MAGIC) \
  38. FLASH_OFFS=$(FLASH_OFFS) \
  39. FLASH_MAX=$(FLASH_MAX) \
  40. BOARD="$(BOARD)" \
  41. clean all
  42. loader.gz: $(PKG_BUILD_DIR)/loader.bin
  43. # Workaround for buggy bootloaders: Some devices
  44. # (TP-Link TL-WR1043ND v1) don't work correctly when
  45. # the uncompressed loader is too small (probably a cache
  46. # invalidation issue)
  47. dd if=$< bs=512K conv=sync | gzip -nc9 > $(LOADER_GZ)
  48. loader.elf: $(PKG_BUILD_DIR)/loader.elf
  49. $(CP) $< $(LOADER_ELF)
  50. loader.bin: $(PKG_BUILD_DIR)/loader.bin
  51. $(CP) $< $(LOADER_BIN)
  52. download:
  53. prepare: $(PKG_BUILD_DIR)/.prepared
  54. compile: loader-compile
  55. install:
  56. clean:
  57. rm -rf $(PKG_BUILD_DIR)