ath79: lzma-loader: allow setting custom kernel magic
[openwrt/staging/wigyori.git] / target / linux / ath79 / 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 := 0x81800000
12 LOADADDR := 0x80060000
13 LOADER := loader.bin
14 LOADER_NAME := $(basename $(notdir $(LOADER)))
15 LOADER_DATA :=
16 KERNEL_MAGIC :=
17 TARGET_DIR :=
18 FLASH_OFFS :=
19 FLASH_MAX :=
20 BOARD :=
21
22 ifeq ($(TARGET_DIR),)
23 TARGET_DIR := $(KDIR)
24 endif
25
26 LOADER_BIN := $(TARGET_DIR)/$(LOADER_NAME).bin
27 LOADER_GZ := $(TARGET_DIR)/$(LOADER_NAME).gz
28 LOADER_ELF := $(TARGET_DIR)/$(LOADER_NAME).elf
29
30 PKG_NAME := lzma-loader
31 PKG_BUILD_DIR := $(KDIR)/$(PKG_NAME)
32
33 .PHONY : loader-compile loader.bin loader.elf loader.gz
34
35 $(PKG_BUILD_DIR)/.prepared:
36 mkdir $(PKG_BUILD_DIR)
37 $(CP) ./src/* $(PKG_BUILD_DIR)/
38 touch $@
39
40 loader-compile: $(PKG_BUILD_DIR)/.prepared
41 $(MAKE) -C $(PKG_BUILD_DIR) CROSS_COMPILE="$(TARGET_CROSS)" \
42 LZMA_TEXT_START=$(LZMA_TEXT_START) \
43 LOADADDR=$(LOADADDR) \
44 LOADER_DATA=$(LOADER_DATA) \
45 KERNEL_MAGIC=$(KERNEL_MAGIC) \
46 FLASH_OFFS=$(FLASH_OFFS) \
47 FLASH_MAX=$(FLASH_MAX) \
48 BOARD="$(BOARD)" \
49 clean all
50
51 loader.gz: $(PKG_BUILD_DIR)/loader.bin
52 # Workaround for buggy bootloaders: Some devices
53 # (TP-Link TL-WR1043ND v1) don't work correctly when
54 # the uncompressed loader is too small (probably a cache
55 # invalidation issue)
56 dd if=$< bs=512K conv=sync | gzip -nc9 > $(LOADER_GZ)
57
58 loader.elf: $(PKG_BUILD_DIR)/loader.elf
59 $(CP) $< $(LOADER_ELF)
60
61 loader.bin: $(PKG_BUILD_DIR)/loader.bin
62 $(CP) $< $(LOADER_BIN)
63
64 download:
65 prepare: $(PKG_BUILD_DIR)/.prepared
66 compile: loader-compile
67
68 install:
69
70 clean:
71 rm -rf $(PKG_BUILD_DIR)
72