1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
#################################################
# Images
#################################################
# build a ubi for a specific flash geometry/layout which can contain
# volumes with the following data from ubinize-$(DEVICE_NAME).cfg:
# - 'boot.ubifs' volume: kernel+dtbs+bootscript
# - 'root.squashfs' volume: rootfs
# $(1): name (used for suffix)
# $(2): PAGESIZE (-m param to mkfs.ubifs/ubinize)
# $(3): ERASESIZE (logical eraseblock size: -e param to mkfs.ubifs)
# $(4): BLOCKSIZE (-p param to ubinize)
# $(5): MAXSIZE (maximum file-system size in LEB's -c param to mkfs.ubifs)
#
define Build/ubi-boot-overlay
# ubi-boot-overlay $(DEVICE_NAME) $(word 1, $(1))
# boot filesystem
rm -rf $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))
mkdir -p $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))
$(CP) $< $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/$(IMG_PREFIX)-uImage
ln -sf $(IMG_PREFIX)-uImage \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/uImage
$(foreach dts,$(shell echo $(DEVICE_DTS)), \
$(CP) $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(dts).dtb \
$(BIN_DIR)/$(IMG_PREFIX)-$(dts).dtb; \
$(CP) $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(dts).dtb \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/$(IMG_PREFIX)-$(dts).dtb; \
ln -sf $(IMG_PREFIX)-$(dts).dtb \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/$(dts).dtb; \
)
mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n '$(DEVICE_ID) LEDE bootscript' \
-d ./bootscript-$(DEVICE_NAME) \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))/6x_bootscript-$(DEVICE_NAME)
$(STAGING_DIR_HOST)/bin/mkfs.ubifs \
--space-fixup --force-compr=zlib --squash-uids \
-m $(word 2, $(1)) -e $(word 3, $(1)) -c $(word 5, $(1)) \
-o $(KDIR)/boot-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs \
-d $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)_$(word 1, $(1))
$(CP) $(KDIR)/boot-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs \
$(BIN_DIR)/$(IMG_PREFIX)-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs
# ubi
rm -rf p $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))
mkdir -p $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))
$(CP) $(word 2, $^) \
$(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))/
$(CP) $(KDIR)/boot-$(DEVICE_NAME)-bootfs_$(word 1, $(1)).ubifs \
$(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))/boot.ubifs
$(CP) ./ubinize-$(DEVICE_NAME).cfg \
$(KDIR)/$(DEVICE_NAME)_$(word 1, $(1))/ubinize.cfg
( cd $(KDIR)/$(DEVICE_NAME)_$(word 1, $(1)); \
$(STAGING_DIR_HOST)/bin/ubinize \
-m $(word 2, $(1)) -p $(word 4, $(1)) -s $(word 2, $(1)) \
-o $@ \
ubinize.cfg \
)
endef
define Build/bootfs.tar.gz
# boot filesystem
rm -rf $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)
mkdir -p $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)
$(CP) $< $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/$(IMG_PREFIX)-uImage
ln -sf $(IMG_PREFIX)-uImage \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/uImage
$(foreach dts,$(shell echo $(DEVICE_DTS)), \
$(CP) $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(dts).dtb \
$(BIN_DIR)/$(IMG_PREFIX)-$(dts).dtb; \
$(CP) $(LINUX_DIR)/arch/$(ARCH)/boot/dts/$(dts).dtb \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/$(IMG_PREFIX)-$(dts).dtb; \
ln -sf $(IMG_PREFIX)-$(dts).dtb \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/$(dts).dtb; \
)
mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
-n '$(DEVICE_ID) OpenWrt bootscript' \
-d ./bootscript-$(DEVICE_NAME) \
$(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME)/6x_bootscript-$(DEVICE_NAME)
# tar and zip
( \
cd $(TARGET_ROOTFS_DIR)/boot-$(DEVICE_NAME); \
$(TAR) --numeric-owner --owner=0 --group=0 --transform "s,./,./boot/," \
-czvf $(BIN_DIR)/$(IMG_PREFIX)-$(DEVICE_NAME)-bootfs.tar.gz . ; \
)
endef
#################################################
# Devices
#################################################
KERNEL_LOADADDR=0x10008000
define Device/Default
PROFILES := Generic
DEVICE_DTS :=
FILESYSTEMS := squashfs ext4
KERNEL_INSTALL := 1
KERNEL_SUFFIX := -uImage
KERNEL_NAME := zImage
KERNEL_PREFIX := $$(IMAGE_PREFIX)
KERNEL := kernel-bin | uImage none
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2)
IMAGES :=
endef
DEVICE_VARS += DEVICE_DTS
define Device/ventana
DEVICE_TITLE := Gateworks Ventana family
DEVICE_DTS:= \
imx6dl-gw51xx \
imx6dl-gw52xx \
imx6dl-gw53xx \
imx6dl-gw54xx \
imx6dl-gw551x \
imx6dl-gw552x \
imx6q-gw51xx \
imx6q-gw52xx \
imx6q-gw53xx \
imx6q-gw54xx \
imx6q-gw5400-a \
imx6q-gw551x \
imx6q-gw552x
DEVICE_PACKAGES := kmod-thermal-imx kmod-sky2 kmod-usb-chipidea-imx kmod-usb-mxs-phy \
kmod-sound-core kmod-sound-soc-imx kmod-sound-soc-imx-sgtl5000 \
kmod-can kmod-can-flexcan kmod-can-raw \
kmod-rtc-ds1672 kmod-gpio-pca953x kmod-hwmon-gsc kmod-eeprom-at24 \
kmod-leds-gpio kmod-pps-gpio kmod-gw16083 \
kobs-ng
IMAGES := nand_normal.ubi nand_large.ubi bootfs.tar.gz
IMAGE/nand_normal.ubi := ubi-boot-overlay normal 2048 124KiB 128KiB 8124
IMAGE/nand_large.ubi := ubi-boot-overlay large 4096 248KiB 256KiB 8124
IMAGE/bootfs.tar.gz := bootfs.tar.gz
IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1)-$$(2)
endef
define Device/wandboard
DEVICE_TITLE := Wandboard Dual
DEVICE_DTS := imx6dl-wandboard
DEVICE_PACKAGES := kmod-thermal-imx kmod-usb-chipidea-imx kmod-usb-mxs-phy
endef
TARGET_DEVICES += \
ventana \
wandboard
$(eval $(call BuildImage))
|