ar71xx: move generic device image definitions to a separate file
[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 JFFS2_BLOCKSIZE = 64k 128k 256k
9
10 include $(TOPDIR)/rules.mk
11 include $(INCLUDE_DIR)/image.mk
12
13 IMAGE_PROFILE:=$(if $(PROFILE),$(PROFILE),Default)
14
15 KERNEL_LOADADDR = 0x80060000
16
17 DEVICE_VARS += NETGEAR_KERNEL_MAGIC NETGEAR_BOARD_ID NETGEAR_HW_ID CMDLINE CONSOLE IMAGE_SIZE BOARDNAME LOADER_FLASH_OFFS LOADER_TYPE
18
19 ifeq ($(SUBTARGET),generic)
20 include ./tp-link.mk
21 include ./ubnt.mk
22 include ./generic.mk
23 endif
24 include ./legacy.mk
25
26 define Build/netgear-squashfs
27         rm -rf $@.fs $@.squashfs
28         mkdir -p $@.fs/image
29         cp $@ $@.fs/image/uImage
30         $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
31                 $@.fs $@.squashfs \
32                 -noappend -root-owned -be -b 65536 \
33                 $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
34
35         dd if=/dev/zero bs=1k count=1 >> $@.squashfs
36         mkimage \
37                 -A mips -O linux -T filesystem -C none \
38                 -M $(NETGEAR_KERNEL_MAGIC) \
39                 -a 0xbf070000 -e 0xbf070000 \
40                 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
41                 -d $@.squashfs $@
42         rm -rf $@.squashfs $@.fs
43 endef
44
45 define Build/netgear-uImage
46         $(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
47 endef
48
49 define Build/loader-common
50         rm -rf $@.src
51         $(MAKE) -C lzma-loader \
52                 PKG_BUILD_DIR="$@.src" \
53                 TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
54                 BOARD="$(BOARDNAME)" \
55                 LZMA_TEXT_START=0x80a00000 LOADADDR=0x80060000 \
56                 $(1) compile loader.$(LOADER_TYPE)
57         mv "$@.$(LOADER_TYPE)" "$@"
58         rm -rf $@.src
59 endef
60
61 define Build/loader-okli-compile
62         $(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
63 endef
64
65 define Build/loader-kernel
66         $(call Build/loader-common,LOADER_DATA="$@")
67 endef
68
69 define Build/loader-kernel-cmdline
70         $(call Build/loader-common,LOADER_DATA="$@" KERNEL_CMDLINE="$(CMDLINE)")
71 endef
72
73 define Build/loader-okli
74         dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
75         cat "$@" >> "$@.new"
76         mv "$@.new" "$@"
77 endef
78
79 define Build/copy-file
80         cat "$(1)" > "$@"
81 endef
82
83 define Device/Default
84   BOARDNAME :=
85   DEVICE_PROFILE = $$(BOARDNAME)
86   PROFILES = Default Minimal $$(DEVICE_PROFILE)
87   MTDPARTS :=
88   IMAGES := sysupgrade.bin
89   BLOCKSIZE := 64k
90   FILESYSTEMS = $(filter-out jffs2-%,$(TARGET_FILESYSTEMS)) jffs2-$$(BLOCKSIZE)
91   CONSOLE = ttyS0,115200
92   CMDLINE = $$(if $$(BOARDNAME),board=$$(BOARDNAME)) $$(if $$(MTDPARTS),mtdparts=$$(MTDPARTS)) $$(if $$(CONSOLE),console=$$(CONSOLE))
93   KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
94   COMPILE :=
95   IMAGES := sysupgrade.bin
96   IMAGE/sysupgrade.bin = append-kernel $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
97 endef
98
99 ifeq ($(SUBTARGET),nand)
100
101 define Build/MerakiNAND
102         -$(STAGING_DIR_HOST)/bin/mkmerakifw \
103                 -B $(BOARDNAME) -s \
104                 -i $@ \
105                 -o $@.new
106         @mv $@.new $@
107 endef
108
109 define Device/mr18
110   BOARDNAME = MR18
111   BLOCKSIZE := 64k
112   CONSOLE = ttyS0,115200
113   MTDPARTS = ar934x-nfc:512k(nandloader)ro,8M(kernel),8M(recovery),113664k(ubi),128k@130944k(odm-caldata)ro
114   IMAGES := sysupgrade.tar
115   KERNEL := kernel-bin | patch-cmdline | MerakiNAND
116   KERNEL_INITRAMFS := kernel-bin | patch-cmdline | MerakiNAND
117   IMAGE/sysupgrade.tar := sysupgrade-nand
118 endef
119 TARGET_DEVICES += mr18
120
121 endif # ifeq ($(SUBTARGET),nand)
122
123 $(eval $(call BuildImage))