package/network/utils/iptables: fix PKG_CPE_ID
[openwrt/openwrt.git] / target / linux / ramips / image / Makefile
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Copyright (C) 2008-2011 OpenWrt.org
4
5 include $(TOPDIR)/rules.mk
6 include $(INCLUDE_DIR)/image.mk
7
8 DEVICE_VARS += LOADER_TYPE LOADER_FLASH_OFFS LZMA_TEXT_START
9 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
10 DEVICE_VARS += NETGEAR_ENC_MODEL NETGEAR_ENC_REGION NETGEAR_ENC_HW_ID_LIST NETGEAR_ENC_MODEL_LIST
11 DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR
12 DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
13 DEVICE_VARS += SERCOMM_HWNAME SERCOMM_HWID SERCOMM_HWVER SERCOMM_SWVER
14 DEVICE_VARS += SERCOMM_PAD JCG_MAXSIZE
15
16 loadaddr-y := 0x80000000
17 loadaddr-$(CONFIG_TARGET_ramips_rt288x) := 0x88000000
18 loadaddr-$(CONFIG_TARGET_ramips_mt7621) := 0x80001000
19
20 ldrplatform-y := ralink
21 ldrplatform-$(CONFIG_TARGET_ramips_mt7621) := mt7621
22
23 ldrflashstart-y := 0x1c000000
24 ldrflashstart-$(CONFIG_TARGET_ramips_mt7621) := 0x1fc00000
25
26 LOADADDR := $(loadaddr-y)
27 LOADER_PLATFORM := $(ldrplatform-y)
28 LOADER_FLASH_START := $(ldrflashstart-y)
29
30 KERNEL_DTB = kernel-bin | append-dtb | lzma
31
32 define Build/jcg-header
33 $(STAGING_DIR_HOST)/bin/jcgimage -v $(1) \
34 $(if $(JCG_MAXSIZE), -m $$(($(call exp_units,$(JCG_MAXSIZE)))),) \
35 -u $@ -o $@.new
36 mv $@.new $@
37 endef
38
39 define Build/loader-common
40 rm -rf $@.src
41 $(MAKE) -C lzma-loader \
42 PKG_BUILD_DIR="$@.src" \
43 TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
44 BOARD="$(BOARDNAME)" PLATFORM="$(LOADER_PLATFORM)" \
45 LZMA_TEXT_START=$(LZMA_TEXT_START) \
46 LOADADDR=$(LOADADDR) \
47 SUBTARGET=$(SUBTARGET) \
48 $(1) compile loader.$(LOADER_TYPE)
49 mv "$@.$(LOADER_TYPE)" "$@"
50 rm -rf $@.src
51 endef
52
53 define Build/loader-kernel
54 $(call Build/loader-common,LOADER_DATA="$@")
55 endef
56
57 define Build/loader-okli-compile
58 $(call Build/loader-common, \
59 FLASH_START=$(LOADER_FLASH_START) \
60 FLASH_OFFS=$(LOADER_FLASH_OFFS) \
61 FLASH_MAX=0 \
62 )
63 endef
64
65 define Build/append-loader-okli
66 cat "$(KDIR)/loader-$(word 1,$(1)).$(LOADER_TYPE)" >> "$@"
67 endef
68
69 # combine kernel and rootfs into one image
70 # mkdlinkfw <type> <optional extra arguments to mkdlinkfw binary>
71 define Build/mkdlinkfw
72 -$(STAGING_DIR_HOST)/bin/mkdlinkfw \
73 -k $(IMAGE_KERNEL) \
74 -r $(IMAGE_ROOTFS) \
75 -o $@ \
76 $(if $(DLINK_IMAGE_OFFSET), -O $(DLINK_IMAGE_OFFSET)) \
77 -s $(DLINK_FIRMWARE_SIZE)
78 endef
79
80 define Build/mkdlinkfw-factory
81 -$(STAGING_DIR_HOST)/bin/mkdlinkfw \
82 -m $(DLINK_ROM_ID) -f $(DLINK_FAMILY_MEMBER) \
83 -F $@ \
84 -o $@.new \
85 $(if $(DLINK_IMAGE_OFFSET), -O $(DLINK_IMAGE_OFFSET)) \
86 -s $(DLINK_FIRMWARE_SIZE)
87 mv $@.new $@
88 endef
89
90 define Build/mkdlinkfw-loader
91 -$(STAGING_DIR_HOST)/bin/mkdlinkfw \
92 -k $(KDIR)/loader-$(DEVICE_NAME).bin \
93 -r $@ \
94 -o $@.new \
95 $(if $(DLINK_IMAGE_OFFSET), -O $(DLINK_IMAGE_OFFSET)) \
96 -s $(DLINK_FIRMWARE_SIZE)
97 mv $@.new $@
98 endef
99
100 define Build/netis-tail
101 echo -n $(1) >> $@
102 echo -n $(UIMAGE_NAME)-yun | $(MKHASH) md5 | \
103 sed 's/../\\\\x&/g' | xargs echo -ne >> $@
104 endef
105
106 define Build/poray-header
107 $(STAGING_DIR_HOST)/bin/mkporayfw $(1) -f $@ -o $@.new
108 mv $@.new $@
109 endef
110
111 define Build/relocate-kernel
112 rm -rf $@.relocate
113 $(CP) ../../generic/image/relocate $@.relocate
114 $(MAKE) -C $@.relocate KERNEL_ADDR=$(if $(1),$(1),$(KERNEL_LOADADDR)) CROSS_COMPILE=$(TARGET_CROSS)
115 ( \
116 dd if=$@.relocate/loader.bin bs=32 conv=sync && \
117 perl -e '@s = stat("$@"); print pack("V", @s[7])' && \
118 cat $@ \
119 ) > $@.new
120 mv $@.new $@
121 rm -rf $@.relocate
122 endef
123
124 define Build/sercom-footer
125 $(call Build/sercom-seal,-f)
126 endef
127
128 define Build/sercom-seal
129 $(STAGING_DIR_HOST)/bin/mksercommfw \
130 -i $@ \
131 -b $(SERCOMM_HWID) \
132 -r $(SERCOMM_HWVER) \
133 -v $(SERCOMM_SWVER) \
134 $(1)
135 endef
136
137 define Build/sign-dlink-ru
138 sign_dlink_ru $@ $1 $2
139 mv $@.new $@
140 endef
141
142 define Build/trx
143 $(STAGING_DIR_HOST)/bin/trx $(1) \
144 -o $@ \
145 -m $$(($(call exp_units,$(IMAGE_SIZE)))) \
146 -f $(IMAGE_KERNEL) \
147 -a 4 -f $(IMAGE_ROOTFS)
148 endef
149
150 define Build/uimage-padhdr
151 uimage_padhdr $(if $(1),-l $(1)) -i $@ -o $@.new
152 mv $@.new $@
153 endef
154
155 define Build/uimage-sgehdr
156 uimage_sgehdr -i $@ -o $@.new -m $(DEVICE_MODEL) \
157 -h $(DEVICE_VARIANT) -s V1.00000
158 mv $@.new $@
159 endef
160
161 define Build/umedia-header
162 fix-u-media-header -T 0x46 -B $(1) -i $@ -o $@.new && mv $@.new $@
163 endef
164
165 define Build/wrg-header
166 mkwrgimg -i $@ -d "/dev/mtdblock/2" -s $(1) -o $@.new
167 mv $@.new $@
168 endef
169
170 define Build/zyimage
171 $(STAGING_DIR_HOST)/bin/zyimage $(1) $@
172 endef
173
174 define Device/Default
175 PROFILES = Default
176 BLOCKSIZE := 64k
177 KERNEL := $(KERNEL_DTB) | uImage lzma
178 KERNEL_LOADADDR := $(loadaddr-y)
179 LZMA_TEXT_START := 0x81800000
180 SOC := $(DEFAULT_SOC)
181 DEVICE_DTS_DIR := ../dts
182 DEVICE_DTS = $$(SOC)_$(1)
183 NETGEAR_ENC_MODEL :=
184 NETGEAR_ENC_REGION :=
185 NETGEAR_ENC_HW_ID_LIST :=
186 NETGEAR_ENC_MODEL_LIST :=
187 IMAGES := sysupgrade.bin
188 COMPILE :=
189 sysupgrade_bin := append-kernel | append-rootfs | pad-rootfs
190 IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | check-size | append-metadata
191 endef
192
193 define Device/netgear_sercomm_nor
194 DEVICE_VENDOR := NETGEAR
195 IMAGES += factory.img
196 IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
197 pad-rootfs
198 IMAGE/sysupgrade.bin := $$(IMAGE/default) | check-size | append-metadata
199 IMAGE/factory.img := pad-extra $$$$(SERCOMM_PAD) | $$(IMAGE/default) | \
200 pad-to $$$$(BLOCKSIZE) | sercom-footer | pad-to 128 | \
201 zip $$$$(SERCOMM_HWNAME).bin | sercom-seal
202 endef
203
204 define Device/seama
205 SEAMA_MTDBLOCK := 2
206 IMAGES += factory.bin
207
208 # 64 bytes offset:
209 # - 28 bytes seama_header
210 # - 36 bytes of META data (4-bytes aligned)
211 IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
212 IMAGE/sysupgrade.bin := \
213 $$(IMAGE/default) | seama | pad-rootfs | check-size | append-metadata
214 IMAGE/factory.bin := \
215 $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | check-size
216 SEAMA_SIGNATURE :=
217 endef
218
219 define Device/uimage-lzma-loader
220 LOADER_TYPE := bin
221 KERNEL/lzma-loader := kernel-bin | append-dtb | lzma | loader-kernel
222 KERNEL := $$(KERNEL/lzma-loader) | uImage none
223 endef
224
225 define Device/seama-lzma-loader
226 $(Device/seama)
227 $(Device/uimage-lzma-loader)
228 KERNEL := $$(KERNEL/lzma-loader) | relocate-kernel | lzma -a0
229 KERNEL_INITRAMFS := $$(KERNEL/lzma-loader) | uImage none
230 endef
231
232 include $(SUBTARGET).mk
233
234 $(eval $(call BuildImage))