OpenWrt – Blame information for rev 2
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # |
2 | # This is free software, licensed under the GNU General Public License v2. |
||
3 | # See /LICENSE for more information. |
||
4 | # |
||
5 | include $(TOPDIR)/rules.mk |
||
6 | include $(INCLUDE_DIR)/image.mk |
||
7 | |||
8 | DEVICE_VARS += IMAGE_SIZE DTB_SIZE |
||
9 | |||
10 | define Build/boot-img |
||
11 | $(RM) -rf $@.bootdir |
||
12 | mkdir -p $@.bootdir/boot |
||
13 | |||
14 | $(CP) $@.scr $@.bootdir/boot/boot.scr |
||
15 | $(CP) $(IMAGE_KERNEL).dtb $@.bootdir/boot/$(DEVICE_DTB) |
||
16 | $(CP) $(IMAGE_KERNEL) $@.bootdir/boot/uImage |
||
17 | |||
18 | genext2fs --block-size $(BLOCKSIZE:%k=%Ki) \ |
||
19 | --size-in-blocks $$((1024 * $(CONFIG_TARGET_KERNEL_PARTSIZE))) \ |
||
20 | --root $@.bootdir $@.boot |
||
21 | |||
22 | # convert it to revision 1 - needed for u-boot ext2load |
||
23 | $(STAGING_DIR_HOST)/bin/tune2fs -O filetype $@.boot |
||
24 | $(STAGING_DIR_HOST)/bin/e2fsck -pDf $@.boot > /dev/null |
||
25 | endef |
||
26 | |||
27 | define Build/boot-script |
||
28 | $(STAGING_DIR_HOST)/bin/mkimage -A powerpc -T script -C none -n "$(PROFILE) Boot Script" \ |
||
29 | -d mbl_boot.scr \ |
||
30 | $@.scr |
||
31 | endef |
||
32 | |||
33 | define Build/copy-file |
||
34 | cat "$(1)" > "$@" |
||
35 | endef |
||
36 | |||
37 | define Build/create-uImage-dtb |
||
38 | # flat_dt target expect FIT image - which WNDR4700's uboot doesn't support |
||
39 | -$(STAGING_DIR_HOST)/bin/mkimage -A $(LINUX_KARCH) \ |
||
40 | -O linux -T kernel -C none \ |
||
41 | -n '$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)' \ |
||
42 | -d "$@.dtb" "$@.dtb.uimage" |
||
43 | endef |
||
44 | |||
45 | define Build/dtb |
||
46 | $(call Image/BuildDTB,../dts/$(DEVICE_DTS).dts,$@.dtb,,--space $(DTB_SIZE)) |
||
47 | endef |
||
48 | |||
49 | define Build/export-dtb |
||
50 | cp $(IMAGE_KERNEL).dtb $@ |
||
51 | endef |
||
52 | |||
53 | define Build/hdd-img |
||
54 | ./mbl_gen_hdd_img.sh $@ $@.boot $(IMAGE_ROOTFS) $(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) |
||
55 | endef |
||
56 | |||
57 | define Build/MerakiAdd-dtb |
||
58 | $(call Image/BuildDTB,../dts/$(DEVICE_DTS).dts,$@.dtb) |
||
59 | ( \ |
||
60 | dd if=$@.dtb bs=$(DTB_SIZE) conv=sync; \ |
||
61 | dd if=$@ bs=$(BLOCKSIZE) conv=sync; \ |
||
62 | ) > $@.new |
||
63 | @mv $@.new $@ |
||
64 | endef |
||
65 | |||
66 | define Build/MerakiNAND |
||
67 | -$(STAGING_DIR_HOST)/bin/mkmerakifw \ |
||
68 | -B $(BOARD_NAME) -s \ |
||
69 | -i $@ \ |
||
70 | -o $@.new |
||
71 | @cp $@.new $@ |
||
72 | endef |
||
73 | |||
74 | define Build/MuImage-initramfs |
||
75 | rm -rf $@.fakerd $@.new |
||
76 | |||
77 | dd if=/dev/zero of=$@.fakerd bs=32 count=1 conv=sync |
||
78 | |||
79 | # Netgear used an old uboot that doesn't have FIT support. |
||
80 | # So we are stuck with either a full ext2/4 fs in a initrd. |
||
81 | # ... or we try to make the "multi" image approach to work |
||
82 | # for us. |
||
83 | # |
||
84 | # Sadly, the "multi" image has to consists of three |
||
85 | # "fixed" parts in the following "fixed" order: |
||
86 | # 1. The kernel which is in $@ |
||
87 | # 2. The (fake) initrd which is in $@.fakerd |
||
88 | # 3. The device tree binary which is in $@.dtb |
||
89 | # |
||
90 | # Now, given that we use the function for the kernel which |
||
91 | # already has a initramfs image inside, we still have to |
||
92 | # add a "fake" initrd (which a mkimage header) in the second |
||
93 | # part of the legacy multi image. Since we need to put the |
||
94 | # device tree stuff into part 3. |
||
95 | |||
96 | -$(STAGING_DIR_HOST)/bin/mkimage -A $(LINUX_KARCH) -O linux -T multi \ |
||
97 | -C $(1) -a $(KERNEL_LOADADDR) -e $(KERNEL_ENTRY) \ |
||
98 | -n '$(BOARD_NAME) initramfs' -d $@:$@.fakerd:$@.dtb $@.new |
||
99 | mv $@.new $@ |
||
100 | rm -rf $@.fakerd |
||
101 | endef |
||
102 | |||
103 | define Build/prepend-dtb |
||
104 | cat "$@.dtb.uimage" "$@" > "$@.new" |
||
105 | mv "$@.new" "$@" |
||
106 | endef |
||
107 | |||
108 | define Image/cpiogz |
||
109 | ( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9n >$(KDIR_TMP)/$(IMG_PREFIX)-rootfs.cpio.gz ) |
||
110 | endef |
||
111 | |||
112 | define Device/Default |
||
113 | PROFILES := Default |
||
114 | KERNEL_DEPENDS = $$(wildcard ../dts/$$(DEVICE_DTS).dts) |
||
115 | DEVICE_DTS := |
||
116 | KERNEL_ENTRY := 0x00000000 |
||
117 | KERNEL_LOADADDR := 0x00000000 |
||
118 | DEVICE_DTS_DIR := ../dts |
||
119 | SUPPORTED_DEVICES = $(subst _,$(comma),$(1)) |
||
120 | endef |
||
121 | |||
122 | ifeq ($(SUBTARGET),nand) |
||
123 | |||
124 | define Device/meraki_mr24 |
||
125 | DEVICE_TITLE := Cisco Meraki MR24 |
||
126 | DEVICE_PACKAGES := kmod-spi-gpio -swconfig |
||
127 | BOARD_NAME := mr24 |
||
128 | DEVICE_DTS := meraki-mr24 |
||
129 | BLOCKSIZE := 63k |
||
130 | IMAGES := sysupgrade.bin |
||
131 | DTB_SIZE := 64512 |
||
132 | IMAGE_SIZE := 8191k |
||
133 | KERNEL := kernel-bin | lzma | uImage lzma | MerakiAdd-dtb | MerakiNAND |
||
134 | KERNEL_INITRAMFS := kernel-bin | lzma | dtb | MuImage-initramfs lzma |
||
135 | IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata |
||
136 | UBINIZE_OPTS := -E 5 |
||
137 | SUPPORTED_DEVICES += mr24 |
||
138 | endef |
||
139 | TARGET_DEVICES += meraki_mr24 |
||
140 | |||
141 | define Device/meraki_mx60 |
||
142 | DEVICE_TITLE := Cisco Meraki MX60/MX60W |
||
143 | DEVICE_PACKAGES := kmod-spi-gpio kmod-usb-ledtrig-usbport kmod-usb-dwc2 \ |
||
144 | kmod-usb-storage block-mount |
||
145 | BOARD_NAME := mx60 |
||
146 | DEVICE_DTS := meraki-mx60 |
||
147 | BLOCKSIZE := 63k |
||
148 | IMAGES := sysupgrade.bin |
||
149 | DTB_SIZE := 64512 |
||
150 | IMAGE_SIZE := 1021m |
||
151 | KERNEL_SIZE := 4031k |
||
152 | KERNEL := kernel-bin | gzip | uImage gzip | MerakiAdd-dtb | MerakiNAND |
||
153 | KERNEL_INITRAMFS := kernel-bin | gzip | dtb | MuImage-initramfs gzip |
||
154 | IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata |
||
155 | UBINIZE_OPTS := -E 5 |
||
156 | SUPPORTED_DEVICES += mx60 |
||
157 | endef |
||
158 | TARGET_DEVICES += meraki_mx60 |
||
159 | |||
160 | define Device/netgear_wndap6x0 |
||
161 | DEVICE_PACKAGES := kmod-eeprom-at24 |
||
162 | SUBPAGESIZE := 256 |
||
163 | PAGESIZE := 512 |
||
164 | BLOCKSIZE := 16k |
||
165 | DTB_SIZE := 32768 |
||
166 | IMAGE_SIZE := 27392k |
||
167 | IMAGES := sysupgrade.bin factory.img |
||
168 | KERNEL_SIZE := 4032k |
||
169 | KERNEL := dtb | kernel-bin | gzip | MuImage-initramfs gzip |
||
170 | IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata |
||
171 | IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi |
||
172 | UBINIZE_OPTS := -E 5 |
||
173 | endef |
||
174 | |||
175 | define Device/netgear_wndap620 |
||
176 | $(Device/netgear_wndap6x0) |
||
177 | DEVICE_TITLE := Netgear WNDAP620 - Premium Wireless-N |
||
178 | DEVICE_DTS := netgear-wndap620 |
||
179 | endef |
||
180 | TARGET_DEVICES += netgear_wndap620 |
||
181 | |||
182 | define Device/netgear_wndap660 |
||
183 | $(Device/netgear_wndap6x0) |
||
184 | DEVICE_TITLE := Netgear WNDAP660 - Dual Radio Dual Band Wireless-N |
||
185 | DEVICE_DTS := netgear-wndap660 |
||
186 | endef |
||
187 | TARGET_DEVICES += netgear_wndap660 |
||
188 | |||
189 | define Device/netgear_wndr4700 |
||
190 | DEVICE_TITLE := Netgear Centria N900 WNDR4700/WNDR4720 |
||
191 | DEVICE_PACKAGES := badblocks block-mount e2fsprogs \ |
||
192 | kmod-dm kmod-fs-ext4 kmod-fs-vfat kmod-usb-ledtrig-usbport \ |
||
193 | kmod-md-mod kmod-nls-cp437 kmod-nls-iso8859-1 kmod-nls-iso8859-15 \ |
||
194 | kmod-nls-utf8 kmod-usb3 kmod-usb-dwc2 kmod-usb-storage \ |
||
195 | partx-utils |
||
196 | BOARD_NAME := wndr4700 |
||
197 | DEVICE_DTS := netgear-wndr4700 |
||
198 | PAGESIZE := 2048 |
||
199 | SUBPAGESIZE := 512 |
||
200 | BLOCKSIZE := 128k |
||
201 | DTB_SIZE := 131008 |
||
202 | IMAGE_SIZE := 24960k |
||
203 | IMAGES := factory.img sysupgrade.bin |
||
204 | ARTIFACTS := device-tree.dtb |
||
205 | KERNEL_SIZE := 3584k |
||
206 | # append a fake/empty rootfs to fool netgear's uboot |
||
207 | # CHECK_DNI_FIRMWARE_ROOTFS_INTEGRITY in do_chk_dniimg() |
||
208 | KERNEL := kernel-bin | lzma | uImage lzma | pad-offset $$(BLOCKSIZE) 64 | \ |
||
209 | append-uImage-fakehdr filesystem | dtb | create-uImage-dtb | prepend-dtb |
||
210 | KERNEL_INITRAMFS := kernel-bin | gzip | dtb | MuImage-initramfs gzip |
||
211 | IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \ |
||
212 | netgear-dni | check-size $$$$(IMAGE_SIZE) |
||
213 | IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata |
||
214 | ARTIFACT/device-tree.dtb := export-dtb | uImage none |
||
215 | NETGEAR_BOARD_ID := WNDR4700 |
||
216 | NETGEAR_HW_ID := 29763875+128+256 |
||
217 | UBINIZE_OPTS := -E 5 |
||
218 | SUPPORTED_DEVICES += wndr4700 |
||
219 | endef |
||
220 | TARGET_DEVICES += netgear_wndr4700 |
||
221 | |||
222 | endif |
||
223 | |||
224 | ifeq ($(SUBTARGET),sata) |
||
225 | |||
226 | define Device/wd_mybooklive |
||
227 | DEVICE_TITLE := Western Digital My Book Live Series (Single + Duo) |
||
228 | DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport kmod-usb-storage kmod-fs-vfat wpad-basic |
||
229 | DEVICE_DTS := wd-mybooklive |
||
230 | SUPPORTED_DEVICES += mbl wd,mybooklive-duo |
||
231 | BLOCKSIZE := 1k |
||
232 | DTB_SIZE := 16384 |
||
233 | KERNEL := kernel-bin | dtb | gzip | uImage gzip |
||
234 | KERNEL_INITRAMFS := kernel-bin | gzip | dtb | MuImage-initramfs gzip |
||
235 | IMAGES := factory.img.gz kernel.dtb sysupgrade.img.gz |
||
236 | ARTIFACTS := apollo3g.dtb |
||
237 | DEVICE_DTB := apollo3g.dtb |
||
238 | FILESYSTEMS := ext4 squashfs |
||
239 | IMAGE/factory.img.gz := boot-script | boot-img | hdd-img | gzip |
||
240 | IMAGE/sysupgrade.img.gz := boot-script | boot-img | hdd-img | gzip | append-metadata |
||
241 | ARTIFACT/apollo3g.dtb := export-dtb |
||
242 | endef |
||
243 | |||
244 | TARGET_DEVICES += wd_mybooklive |
||
245 | |||
246 | endif |
||
247 | |||
248 | $(eval $(call BuildImage)) |