ar71xx: add support for EnGenius ENS202EXT
[oweals/openwrt.git] / target / linux / ar71xx / image / Makefile
1 #
2 # Copyright (C) 2008-2011 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 include $(INCLUDE_DIR)/image.mk
10
11 KERNEL_LOADADDR = 0x80060000
12
13 DEVICE_VARS += NETGEAR_KERNEL_MAGIC NETGEAR_BOARD_ID NETGEAR_HW_ID CMDLINE CONSOLE IMAGE_SIZE BOARDNAME LOADER_FLASH_OFFS LOADER_TYPE
14
15 ifeq ($(SUBTARGET),generic)
16 include ./tp-link.mk
17 include ./ubnt.mk
18 include ./generic.mk
19 include ./legacy-devices.mk
20 include ./senao.mk
21 endif
22 ifeq ($(SUBTARGET),nand)
23 include ./nand.mk
24 endif
25 ifeq ($(SUBTARGET),mikrotik)
26 include ./mikrotik.mk
27 endif
28 include ./legacy.mk
29
30 define Build/netgear-squashfs
31         rm -rf $@.fs $@.squashfs
32         mkdir -p $@.fs/image
33         cp $@ $@.fs/image/uImage
34         $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
35                 $@.fs $@.squashfs \
36                 -noappend -root-owned -be -b 65536 \
37                 $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
38
39         dd if=/dev/zero bs=1k count=1 >> $@.squashfs
40         mkimage \
41                 -A mips -O linux -T filesystem -C none \
42                 -M $(NETGEAR_KERNEL_MAGIC) \
43                 -a 0xbf070000 -e 0xbf070000 \
44                 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
45                 -d $@.squashfs $@
46         rm -rf $@.squashfs $@.fs
47 endef
48
49 define Build/netgear-uImage
50         $(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
51 endef
52
53 define Build/loader-common
54         rm -rf $@.src
55         $(MAKE) -C lzma-loader \
56                 PKG_BUILD_DIR="$@.src" \
57                 TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
58                 BOARD="$(BOARDNAME)" \
59                 LZMA_TEXT_START=0x80a00000 LOADADDR=0x80060000 \
60                 $(1) compile loader.$(LOADER_TYPE)
61         mv "$@.$(LOADER_TYPE)" "$@"
62         rm -rf $@.src
63 endef
64
65 define Build/loader-okli-compile
66         $(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
67 endef
68
69 define Build/loader-kernel
70         $(call Build/loader-common,LOADER_DATA="$@")
71 endef
72
73 define Build/loader-kernel-cmdline
74         $(call Build/loader-common,LOADER_DATA="$@" KERNEL_CMDLINE="$(CMDLINE)")
75 endef
76
77 define Build/loader-okli
78         dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
79         cat "$@" >> "$@.new"
80         mv "$@.new" "$@"
81 endef
82
83 define Build/relocate-kernel
84         rm -rf $@.relocate
85         $(CP) ../../generic/image/relocate $@.relocate
86         $(MAKE) -j1 -C $@.relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
87         ( \
88                 dd if=$@.relocate/loader.bin bs=32 conv=sync && \
89                 perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
90                 cat "$@" \
91         ) > "$@.new"
92         mv "$@.new" "$@"
93         rm -rf $@.relocate
94 endef
95
96 define Build/copy-file
97         cat "$(1)" > "$@"
98 endef
99
100 define Device/Default
101   BOARDNAME :=
102   DEVICE_PROFILE = $$(BOARDNAME)
103   PROFILES = Default Minimal $$(DEVICE_PROFILE)
104   MTDPARTS :=
105   BLOCKSIZE := 64k
106   CONSOLE = ttyS0,115200
107   CMDLINE = $$(if $$(BOARDNAME),board=$$(BOARDNAME)) $$(if $$(MTDPARTS),mtdparts=$$(MTDPARTS)) $$(if $$(CONSOLE),console=$$(CONSOLE))
108   KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
109   COMPILE :=
110   IMAGES := sysupgrade.bin
111   IMAGE/sysupgrade.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
112 endef
113
114 $(eval $(call BuildImage))