2 # Copyright (C) 2009-2013 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 NAND_BLOCKSIZE
:= 2048-128k
10 include $(TOPDIR
)/rules.mk
11 include $(INCLUDE_DIR
)/image.mk
13 DEVICE_VARS
+= DEVICE_DTS KERNEL_SIZE PAGESIZE BLOCKSIZE SUBPAGESIZE
14 KERNEL_LOADADDR
:=0x8000
15 TARGET_DEVICES
= linksys-audi linksys-viper
18 KERNEL_DEPENDS
= $$(wildcard $(DTS_DIR
)/$$(DEVICE_DTS
).dts
)
19 KERNEL
:= kernel-bin | append-dtb | uImage none
23 define Device
/linksys-audi
24 DEVICE_DTS
:= kirkwood-linksys-audi
29 FILESYSTEMS
:= squashfs
30 PROFILES
:= Generic AUDI
31 IMAGES
:= factory.bin sysupgrade.
tar
32 IMAGE
/factory.bin
:= append-kernel
$$$$(KERNEL_SIZE
) | append-ubi
33 IMAGE
/sysupgrade.
tar := sysupgrade-nand
36 define Device
/linksys-viper
37 DEVICE_DTS
:= kirkwood-linksys-viper
42 FILESYSTEMS
:= squashfs
43 PROFILES
:= Generic VIPER
44 IMAGES
:= factory.bin sysupgrade.
tar
45 IMAGE
/factory.bin
:= append-kernel
$$$$(KERNEL_SIZE
) | append-ubi
46 IMAGE
/sysupgrade.
tar := sysupgrade-nand
49 define Build
/append-dtb
50 cat
$(DTS_DIR
)/$(DEVICE_DTS
).dtb
>> $@
53 define Image
/BuildKernel
/Template
55 $(CP
) $(KDIR
)/zImage
$(BIN_DIR
)/$(IMG_PREFIX
)-zImage
56 echo
-ne
'\x00\x00\x00\x00' >> $(BIN_DIR
)/$(IMG_PREFIX
)-zImage
57 $(call Image
/BuildKernel
/MkuImage
, \
58 none
, 0x8000, 0x8000, \
59 $(BIN_DIR
)/$(IMG_PREFIX
)-zImage
, \
60 $(BIN_DIR
)/$(IMG_PREFIX
)-uImage \
63 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),)
64 $(CP
) $(KDIR
)/zImage-initramfs
$(BIN_DIR
)/$(IMG_PREFIX
)-zImage-initramfs
65 echo
-ne
'\x00\x00\x00\x00' >> $(BIN_DIR
)/$(IMG_PREFIX
)-zImage-initramfs
66 $(call Image
/BuildKernel
/MkuImage
, \
67 none
, 0x8000, 0x8000, \
68 $(BIN_DIR
)/$(IMG_PREFIX
)-zImage-initramfs
, \
69 $(BIN_DIR
)/$(IMG_PREFIX
)-uImage-initramfs \
74 $(CP
) $(DTS_DIR
)/kirkwood-
$(1).dtb
$(BIN_DIR
)/$(IMG_PREFIX
)-$(1).dtb
76 $(CP
) $(KDIR
)/zImage
$(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-zImage
77 cat
$(BIN_DIR
)/$(IMG_PREFIX
)-$(1).dtb
>> $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-zImage
78 $(call Image
/BuildKernel
/MkuImage
, \
79 none
, 0x8000, 0x8000, \
80 $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-zImage
, \
81 $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-uImage \
84 ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),)
85 $(CP
) $(KDIR
)/zImage-initramfs
$(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-zImage-initramfs
86 cat
$(BIN_DIR
)/$(IMG_PREFIX
)-$(1).dtb
>> $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-zImage-initramfs
87 $(call Image
/BuildKernel
/MkuImage
, \
88 none
, 0x8000, 0x8000, \
89 $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-zImage-initramfs
, \
90 $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-uImage-initramfs \
96 define Image
/InstallKernel
/Template
98 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_KERNEL
),)
99 $(INSTALL_DIR
) $(TARGET_DIR
)/boot
100 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_UIMAGE
),)
101 $(CP
) $(BIN_DIR
)/$(IMG_PREFIX
)-uImage
$(TARGET_DIR
)/boot
/
102 ln
-sf
$(IMG_PREFIX
)-uImage
$(TARGET_DIR
)/boot
/uImage
104 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_ZIMAGE
),)
105 $(CP
) $(BIN_DIR
)/$(IMG_PREFIX
)-zImage
$(TARGET_DIR
)/boot
/
106 ln
-sf
$(IMG_PREFIX
)-zImage
$(TARGET_DIR
)/boot
/zImage
110 ifneq ($(CONFIG_TARGET_ROOTFS_INCLUDE_DTB
),)
111 $(INSTALL_DIR
) $(TARGET_DIR
)/boot
113 $(CP
) $(BIN_DIR
)/$(IMG_PREFIX
)-$(1).dtb
$(TARGET_DIR
)/boot
/
114 ln
-sf
$(IMG_PREFIX
)-$(1).dtb
$(TARGET_DIR
)/boot
/$(1).dtb
119 define Image
/Build
/jffs2-nand-2048-128k
120 dd if
=$(KDIR
)/root.
$(1) of
=$(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-$(1).img \
124 define Image
/Build
/squashfs
125 $(call prepare_generic_squashfs
,$(KDIR
)/root.squashfs
)
127 dd if
=$(KDIR
)/zImage bs
=4096k conv
=sync
; \
128 dd if
=$(KDIR
)/root.
$(1) bs
=128k conv
=sync
; \
129 ) > $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-$(1).img
132 define Image
/Build
/ubifs
134 ifneq ($($(PROFILE
)_UBIFS_OPTS
),)
135 $(CP
) $(KDIR
)/root.ubifs
$(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-rootfs.ubifs
139 define Image
/Build
/ubi
141 ifneq ($($(PROFILE
)_UBI_OPTS
),)
142 $(CP
) $(KDIR
)/root.ubi
$(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-rootfs.ubi
146 Image
/BuildKernel
/Template
/Generic
=$(call Image
/BuildKernel
/Template
)
147 Image
/InstallKernel
/Template
/Generic
=$(call Image
/InstallKernel
/Template
)
149 Image
/BuildKernel
/Template
/DOCKSTAR
=$(call Image
/BuildKernel
/Template
,dockstar
)
150 Image
/InstallKernel
/Template
/DOCKSTAR
=$(call Image
/InstallKernel
/Template
,dockstar
)
152 Image
/BuildKernel
/Template
/GOFLEXHOME
=$(call Image
/BuildKernel
/Template
,goflexhome
)
153 Image
/InstallKernel
/Template
/GOFLEXHOME
=$(call Image
/InstallKernel
/Template
,goflexhome
)
155 Image
/BuildKernel
/Template
/GOFLEXNET
=$(call Image
/BuildKernel
/Template
,goflexnet
)
156 Image
/InstallKernel
/Template
/GOFLEXNET
=$(call Image
/InstallKernel
/Template
,goflexnet
)
158 Image
/BuildKernel
/Template
/IB62X0
=$(call Image
/BuildKernel
/Template
,ib62x0
)
159 Image
/InstallKernel
/Template
/IB62X0
=$(call Image
/InstallKernel
/Template
,ib62x0
)
161 Image
/BuildKernel
/Template
/ICONNECT
=$(call Image
/BuildKernel
/Template
,iconnect
)
162 Image
/InstallKernel
/Template
/ICONNECT
=$(call Image
/InstallKernel
/Template
,iconnect
)
164 Image
/BuildKernel
/Template
/IOMEGA_IX2_200
=$(call Image
/BuildKernel
/Template
,iomega_ix2_200
)
165 Image
/InstallKernel
/Template
/IOMEGA_IX2_200
=$(call Image
/InstallKernel
/Template
,iomega_ix2_200
)
167 Image
/BuildKernel
/Template
/NSA310S
=$(call Image
/BuildKernel
/Template
,nsa310s
)
168 Image
/InstallKernel
/Template
/NSA310S
=$(call Image
/InstallKernel
/Template
,nsa310s
)
170 Image
/BuildKernel
/Template
/POGOE02
=$(call Image
/BuildKernel
/Template
,pogo_e02
)
171 Image
/InstallKernel
/Template
/POGOE02
=$(call Image
/InstallKernel
/Template
,pogo_e02
)
173 Image
/BuildKernel
/Template
/SHEEVAPLUG
=$(call Image
/BuildKernel
/Template
,sheevaplug
)
174 Image
/InstallKernel
/Template
/SHEEVAPLUG
=$(call Image
/InstallKernel
/Template
,sheevaplug
)
176 Image
/BuildKernel
/Template
/SHEEVAPLUGSATA
=$(call Image
/BuildKernel
/Template
,sheevaplug-esata
)
177 Image
/InstallKernel
/Template
/SHEEVAPLUGSATA
=$(call Image
/InstallKernel
/Template
,sheevaplug-esata
)
179 Image
/BuildKernel
/Template
/GuruplugServerPlus
=$(call Image
/BuildKernel
/Template
,guruplug-server-plus
)
180 Image
/InstallKernel
/Template
/GuruplugServerPlus
=$(call Image
/InstallKernel
/Template
,guruplug-server-plus
)
182 Image
/BuildKernel
/Template
/Topkick1281P2
=$(call Image
/BuildKernel
/Template
,topkick
)
183 Image
/InstallKernel
/Template
/Topkick1281P2
=$(call Image
/InstallKernel
/Template
,topkick
)
185 define Image
/BuildKernel
186 $(call Image
/BuildKernel
/Template
/$(PROFILE
))
189 define Image
/InstallKernel
190 $(call Image
/InstallKernel
/Template
/$(PROFILE
))
194 $(if
$(Image
/Build
/$(1)), \
195 $(call Image
/Build
/$(1),$(1)), \
196 $(CP
) $(KDIR
)/root.
$(1) $(BIN_DIR
)/$(IMG_PREFIX
)-$(PROFILE_SANITIZED
)-$(1).img \
200 $(eval
$(call BuildImage
))