kirkwood: add DEVICE_VAR KERNEL_IN_UBI for kernel as volume in ubi images
[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 += DEVICE_DTS KERNEL_SIZE PAGESIZE BLOCKSIZE SUBPAGESIZE KERNEL_IN_UBI
14 KERNEL_LOADADDR:=0x8000
15 TARGET_DEVICES = linksys-audi linksys-viper
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_IN_UBI :=
22 endef
23
24 define Device/dockstar
25   DEVICE_DTS := kirkwood-dockstar
26   PAGESIZE := 2048
27   SUBPAGESIZE := 512
28   BLOCKSIZE := 128KiB
29   FILESYSTEMS := squashfs
30   PROFILES := Generic DOCKSTAR
31   IMAGES := factory.bin sysupgrade.tar
32   IMAGE/factory.bin := append-ubi
33   IMAGE/sysupgrade.tar := sysupgrade-nand
34   KERNEL_IN_UBI := 1
35   KERNEL := kernel-bin | append-dtb
36 endef
37
38 define Device/linksys-audi
39   DEVICE_DTS := kirkwood-linksys-audi
40   PAGESIZE := 512
41   SUBPAGESIZE := 256
42   BLOCKSIZE := 16KiB
43   KERNEL_SIZE := 2624k
44   FILESYSTEMS := squashfs
45   PROFILES := Generic AUDI
46   IMAGES := factory.bin sysupgrade.tar
47   IMAGE/factory.bin := append-kernel $$$$(KERNEL_SIZE) | append-ubi
48   IMAGE/sysupgrade.tar := sysupgrade-nand
49 endef
50
51 define Device/linksys-viper
52   DEVICE_DTS := kirkwood-linksys-viper
53   PAGESIZE := 2048
54   SUBPAGESIZE := 512
55   BLOCKSIZE := 128KiB
56   KERNEL_SIZE := 2688k
57   FILESYSTEMS := squashfs
58   PROFILES := Generic VIPER
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 Build/append-dtb
65         cat $(DTS_DIR)/$(DEVICE_DTS).dtb >> $@
66 endef
67
68 define Image/BuildKernel/Template
69
70         $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
71         echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage
72         $(call Image/BuildKernel/MkuImage, \
73                 none, 0x8000, 0x8000, \
74                 $(BIN_DIR)/$(IMG_PREFIX)-zImage, \
75                 $(BIN_DIR)/$(IMG_PREFIX)-uImage \
76         )
77
78  ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
79         $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
80         echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
81         $(call Image/BuildKernel/MkuImage, \
82                 none, 0x8000, 0x8000, \
83                 $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
84                 $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
85         )
86  endif
87
88  ifneq ($(1),)
89         $(CP) $(DTS_DIR)/kirkwood-$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb
90
91         $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
92         cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
93         $(call Image/BuildKernel/MkuImage, \
94                 none, 0x8000, 0x8000, \
95                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage, \
96                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage \
97         )
98
99   ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
100         $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
101         cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
102         $(call Image/BuildKernel/MkuImage, \
103                 none, 0x8000, 0x8000, \
104                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs, \
105                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage-initramfs \
106         )
107   endif
108  endif
109 endef
110
111 define Image/InstallKernel/Template
112
113  ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL),)
114         $(INSTALL_DIR) $(TARGET_DIR)/boot
115    ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE),)
116         $(CP) $(BIN_DIR)/$(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/
117         ln -sf $(IMG_PREFIX)-uImage $(TARGET_DIR)/boot/uImage
118    endif
119    ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE),)
120         $(CP) $(BIN_DIR)/$(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/
121         ln -sf $(IMG_PREFIX)-zImage $(TARGET_DIR)/boot/zImage
122    endif
123  endif
124
125  ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB),)
126         $(INSTALL_DIR) $(TARGET_DIR)/boot
127   ifneq ($(1),)
128         $(CP) $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/
129         ln -sf $(IMG_PREFIX)-$(1).dtb $(TARGET_DIR)/boot/$(1).dtb
130   endif
131  endif
132 endef
133
134 define Image/Build/jffs2-nand-2048-128k
135         dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
136                 bs=2048 conv=sync
137 endef
138
139 define Image/Build/squashfs
140         $(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
141         ( \
142                 dd if=$(KDIR)/zImage bs=4096k conv=sync; \
143                 dd if=$(KDIR)/root.$(1) bs=128k conv=sync; \
144         ) > $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img
145 endef
146
147 define Image/Build/ubifs
148
149  ifneq ($($(PROFILE)_UBIFS_OPTS),)
150         $(CP) $(KDIR)/root.ubifs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-rootfs.ubifs
151  endif
152 endef
153
154 define Image/Build/ubi
155
156  ifneq ($($(PROFILE)_UBI_OPTS),)
157         $(CP) $(KDIR)/root.ubi $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-rootfs.ubi
158  endif
159 endef
160
161 Image/BuildKernel/Template/Generic=$(call Image/BuildKernel/Template)
162 Image/InstallKernel/Template/Generic=$(call Image/InstallKernel/Template)
163
164 Image/BuildKernel/Template/DOCKSTAR=$(call Image/BuildKernel/Template,dockstar)
165 Image/InstallKernel/Template/DOCKSTAR=$(call Image/InstallKernel/Template,dockstar)
166
167 Image/BuildKernel/Template/GOFLEXHOME=$(call Image/BuildKernel/Template,goflexhome)
168 Image/InstallKernel/Template/GOFLEXHOME=$(call Image/InstallKernel/Template,goflexhome)
169
170 Image/BuildKernel/Template/GOFLEXNET=$(call Image/BuildKernel/Template,goflexnet)
171 Image/InstallKernel/Template/GOFLEXNET=$(call Image/InstallKernel/Template,goflexnet)
172
173 Image/BuildKernel/Template/IB62X0=$(call Image/BuildKernel/Template,ib62x0)
174 Image/InstallKernel/Template/IB62X0=$(call Image/InstallKernel/Template,ib62x0)
175
176 Image/BuildKernel/Template/ICONNECT=$(call Image/BuildKernel/Template,iconnect)
177 Image/InstallKernel/Template/ICONNECT=$(call Image/InstallKernel/Template,iconnect)
178
179 Image/BuildKernel/Template/IOMEGA_IX2_200=$(call Image/BuildKernel/Template,iomega_ix2_200)
180 Image/InstallKernel/Template/IOMEGA_IX2_200=$(call Image/InstallKernel/Template,iomega_ix2_200)
181
182 Image/BuildKernel/Template/NSA310S=$(call Image/BuildKernel/Template,nsa310s)
183 Image/InstallKernel/Template/NSA310S=$(call Image/InstallKernel/Template,nsa310s)
184
185 Image/BuildKernel/Template/POGOE02=$(call Image/BuildKernel/Template,pogo_e02)
186 Image/InstallKernel/Template/POGOE02=$(call Image/InstallKernel/Template,pogo_e02)
187
188 Image/BuildKernel/Template/SHEEVAPLUG=$(call Image/BuildKernel/Template,sheevaplug)
189 Image/InstallKernel/Template/SHEEVAPLUG=$(call Image/InstallKernel/Template,sheevaplug)
190
191 Image/BuildKernel/Template/SHEEVAPLUGSATA=$(call Image/BuildKernel/Template,sheevaplug-esata)
192 Image/InstallKernel/Template/SHEEVAPLUGSATA=$(call Image/InstallKernel/Template,sheevaplug-esata)
193
194 Image/BuildKernel/Template/GuruplugServerPlus=$(call Image/BuildKernel/Template,guruplug-server-plus)
195 Image/InstallKernel/Template/GuruplugServerPlus=$(call Image/InstallKernel/Template,guruplug-server-plus)
196
197 Image/BuildKernel/Template/Topkick1281P2=$(call Image/BuildKernel/Template,topkick)
198 Image/InstallKernel/Template/Topkick1281P2=$(call Image/InstallKernel/Template,topkick)
199
200 define Image/BuildKernel
201         $(call Image/BuildKernel/Template/$(PROFILE))
202 endef
203
204 define Image/InstallKernel
205         $(call Image/InstallKernel/Template/$(PROFILE))
206 endef
207
208 define Image/Build
209         $(if $(Image/Build/$(1)), \
210                 $(call Image/Build/$(1),$(1)), \
211                 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
212         )
213 endef
214
215 $(eval $(call BuildImage))