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