OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 5... | Line 5... | |||
5 | # See /LICENSE for more information. |
5 | # See /LICENSE for more information. |
|
6 | # |
6 | # |
|
7 | include $(TOPDIR)/rules.mk |
7 | include $(TOPDIR)/rules.mk |
|
8 | include $(INCLUDE_DIR)/image.mk |
8 | include $(INCLUDE_DIR)/image.mk |
|
Line -... | Line 9... | |||
- | 9 | |
||
- | 10 | define imgname |
||
- | 11 | $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1) |
||
- | 12 | endef |
||
- | 13 | |
||
- | 14 | define sysupname |
||
- | 15 | $(call imgname,$(1),$(2))-sysupgrade.bin |
||
- | 16 | endef |
||
- | 17 | |
||
- | 18 | VMLINUX:=$(IMG_PREFIX)-vmlinux |
||
- | 19 | UIMAGE:=$(IMG_PREFIX)-uImage |
||
- | 20 | |
||
- | 21 | define Image/Build/Initramfs |
||
- | 22 | $(call Image/Build/Profile/$(PROFILE),initramfs) |
||
- | 23 | endef |
||
9 | |
24 | |
|
10 | DEVICE_VARS += DTS IMAGE_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID |
25 | DEVICE_VARS += DTS IMAGE_SIZE NETGEAR_BOARD_ID NETGEAR_HW_ID |
|
11 | DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR |
- | ||
Line 12... | Line 26... | |||
12 | DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK |
26 | DEVICE_VARS += BUFFALO_TAG_PLATFORM BUFFALO_TAG_VERSION BUFFALO_TAG_MINOR |
|
13 | |
27 | |
|
14 | loadaddr-y := 0x80000000 |
28 | loadaddr-y := 0x80000000 |
|
Line 15... | Line 29... | |||
15 | loadaddr-$(CONFIG_TARGET_ramips_rt288x) := 0x88000000 |
29 | loadaddr-$(CONFIG_TARGET_ramips_rt288x) := 0x88000000 |
|
Line 16... | Line 30... | |||
16 | loadaddr-$(CONFIG_TARGET_ramips_mt7621) := 0x80001000 |
30 | loadaddr-$(CONFIG_TARGET_ramips_mt7621) := 0x80001000 |
|
17 | |
31 | |
|
18 | KERNEL_LOADADDR := $(loadaddr-y) |
32 | KERNEL_LOADADDR := $(loadaddr-y) |
|
19 | |
33 | |
|
20 | KERNEL_DTB = kernel-bin | patch-dtb | lzma |
34 | KERNEL_DTB = kernel-bin | patch-dtb | lzma -d21 |
|
21 | define Device/Default |
35 | define Device/Default |
|
Line 28... | Line 42... | |||
28 | SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) |
42 | SUPPORTED_DEVICES := $(subst _,$(comma),$(1)) |
|
29 | sysupgrade_bin := append-kernel | append-rootfs | pad-rootfs |
43 | sysupgrade_bin := append-kernel | append-rootfs | pad-rootfs |
|
30 | IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) |
44 | IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) |
|
31 | endef |
45 | endef |
|
Line 32... | Line -... | |||
32 | |
- | ||
33 | define Device/seama |
- | ||
34 | SEAMA_MTDBLOCK := 2 |
- | ||
35 | IMAGES += factory.bin |
- | ||
36 | |
- | ||
37 | # 64 bytes offset: |
- | ||
38 | # - 28 bytes seama_header |
- | ||
39 | # - 36 bytes of META data (4-bytes aligned) |
- | ||
40 | IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs |
- | ||
41 | IMAGE/sysupgrade.bin := \ |
- | ||
42 | $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) |
- | ||
43 | IMAGE/factory.bin := \ |
- | ||
44 | $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | check-size $$$$(IMAGE_SIZE) |
- | ||
45 | SEAMA_SIGNATURE := |
- | ||
46 | endef |
- | ||
47 | |
46 | |
|
48 | define Build/patch-dtb |
47 | define Build/patch-dtb |
|
49 | $(call Image/BuildDTB,../dts/$(DTS).dts,$@.dtb) |
48 | $(call Image/BuildDTB,../dts/$(DTS).dts,$@.dtb) |
|
50 | $(STAGING_DIR_HOST)/bin/patch-dtb $@ $@.dtb |
49 | $(STAGING_DIR_HOST)/bin/patch-dtb $@ $@.dtb |
|
Line 73... | Line 72... | |||
73 | define Build/loader-kernel |
72 | define Build/loader-kernel |
|
74 | $(call Build/loader-common,LOADER_DATA="$@") |
73 | $(call Build/loader-common,LOADER_DATA="$@") |
|
75 | endef |
74 | endef |
|
Line 76... | Line 75... | |||
76 | |
75 | |
|
77 | define Build/relocate-kernel |
- | ||
78 | rm -rf $@.relocate |
- | ||
79 | $(CP) ../../generic/image/relocate $@.relocate |
- | ||
80 | $(MAKE) -C $@.relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS) |
76 | define Build/relocate-kernel |
|
81 | ( \ |
77 | ( \ |
|
82 | dd if=$@.relocate/loader.bin bs=32 conv=sync && \ |
78 | dd if=$(KDIR)/loader.bin bs=32 conv=sync && \ |
|
83 | perl -e '@s = stat("$@"); print pack("V", @s[7])' && \ |
79 | perl -e '@s = stat("$@"); print pack("V", @s[7])' && \ |
|
84 | cat $@ \ |
80 | cat $@ \ |
|
85 | ) > $@.new |
81 | ) > $@.new |
|
- | 82 | mv $@.new $@ |
||
- | 83 | endef |
||
86 | mv $@.new $@ |
84 | |
|
- | 85 | define MkCombineduImage |
||
- | 86 | $(call PatchKernelLzma,$(2),$(3)) |
||
- | 87 | if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt `expr $(4) - 64` ]; then \ |
||
- | 88 | echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big" >&2; \ |
||
- | 89 | else if [ `stat -c%s "$(KDIR)/root.$(1)"` -gt $(5) ]; then \ |
||
- | 90 | echo "Warning: $(KDIR)/root.$(1) is too big" >&2; \ |
||
- | 91 | else \ |
||
- | 92 | ( dd if=$(KDIR)/vmlinux-$(2).bin.lzma bs=`expr $(4) - 64` conv=sync ; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/vmlinux-$(2).bin.lzma.combined ; \ |
||
- | 93 | fi ; fi |
||
87 | rm -rf $@.relocate |
94 | $(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma.combined,$(call sysupname,$(1),$(2)),$(6)) |
|
Line 88... | Line 95... | |||
88 | endef |
95 | endef |
|
89 | |
96 | |
|
90 | define Build/umedia-header |
97 | define Build/umedia-header |
|
Line 99... | Line 106... | |||
99 | define Build/poray-header |
106 | define Build/poray-header |
|
100 | $(STAGING_DIR_HOST)/bin/mkporayfw $(1) -f $@ -o $@.new |
107 | $(STAGING_DIR_HOST)/bin/mkporayfw $(1) -f $@ -o $@.new |
|
101 | mv $@.new $@ |
108 | mv $@.new $@ |
|
102 | endef |
109 | endef |
|
Line -... | Line 110... | |||
- | 110 | |
||
- | 111 | define Build/senao-header |
||
- | 112 | $(STAGING_DIR_HOST)/bin/mksenaofw $(1) -e $@ -o $@.new |
||
- | 113 | mv $@.new $@ |
||
- | 114 | endef |
||
- | 115 | |
||
- | 116 | define Build/seama |
||
- | 117 | $(STAGING_DIR_HOST)/bin/seama -i $@ $(1) |
||
- | 118 | mv $@.seama $@ |
||
- | 119 | endef |
||
- | 120 | |
||
- | 121 | define Build/seama-seal |
||
- | 122 | $(call Build/seama,-s $@.seama $(1)) |
||
- | 123 | endef |
||
103 | |
124 | |
|
104 | define Build/wrg-header |
125 | define Build/wrg-header |
|
105 | mkwrgimg -i $@ -d "/dev/mtdblock/2" -s $(1) -o $@.new |
126 | mkwrgimg -i $@ -d "/dev/mtdblock/2" -s $(1) -o $@.new |
|
106 | mv $@.new $@ |
127 | mv $@.new $@ |
|
Line 124... | Line 145... | |||
124 | -o $@.new \ |
145 | -o $@.new \ |
|
125 | -s $(DLINK_FIRMWARE_SIZE) |
146 | -s $(DLINK_FIRMWARE_SIZE) |
|
126 | mv $@.new $@ |
147 | mv $@.new $@ |
|
127 | endef |
148 | endef |
|
Line -... | Line 149... | |||
- | 149 | |
||
- | 150 | # |
||
- | 151 | # The real magic happens inside these templates |
||
- | 152 | # |
||
- | 153 | # $(1), compression method |
||
- | 154 | # $(2), filename of image data |
||
128 | |
155 | # $(3), output filename |
|
- | 156 | define MkImage |
||
- | 157 | $(eval imagename=$(if $(4),$(4),MIPS $(VERSION_DIST) Linux-$(LINUX_VERSION))) |
||
- | 158 | -mkimage -A mips -O linux -T kernel -C $(1) -a $(loadaddr-y) -e $(loadaddr-y) \ |
||
- | 159 | -n "$(imagename)" \ |
||
- | 160 | -d $(2) $(3) |
||
- | 161 | endef |
||
- | 162 | |
||
129 | define Build/zyimage |
163 | define CompressLzma |
|
- | 164 | $(STAGING_DIR_HOST)/bin/lzma e $(1) -lc1 -lp2 -pb2 $(2) |
||
- | 165 | endef |
||
- | 166 | |
||
- | 167 | define MkImageSysupgrade/squashfs |
||
- | 168 | $(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade).bin) |
||
- | 169 | cat $(KDIR)/vmlinux-$(2).uImage $(KDIR)/root.$(1) > $(KDIR)/$(output_name) |
||
- | 170 | $(call prepare_generic_squashfs,$(KDIR)/$(output_name)) |
||
- | 171 | if [ `stat -c%s "$(KDIR)/$(output_name)"` -gt $(3) ]; then \ |
||
- | 172 | echo "Warning: $(KDIR)/$(output_name) is too big" >&2; \ |
||
- | 173 | else \ |
||
- | 174 | $(CP) $(KDIR)/$(output_name) $(BIN_DIR)/$(output_name); \ |
||
- | 175 | fi |
||
- | 176 | endef |
||
- | 177 | |
||
- | 178 | # $(1), lowercase board name like "mt7620a_v22sg" |
||
- | 179 | # $(2), DTS filename without .dts extension |
||
- | 180 | # $(3), optional filename suffix, e.g. "-initramfs" |
||
- | 181 | define PatchKernelLzmaDtb |
||
- | 182 | cp $(KDIR)/vmlinux$(3) $(KDIR)/vmlinux-$(1)$(3) |
||
- | 183 | $(call Image/BuildDTB,../dts/$(2).dts,$(KDIR)/$(2).dtb) |
||
- | 184 | $(STAGING_DIR_HOST)/bin/patch-dtb $(KDIR)/vmlinux-$(1)$(3) $(KDIR)/$(2).dtb |
||
- | 185 | $(call CompressLzma,$(KDIR)/vmlinux-$(1)$(3),$(KDIR)/vmlinux-$(1)$(3).bin.lzma) |
||
- | 186 | endef |
||
- | 187 | |
||
- | 188 | # $(1), lowercase board name |
||
- | 189 | # $(2), DTS filename without .dts extension |
||
- | 190 | # $(3), ih_name field of uImage header |
||
- | 191 | # $(4), optional filename suffix, e.g. "-initramfs" |
||
- | 192 | define MkImageLzmaDtb |
||
- | 193 | $(call PatchKernelLzmaDtb,$(1),$(2),$(4)) |
||
- | 194 | $(call MkImage,lzma,$(KDIR)/vmlinux-$(1)$(4).bin.lzma,$(KDIR)/vmlinux-$(1)$(4).uImage,$(3)) |
||
- | 195 | endef |
||
- | 196 | |
||
- | 197 | # $(1), Rootfs type, e.g. squashfs |
||
- | 198 | # $(2), lowercase board name |
||
- | 199 | # $(3), DTS filename without .dts extension |
||
- | 200 | # $(4), maximum size of sysupgrade image |
||
- | 201 | # $(5), uImage header's ih_name field |
||
- | 202 | define BuildFirmware/OF |
||
- | 203 | $(call MkImageLzmaDtb,$(2),$(3),$(5)) |
||
- | 204 | $(call MkImageSysupgrade/$(1),$(1),$(2),$(4),$(6)) |
||
- | 205 | endef |
||
- | 206 | |
||
- | 207 | # $(1), squashfs/initramfs |
||
- | 208 | # $(2), lowercase board name |
||
- | 209 | # $(3), DTS filename without .dts extension |
||
- | 210 | # $(4), ih_name field of uImage header |
||
- | 211 | define BuildFirmware/OF/initramfs |
||
- | 212 | $(call MkImageLzmaDtb,$(2),$(3),$(4),-initramfs) |
||
130 | $(STAGING_DIR_HOST)/bin/zyimage $(1) $@ |
213 | $(CP) $(KDIR)/vmlinux-$(2)-initramfs.uImage $(call imgname,$(1),$(2))-uImage.bin |
|
131 | endef |
214 | endef |
|
- | 215 | |
||
- | 216 | # Build images for default ralink layout for 4MB flash |
||
- | 217 | # kernel + roots = 0x3b0000 |
||
- | 218 | # $(1) = squashfs/initramfs |
||
- | 219 | # $(2) = lowercase board name |
||
132 | |
220 | # $(3) = dts file |
|
- | 221 | ralink_default_fw_size_4M=3866624 |
||
- | 222 | BuildFirmware/Default4M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_4M),$(4)) |
||
- | 223 | BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) |
||
133 | ralink_default_fw_size_4M=3866624 |
224 | |
|
134 | ralink_default_fw_size_8M=8060928 |
225 | ralink_default_fw_size_8M=8060928 |
|
135 | ralink_default_fw_size_16M=16121856 |
226 | ralink_default_fw_size_16M=16121856 |
|
Line -... | Line 227... | |||
- | 227 | ralink_default_fw_size_32M=33226752 |
||
136 | ralink_default_fw_size_32M=33226752 |
228 | |
|
137 | |
229 | |
|
138 | ifeq ($(SUBTARGET),rt288x) |
230 | ifeq ($(SUBTARGET),rt288x) |
|
Line 139... | Line 231... | |||
139 | include rt288x.mk |
231 | include rt288x.mk |
|
140 | endif |
232 | endif |
|
- | 233 | |
||
141 | |
234 | ifeq ($(SUBTARGET),rt305x) |
|
Line 142... | Line 235... | |||
142 | ifeq ($(SUBTARGET),rt305x) |
235 | include rt305x.mk |
|
143 | include rt305x.mk |
236 | include rt305x-legacy.mk |
|
144 | endif |
237 | endif |
|
Line 157... | Line 250... | |||
157 | |
250 | |
|
158 | ifeq ($(SUBTARGET),mt76x8) |
251 | ifeq ($(SUBTARGET),mt76x8) |
|
159 | include mt76x8.mk |
252 | include mt76x8.mk |
|
Line -... | Line 253... | |||
- | 253 | endif |
||
- | 254 | |
||
- | 255 | ifdef LEGACY_DEVICES |
||
- | 256 | # |
||
- | 257 | # Generic Targets - only needed for legacy image building code |
||
- | 258 | # |
||
- | 259 | define Image/BuildKernel |
||
- | 260 | cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(VMLINUX).elf |
||
- | 261 | cp $(KDIR)/vmlinux $(BIN_DIR)/$(VMLINUX).bin |
||
- | 262 | $(call CompressLzma,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.lzma) |
||
- | 263 | $(call MkImage,lzma,$(KDIR)/vmlinux.bin.lzma,$(KDIR)/uImage.lzma) |
||
- | 264 | cp $(KDIR)/uImage.lzma $(BIN_DIR)/$(UIMAGE).bin |
||
- | 265 | endef |
||
- | 266 | |
||
- | 267 | define Image/BuildKernel/Initramfs |
||
- | 268 | cp $(KDIR)/vmlinux-initramfs.elf $(BIN_DIR)/$(VMLINUX)-initramfs.elf |
||
- | 269 | cp $(KDIR)/vmlinux-initramfs $(BIN_DIR)/$(VMLINUX)-initramfs.bin |
||
- | 270 | $(call CompressLzma,$(KDIR)/vmlinux-initramfs,$(KDIR)/vmlinux-initramfs.bin.lzma) |
||
- | 271 | $(call MkImage,lzma,$(KDIR)/vmlinux-initramfs.bin.lzma,$(KDIR)/uImage-initramfs.lzma) |
||
- | 272 | cp $(KDIR)/uImage-initramfs.lzma $(BIN_DIR)/$(UIMAGE)-initramfs.bin |
||
- | 273 | $(call Image/Build/Initramfs) |
||
- | 274 | endef |
||
- | 275 | |
||
- | 276 | define Image/Build |
||
- | 277 | $(call Image/Build/$(1)) |
||
- | 278 | dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync |
||
- | 279 | endef |
||
- | 280 | |
||
- | 281 | define Image/Build/Profile |
||
- | 282 | $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),$(call Image/Build/Profile/$(1),initramfs)) |
||
- | 283 | $(call Image/Build/Profile/$(1),$(2)) |
||
- | 284 | endef |
||
- | 285 | |
||
160 | endif |
286 | endif |