ar71xx: move nand device image definitions to a separate file
[openwrt/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 ifeq ($(SUBTARGET),nand)
25 include ./nand.mk
26 endif
27 include ./legacy.mk
28
29 define Build/netgear-squashfs
30 rm -rf $@.fs $@.squashfs
31 mkdir -p $@.fs/image
32 cp $@ $@.fs/image/uImage
33 $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
34 $@.fs $@.squashfs \
35 -noappend -root-owned -be -b 65536 \
36 $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
37
38 dd if=/dev/zero bs=1k count=1 >> $@.squashfs
39 mkimage \
40 -A mips -O linux -T filesystem -C none \
41 -M $(NETGEAR_KERNEL_MAGIC) \
42 -a 0xbf070000 -e 0xbf070000 \
43 -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
44 -d $@.squashfs $@
45 rm -rf $@.squashfs $@.fs
46 endef
47
48 define Build/netgear-uImage
49 $(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
50 endef
51
52 define Build/loader-common
53 rm -rf $@.src
54 $(MAKE) -C lzma-loader \
55 PKG_BUILD_DIR="$@.src" \
56 TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
57 BOARD="$(BOARDNAME)" \
58 LZMA_TEXT_START=0x80a00000 LOADADDR=0x80060000 \
59 $(1) compile loader.$(LOADER_TYPE)
60 mv "$@.$(LOADER_TYPE)" "$@"
61 rm -rf $@.src
62 endef
63
64 define Build/loader-okli-compile
65 $(call Build/loader-common,FLASH_OFFS=$(LOADER_FLASH_OFFS) FLASH_MAX=0 KERNEL_CMDLINE="$(CMDLINE)")
66 endef
67
68 define Build/loader-kernel
69 $(call Build/loader-common,LOADER_DATA="$@")
70 endef
71
72 define Build/loader-kernel-cmdline
73 $(call Build/loader-common,LOADER_DATA="$@" KERNEL_CMDLINE="$(CMDLINE)")
74 endef
75
76 define Build/loader-okli
77 dd if=$(KDIR)/loader-$(1).gz bs=7680 conv=sync of="$@.new"
78 cat "$@" >> "$@.new"
79 mv "$@.new" "$@"
80 endef
81
82 define Build/copy-file
83 cat "$(1)" > "$@"
84 endef
85
86 define Device/Default
87 BOARDNAME :=
88 DEVICE_PROFILE = $$(BOARDNAME)
89 PROFILES = Default Minimal $$(DEVICE_PROFILE)
90 MTDPARTS :=
91 IMAGES := sysupgrade.bin
92 BLOCKSIZE := 64k
93 FILESYSTEMS = $(filter-out jffs2-%,$(TARGET_FILESYSTEMS)) jffs2-$$(BLOCKSIZE)
94 CONSOLE = ttyS0,115200
95 CMDLINE = $$(if $$(BOARDNAME),board=$$(BOARDNAME)) $$(if $$(MTDPARTS),mtdparts=$$(MTDPARTS)) $$(if $$(CONSOLE),console=$$(CONSOLE))
96 KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
97 COMPILE :=
98 IMAGES := sysupgrade.bin
99 IMAGE/sysupgrade.bin = append-kernel $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE)
100 endef
101
102 $(eval $(call BuildImage))