image.mk: clean up redundant code related to DEVICE_DTS
[openwrt/openwrt.git] / target / linux / kirkwood / image / Makefile
1 #
2 # Copyright (C) 2009-2013 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 NAND_BLOCKSIZE := 2048-128k
9
10 include $(TOPDIR)/rules.mk
11 include $(INCLUDE_DIR)/image.mk
12
13 DEVICE_VARS += KERNEL_SIZE
14 KERNEL_LOADADDR:=0x8000
15 TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome
16
17 define Device/Default
18 KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
19 KERNEL := kernel-bin | append-dtb | uImage none
20 KERNEL_NAME := zImage
21 KERNEL_SUFFIX := -uImage
22 KERNEL_INSTALL := 1
23 endef
24
25 define Device/dockstar
26 DEVICE_DTS := kirkwood-dockstar
27 PAGESIZE := 2048
28 SUBPAGESIZE := 512
29 BLOCKSIZE := 128KiB
30 FILESYSTEMS := squashfs
31 PROFILES := Generic DOCKSTAR
32 IMAGES := factory.bin sysupgrade.tar
33 IMAGE/factory.bin := append-ubi
34 IMAGE/sysupgrade.tar := sysupgrade-nand
35 KERNEL_IN_UBI := 1
36 KERNEL := kernel-bin | append-dtb
37 endef
38
39 define Device/goflexnet
40 $(Device/dockstar)
41 PROFILES := Generic GOFLEXNET
42 DEVICE_DTS := kirkwood-goflexnet
43 endef
44
45 define Device/goflexhome
46 $(Device/dockstar)
47 PROFILES := Generic GOFLEXHOME
48 DEVICE_DTS := kirkwood-goflexhome
49 endef
50
51 define Device/linksys-audi
52 DEVICE_DTS := kirkwood-linksys-audi
53 PAGESIZE := 512
54 SUBPAGESIZE := 256
55 BLOCKSIZE := 16KiB
56 KERNEL_SIZE := 2624k
57 FILESYSTEMS := squashfs
58 PROFILES := Generic AUDI
59 IMAGES := factory.bin sysupgrade.tar
60 IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
61 IMAGE/sysupgrade.tar := sysupgrade-nand
62 endef
63
64 define Device/linksys-viper
65 DEVICE_DTS := kirkwood-linksys-viper
66 PAGESIZE := 2048
67 SUBPAGESIZE := 512
68 BLOCKSIZE := 128KiB
69 KERNEL_SIZE := 2688k
70 FILESYSTEMS := squashfs
71 PROFILES := Generic VIPER
72 IMAGES := factory.bin sysupgrade.tar
73 IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
74 IMAGE/sysupgrade.tar := sysupgrade-nand
75 endef
76
77 define Image/BuildKernel/Template
78
79 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
80 echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage
81 $(call Image/BuildKernel/MkuImage, \
82 none, 0x8000, 0x8000, \
83 $(BIN_DIR)/$(IMG_PREFIX)-zImage, \
84 $(BIN_DIR)/$(IMG_PREFIX)-uImage \
85 )
86
87 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
88 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
89 echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
90 $(call Image/BuildKernel/MkuImage, \
91 none, 0x8000, 0x8000, \
92 $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
93 $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
94 )
95 endif
96
97 ifneq ($(1),)
98 $(CP) $(DTS_DIR)/kirkwood-$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb
99
100 $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
101 cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
102 $(call Image/BuildKernel/MkuImage, \
103 none, 0x8000, 0x8000, \
104 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage, \
105 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage \
106 )
107
108 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
109 $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
110 cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
111 $(call Image/BuildKernel/MkuImage, \
112 none, 0x8000, 0x8000, \
113 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs, \
114 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage-initramfs \
115 )
116 endif
117 endif
118 endef
119
120 define Image/InstallKernel/Template
121
122 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL),)
123 $(INSTALL_DIR) $(TARGET_DIR)/boot
124 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE),)
125 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/
126 ln -sf $(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/uImage
127 endif
128 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),)
129 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/
130 ln -sf $(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/zImage
131 endif
132 endif
133
134 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB),)
135 $(INSTALL_DIR) $(TARGET_DIR)/boot
136 ifneq ($(1),)
137 $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/
138 ln -sf $(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/$(1).dtb
139 endif
140 endif
141 endef
142
143 define Image/Build/jffs2-nand-2048-128k
144 dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
145 bs=2048 conv=sync
146 endef
147
148 define Image/Build/squashfs
149 $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
150 ( \
151 dd if=$(KDIR)/zImage bs=4096k conv=sync; \
152 dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
153 ) > $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img
154 endef
155
156 define Image/Build/ubifs
157
158 ifneq ($($(PROFILE)_UBIFS_OPTS),)
159 $(CP) $(KDIR)/root.ubifs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-rootfs.ubifs
160 endif
161 endef
162
163 define Image/Build/ubi
164
165 ifneq ($($(PROFILE)_UBI_OPTS),)
166 $(CP) $(KDIR)/root.ubi $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-rootfs.ubi
167 endif
168 endef
169
170 DOCKSTAR_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
171 DOCKSTAR_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
172
173 GOFLEXHOME_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
174 GOFLEXHOME_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
175
176 GOFLEXNET_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
177 GOFLEXNET_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
178
179 Image/BuildKernel/Template/Generic=$(call Image/BuildKernel/Template)
180 Image/InstallKernel/Template/Generic=$(call Image/InstallKernel/Template)
181
182 IB62X0_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
183 IB62X0_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
184
185 Image/BuildKernel/Template/IB62X0=$(call Image/BuildKernel/Template,ib62x0)
186 Image/InstallKernel/Template/IB62X0=$(call Image/InstallKernel/Template,ib62x0)
187
188 ICONNECT_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
189 ICONNECT_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
190
191 Image/BuildKernel/Template/ICONNECT=$(call Image/BuildKernel/Template,iconnect)
192 Image/InstallKernel/Template/ICONNECT=$(call Image/InstallKernel/Template,iconnect)
193
194 IOMEGA_IX2_200_UBIFS_OPTS:="-m 512 -e 15872 -c 2048"
195 IOMEGA_IX2_200_UBI_OPTS:="-m 512 -p 16384 -s 256"
196
197 Image/BuildKernel/Template/IOMEGA_IX2_200=$(call Image/BuildKernel/Template,iomega_ix2_200)
198 Image/InstallKernel/Template/IOMEGA_IX2_200=$(call Image/InstallKernel/Template,iomega_ix2_200)
199
200 NSA310S_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
201 NSA310S_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
202
203 Image/BuildKernel/Template/NSA310S=$(call Image/BuildKernel/Template,nsa310s)
204 Image/InstallKernel/Template/NSA310S=$(call Image/InstallKernel/Template,nsa310s)
205
206 POGOE02_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
207 POGOE02_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
208
209 Image/BuildKernel/Template/POGOE02=$(call Image/BuildKernel/Template,pogo_e02)
210 Image/InstallKernel/Template/POGOE02=$(call Image/InstallKernel/Template,pogo_e02)
211
212 SHEEVAPLUG_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
213 SHEEVAPLUG_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
214
215 Image/BuildKernel/Template/SHEEVAPLUG=$(call Image/BuildKernel/Template,sheevaplug)
216 Image/InstallKernel/Template/SHEEVAPLUG=$(call Image/InstallKernel/Template,sheevaplug)
217
218 SHEEVAPLUGSATA_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
219 SHEEVAPLUGSATA_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
220
221 Image/BuildKernel/Template/SHEEVAPLUGSATA=$(call Image/BuildKernel/Template,sheevaplug-esata)
222 Image/InstallKernel/Template/SHEEVAPLUGSATA=$(call Image/InstallKernel/Template,sheevaplug-esata)
223
224 GuruplugServerPlus_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
225 GuruplugServerPlus_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
226
227 Image/BuildKernel/Template/GuruplugServerPlus=$(call Image/BuildKernel/Template,guruplug-server-plus)
228 Image/InstallKernel/Template/GuruplugServerPlus=$(call Image/InstallKernel/Template,guruplug-server-plus)
229
230 Topkick1281P2_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
231 Topkick1281P2_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
232
233 Image/BuildKernel/Template/Topkick1281P2=$(call Image/BuildKernel/Template,topkick)
234 Image/InstallKernel/Template/Topkick1281P2=$(call Image/InstallKernel/Template,topkick)
235
236 define Image/BuildKernel
237 $(call Image/BuildKernel/Template/$(PROFILE))
238 endef
239
240 define Image/InstallKernel
241 $(call Image/InstallKernel/Template/$(PROFILE))
242 endef
243
244 define Image/Build
245 $(if $(Image/Build/$(1)), \
246 $(call Image/Build/$(1),$(1)), \
247 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
248 )
249 endef
250
251 $(eval $(call BuildImage))