OpenWrt – Diff between revs 2 and 3

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