kirkwood: convert iconnect, ib62x0 and pogoplug_e02 to the new image build code
[oweals/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 KERNEL_LOADADDR:=0x8000
14 TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0
15
16 UBI_OPTS := -m 2048 -p 128KiB -s 512
17 UBIFS_OPTS := -m 2048 -e 126KiB -c 4096
18
19 define Device/Default
20   KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
21   KERNEL := kernel-bin | append-dtb | uImage none
22   KERNEL_NAME := zImage
23   KERNEL_SUFFIX  := -uImage
24   KERNEL_INSTALL := 1
25
26   PAGESIZE := 2048
27   SUBPAGESIZE := 512
28   BLOCKSIZE := 128k
29   IMAGES := sysupgrade.tar
30   UBINIZE_OPTS := -E 5
31   IMAGE/sysupgrade.tar := sysupgrade-tar
32 endef
33
34 define Device/dockstar
35   DEVICE_DTS := kirkwood-dockstar
36   FILESYSTEMS := squashfs
37   PROFILES := Generic DOCKSTAR
38   IMAGES += factory.bin
39   IMAGE/factory.bin := append-ubi
40   KERNEL_IN_UBI := 1
41 endef
42
43 define Device/goflexnet
44 $(Device/dockstar)
45   PROFILES := Generic GOFLEXNET
46   DEVICE_DTS := kirkwood-goflexnet
47 endef
48
49 define Device/goflexhome
50 $(Device/dockstar)
51   PROFILES := Generic GOFLEXHOME
52   DEVICE_DTS := kirkwood-goflexhome
53 endef
54
55 define Device/linksys-audi
56   DEVICE_DTS := kirkwood-linksys-audi
57   KERNEL_SIZE := 2624k
58   FILESYSTEMS := squashfs
59   PROFILES := Generic AUDI
60   IMAGES += factory.bin
61   IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
62 endef
63
64 define Device/linksys-viper
65   DEVICE_DTS := kirkwood-linksys-viper
66   KERNEL_SIZE := 2688k
67   FILESYSTEMS := squashfs
68   PROFILES := Generic VIPER
69   IMAGES += factory.bin
70   IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi
71 endef
72
73 define Device/iconnect
74 $(Device/dockstar)
75   PROFILES := Generic ICONNECT
76   DEVICE_DTS := kirkwood-iconnect
77 endef
78
79 define Device/pogo_e02
80 $(Device/dockstar)
81   PROFILES := Generic POGOE02
82   DEVICE_DTS := kirkwood-pogo_e02
83 endef
84
85 define Device/ib62x0
86 $(Device/dockstar)
87   PROFILES := Generic IB62X0
88   DEVICE_DTS := kirkwood-ib62x0
89 endef
90
91 define Image/BuildKernel/Template
92
93         $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage
94         echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage
95         $(call Image/BuildKernel/MkuImage, \
96                 none, 0x8000, 0x8000, \
97                 $(BIN_DIR)/$(IMG_PREFIX)-zImage, \
98                 $(BIN_DIR)/$(IMG_PREFIX)-uImage \
99         )
100
101  ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
102         $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
103         echo -ne '\x00\x00\x00\x00' >> $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs
104         $(call Image/BuildKernel/MkuImage, \
105                 none, 0x8000, 0x8000, \
106                 $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs, \
107                 $(BIN_DIR)/$(IMG_PREFIX)-uImage-initramfs \
108         )
109  endif
110
111  ifneq ($(1),)
112         $(CP) $(DTS_DIR)/kirkwood-$(1).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb
113
114         $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
115         cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage
116         $(call Image/BuildKernel/MkuImage, \
117                 none, 0x8000, 0x8000, \
118                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage, \
119                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage \
120         )
121
122   ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
123         $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
124         cat $(BIN_DIR)/$(IMG_PREFIX)-$(1).dtb >> $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs
125         $(call Image/BuildKernel/MkuImage, \
126                 none, 0x8000, 0x8000, \
127                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-zImage-initramfs, \
128                 $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-uImage-initramfs \
129         )
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 IOMEGA_IX2_200_UBIFS_OPTS := -m 512 -e 15872 -c 2048
162 IOMEGA_IX2_200_UBI_OPTS := -m 512 -p 16384 -s 256
163
164 Image/BuildKernel/Template/Generic=$(call Image/BuildKernel/Template)
165 Image/BuildKernel/Template/IOMEGA_IX2_200=$(call Image/BuildKernel/Template,iomega_ix2_200)
166 Image/BuildKernel/Template/NSA310S=$(call Image/BuildKernel/Template,nsa310s)
167 Image/BuildKernel/Template/SHEEVAPLUG=$(call Image/BuildKernel/Template,sheevaplug)
168 Image/BuildKernel/Template/SHEEVAPLUGSATA=$(call Image/BuildKernel/Template,sheevaplug-esata)
169 Image/BuildKernel/Template/GuruplugServerPlus=$(call Image/BuildKernel/Template,guruplug-server-plus)
170 Image/BuildKernel/Template/Topkick1281P2=$(call Image/BuildKernel/Template,topkick)
171
172 define Image/BuildKernel
173         $(call Image/BuildKernel/Template/$(PROFILE))
174 endef
175
176 define Image/InstallKernel
177         $(call Image/InstallKernel/Template/$(PROFILE))
178 endef
179
180 define Image/Build
181         $(if $(Image/Build/$(1)), \
182                 $(call Image/Build/$(1),$(1)), \
183                 $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(PROFILE_SANITIZED)-$(1).img \
184         )
185 endef
186
187 $(eval $(call BuildImage))