1 DEVICE_VARS
+= SERCOMM_KERNEL_OFFSET SERCOMM_ROOTFS_OFFSET
2 DEVICE_VARS
+= SERCOMM_KERNEL2_OFFSET SERCOMM_ROOTFS2_OFFSET
4 define Build
/sercomm-append-tail
5 printf
16 | dd seek
=$$((0x90)) of
=$@ bs
=1 conv
=notrunc
2>/dev
/null
6 printf
11223344556677889900112233445566 | \
7 sed
's/../\\x&/g' | xargs
-d . printf
>> $@
10 define Build
/sercomm-crypto
11 $(TOPDIR
)/scripts
/sercomm-crypto.py \
14 --output-file
$@.ser \
15 --version
$(SERCOMM_SWVER
)
16 $(STAGING_DIR_HOST
)/bin
/openssl enc
-md md5
-aes-256-cbc \
20 -iv
00000000000000000000000000000000
21 dd if
=$@.enc
>> $@.ser
2>/dev
/null
26 define Build
/sercomm-factory-cpj
27 dd bs
=$$((0x1fff00)) count
=1 if
=$@ of
=$@.kernel conv
=notrunc \
29 dd bs
=$$((0x1fff00)) skip
=1 if
=$@ of
=$@.rootfs1 conv
=notrunc \
31 cp
$@.rootfs1
$@.rootfs2
32 $(TOPDIR
)/scripts
/sercomm-kernel-header.py \
33 --kernel-image
$@.kernel \
34 --kernel-offset
$(SERCOMM_KERNEL_OFFSET
) \
35 --rootfs-image
$@.rootfs1 \
36 --rootfs-offset
$(SERCOMM_ROOTFS_OFFSET
) \
37 --output-header
$@.header1
38 $(TOPDIR
)/scripts
/sercomm-kernel-header.py \
39 --kernel-image
$@.kernel \
40 --kernel-offset
$(SERCOMM_KERNEL2_OFFSET
) \
41 --rootfs-image
$@.rootfs2 \
42 --rootfs-offset
$(SERCOMM_ROOTFS2_OFFSET
) \
43 --output-header
$@.header2
44 cat
$@.header1
$@.kernel
> $@.kernel1
45 cat
$@.header2
$@.kernel
> $@.kernel2
46 rm $@.header1
$@.header2
$@.kernel
47 $(call Build
/sercomm-part-tag-common
,kernel
$@.kernel1
)
48 $(call Build
/sercomm-part-tag-common
,kernel2
$@.kernel2
)
49 $(call Build
/sercomm-part-tag-common
,rootfs
$@.rootfs1
)
50 $(call Build
/sercomm-part-tag-common
,rootfs2
$@.rootfs2
)
51 cat
$@.kernel2
$@.rootfs2
$@.kernel1
$@.rootfs1
> $@
52 rm $@.kernel1
$@.rootfs1
$@.kernel2
$@.rootfs2
55 define Build
/sercomm-factory-cqr
56 $(TOPDIR
)/scripts
/sercomm-pid.py \
57 --hw-version
$(SERCOMM_HWVER
) \
58 --hw-id
$(SERCOMM_HWID
) \
59 --sw-version
$(SERCOMM_SWVER
) \
61 --extra-padding-size
0x190
62 printf
$$(stat
-c
%s
$(IMAGE_KERNEL
)) | \
63 dd seek
=$$((0x70)) of
=$@.fhdr bs
=1 conv
=notrunc
2>/dev
/null
64 printf
$$(($$(stat
-c
%s
$@
)-$$(stat
-c
%s
$(IMAGE_KERNEL
))-$$((0x200)))) | \
65 dd seek
=$$((0x80)) of
=$@.fhdr bs
=1 conv
=notrunc
2>/dev
/null
66 dd if
=$@
>> $@.fhdr
2>/dev
/null
70 define Build
/sercomm-kernel
71 $(TOPDIR
)/scripts
/sercomm-kernel-header.py \
73 --kernel-offset
$(SERCOMM_KERNEL_OFFSET
) \
74 --rootfs-offset
$(SERCOMM_ROOTFS_OFFSET
) \
75 --output-header
$@.hdr
76 dd if
=$@
>> $@.hdr
2>/dev
/null
80 define Build
/sercomm-kernel-factory
81 $(TOPDIR
)/scripts
/sercomm-kernel-header.py \
83 --kernel-offset
$(SERCOMM_KERNEL_OFFSET
) \
84 --rootfs-offset
$(SERCOMM_ROOTFS_OFFSET
) \
85 --output-header
$@.khdr1
86 $(TOPDIR
)/scripts
/sercomm-kernel-header.py \
88 --kernel-offset
$(SERCOMM_KERNEL2_OFFSET
) \
89 --rootfs-offset
$(SERCOMM_ROOTFS2_OFFSET
) \
90 --output-header
$@.khdr2
91 cat
$@.khdr1
$@.khdr2
> $@.khdr
92 dd if
=$@
>> $@.khdr
2>/dev
/null
96 define Build
/sercomm-mkhash
97 dd bs
=$$((0x400)) skip
=1 if
=$@ conv
=notrunc
2>/dev
/null | \
98 $(MKHASH
) md5 | awk
'{print $$1}' | tr
-d
'\n' | \
99 dd seek
=$$((0x1e0)) of
=$@ bs
=1 conv
=notrunc
2>/dev
/null
102 define Build
/sercomm-part-tag
103 $(call Build
/sercomm-part-tag-common
,$(word 1,$(1)) $@
)
106 define Build
/sercomm-part-tag-common
107 $(eval file
=$(word 2,$(1)))
108 $(TOPDIR
)/scripts
/sercomm-partition-tag.py \
109 --input-file
$(file
) \
110 --output-file
$(file
).tmp \
111 --part-name
$(word 1,$(1)) \
112 --part-version
$(SERCOMM_SWVER
)
113 mv
$(file
).tmp
$(file
)
116 define Build
/sercomm-payload
117 $(TOPDIR
)/scripts
/sercomm-pid.py \
118 --hw-version
$(SERCOMM_HWVER
) \
119 --hw-id
$(SERCOMM_HWID
) \
120 --sw-version
$(SERCOMM_SWVER
) \
122 --extra-padding-size
0x10 \
123 --extra-padding-first-byte
0x0a
124 $(TOPDIR
)/scripts
/sercomm-payload.py \
126 --output-file
$@.tmp \
132 define Build
/sercomm-pid-setbit
133 printf
1 | dd seek
=$$(($(1))) of
=$@ bs
=1 conv
=notrunc
2>/dev
/null
136 define Build
/sercomm-prepend-tagged-kernel
137 $(CP
) $(IMAGE_KERNEL
) $(IMAGE_KERNEL
).tagged
138 $(call Build
/sercomm-part-tag-common
,$(word 1,$(1)) \
139 $(IMAGE_KERNEL
).tagged
)
140 dd if
=$@
>> $(IMAGE_KERNEL
).tagged
2>/dev
/null
141 mv
$(IMAGE_KERNEL
).tagged
$@
144 define Build
/sercomm-reset-slot1-chksum
145 printf
"\xff\xff\xff\xff" | \
146 dd of
=$@ seek
=$$((0x118)) bs
=1 conv
=notrunc
2>/dev
/null
149 define Build
/sercomm-sysupgrade-cpj
150 dd bs
=$$((0x1fff00)) count
=1 if
=$@ of
=$@.kernel conv
=notrunc \
152 dd bs
=$$((0x1fff00)) skip
=1 if
=$@ of
=$@.rootfs conv
=notrunc \
154 $(TOPDIR
)/scripts
/sercomm-kernel-header.py \
155 --kernel-image
$@.kernel \
156 --kernel-offset
$(SERCOMM_KERNEL_OFFSET
) \
157 --rootfs-image
$@.rootfs \
158 --rootfs-offset
$(SERCOMM_ROOTFS_OFFSET
) \
159 --output-header
$@.header
160 cat
$@.header
$@.kernel
$@.rootfs
> $@
161 rm $@.header
$@.kernel
$@.rootfs
164 define Device
/sercomm
167 IMAGES
+= factory.img
170 define Device
/sercomm_cpj
172 DEVICE_VENDOR
:= Rostelecom
173 DEVICE_ALT0_VENDOR
:= Sercomm
176 SERCOMM_HWVER
:= 10000
177 SERCOMM_SWVER
:= 1001
178 SERCOMM_KERNEL_OFFSET
:= 0x70100
179 SERCOMM_ROOTFS_OFFSET
:= 0x270000
180 SERCOMM_KERNEL2_OFFSET
:= 0x800100
181 SERCOMM_ROOTFS2_OFFSET
:= 0xa00000
182 IMAGE
/sysupgrade.bin
:= append-kernel | append-rootfs | \
183 sercomm-sysupgrade-cpj | pad-rootfs | check-size | \
185 ARTIFACTS
:= initramfs-factory.img
186 DEVICE_PACKAGES
:= kmod-mt76x2
189 define Device
/sercomm_cxx_dxx
192 KERNEL_LOADADDR
:= 0x81001000
193 LZMA_TEXT_START
:= 0x82800000
194 SERCOMM_KERNEL_OFFSET
:= 0x400100
195 SERCOMM_ROOTFS_OFFSET
:= 0x1000000
198 define Device
/sercomm_cxx
199 $(Device
/sercomm_cxx_dxx
)
200 SERCOMM_KERNEL2_OFFSET
:= 0xa00100
201 SERCOMM_ROOTFS2_OFFSET
:= 0x3000000
202 KERNEL
:= kernel-bin | append-dtb | lzma | loader-kernel | lzma
-a0 | \
204 IMAGE
/sysupgrade.bin
:= append-kernel | sercomm-kernel | \
205 sysupgrade-tar kernel
=$$$$@ | append-metadata
206 IMAGE
/factory.img
:= append-kernel | sercomm-kernel-factory | \
207 append-ubi | sercomm-factory-cqr | sercomm-mkhash
210 define Device
/sercomm_dxx
211 $(Device
/sercomm_cxx_dxx
)
212 KERNEL
:= kernel-bin | append-dtb | lzma | loader-kernel | lzma
-a0 | \
213 uImage lzma | sercomm-kernel
214 KERNEL_INITRAMFS
:= kernel-bin | append-dtb | lzma | loader-kernel | \
215 lzma
-a0 | uImage lzma
216 IMAGE
/sysupgrade.bin
:= sysupgrade-tar | append-metadata
217 IMAGE
/factory.img
:= append-ubi | check-size | \
218 sercomm-part-tag rootfs | sercomm-prepend-tagged-kernel kernel | \
219 gzip | sercomm-payload | sercomm-crypto
222 define Device
/sercomm_s1500
224 SERCOMM_KERNEL_OFFSET
:= 0x1700100
225 SERCOMM_ROOTFS_OFFSET
:= 0x1f00000
226 SERCOMM_KERNEL2_OFFSET
:= 0x1b00100
227 KERNEL
:= kernel-bin | append-dtb | lzma | loader-kernel | lzma
-a0 | \
229 KERNEL_INITRAMFS
:= kernel-bin | append-dtb | lzma | loader-kernel | \
230 lzma
-a0 | uImage lzma
231 IMAGE
/sysupgrade.bin
:= append-kernel | sercomm-kernel | \
232 sysupgrade-tar kernel
=$$$$@ | append-metadata
233 DEVICE_PACKAGES
:= kmod-mt76x2 kmod-usb3