blob: 05be1f07026348e2766bd679973c0f932d7b24ce [file] [log] [blame]
Patrick Williamsc0f7c042017-02-23 20:41:17 -06001inherit kernel-uboot uboot-sign
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002
3python __anonymous () {
He Zhefe76b1e2016-05-25 04:47:16 -04004 kerneltypes = d.getVar('KERNEL_IMAGETYPES', True) or ""
5 if 'fitImage' in kerneltypes.split():
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006 depends = d.getVar("DEPENDS", True)
7 depends = "%s u-boot-mkimage-native dtc-native" % depends
8 d.setVar("DEPENDS", depends)
9
Patrick Williamsc0f7c042017-02-23 20:41:17 -060010 if d.getVar("UBOOT_ARCH", True) == "x86":
11 replacementtype = "bzImage"
12 else:
13 replacementtype = "zImage"
14
Patrick Williamsc124f4f2015-09-15 14:41:29 -050015 # Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
16 # to kernel.bbclass . We have to override it, since we pack zImage
17 # (at least for now) into the fitImage .
He Zhefe76b1e2016-05-25 04:47:16 -040018 typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE", True) or ""
19 if 'fitImage' in typeformake.split():
Patrick Williamsc0f7c042017-02-23 20:41:17 -060020 d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', replacementtype))
Patrick Williamsc124f4f2015-09-15 14:41:29 -050021
22 image = d.getVar('INITRAMFS_IMAGE', True)
23 if image:
George McCollister185c8ae2016-05-26 08:55:16 -050024 d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
25
Patrick Williamsc0f7c042017-02-23 20:41:17 -060026 # Verified boot will sign the fitImage and append the public key to
27 # U-boot dtb. We ensure the U-Boot dtb is deployed before assembling
28 # the fitImage:
29 if d.getVar('UBOOT_SIGN_ENABLE', True):
30 uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot', True) or 'u-boot'
31 d.appendVarFlag('do_assemble_fitimage', 'depends', ' %s:do_deploy' % uboot_pn)
Patrick Williamsc124f4f2015-09-15 14:41:29 -050032}
33
Yannick Gicqueld5813b42016-04-27 16:20:55 +020034# Options for the device tree compiler passed to mkimage '-D' feature:
35UBOOT_MKIMAGE_DTCOPTS ??= ""
36
Patrick Williamsc124f4f2015-09-15 14:41:29 -050037#
38# Emit the fitImage ITS header
39#
George McCollister185c8ae2016-05-26 08:55:16 -050040# $1 ... .its filename
Patrick Williamsc124f4f2015-09-15 14:41:29 -050041fitimage_emit_fit_header() {
George McCollister185c8ae2016-05-26 08:55:16 -050042 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050043/dts-v1/;
44
45/ {
46 description = "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}";
47 #address-cells = <1>;
48EOF
49}
50
51#
52# Emit the fitImage section bits
53#
George McCollister185c8ae2016-05-26 08:55:16 -050054# $1 ... .its filename
55# $2 ... Section bit type: imagestart - image section start
Patrick Williamsc124f4f2015-09-15 14:41:29 -050056# confstart - configuration section start
57# sectend - section end
58# fitend - fitimage end
59#
60fitimage_emit_section_maint() {
George McCollister185c8ae2016-05-26 08:55:16 -050061 case $2 in
Patrick Williamsc124f4f2015-09-15 14:41:29 -050062 imagestart)
George McCollister185c8ae2016-05-26 08:55:16 -050063 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050064
65 images {
66EOF
67 ;;
68 confstart)
George McCollister185c8ae2016-05-26 08:55:16 -050069 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050070
71 configurations {
72EOF
73 ;;
74 sectend)
George McCollister185c8ae2016-05-26 08:55:16 -050075 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050076 };
77EOF
78 ;;
79 fitend)
George McCollister185c8ae2016-05-26 08:55:16 -050080 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050081};
82EOF
83 ;;
84 esac
85}
86
87#
88# Emit the fitImage ITS kernel section
89#
George McCollister185c8ae2016-05-26 08:55:16 -050090# $1 ... .its filename
91# $2 ... Image counter
92# $3 ... Path to kernel image
93# $4 ... Compression type
Patrick Williamsc124f4f2015-09-15 14:41:29 -050094fitimage_emit_section_kernel() {
95
96 kernel_csum="sha1"
97
98 ENTRYPOINT=${UBOOT_ENTRYPOINT}
99 if test -n "${UBOOT_ENTRYSYMBOL}"; then
100 ENTRYPOINT=`${HOST_PREFIX}nm ${S}/vmlinux | \
George McCollister185c8ae2016-05-26 08:55:16 -0500101 awk '$4=="${UBOOT_ENTRYSYMBOL}" {print $2}'`
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500102 fi
103
George McCollister185c8ae2016-05-26 08:55:16 -0500104 cat << EOF >> ${1}
105 kernel@${2} {
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500106 description = "Linux kernel";
George McCollister185c8ae2016-05-26 08:55:16 -0500107 data = /incbin/("${3}");
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500108 type = "kernel";
109 arch = "${UBOOT_ARCH}";
110 os = "linux";
George McCollister185c8ae2016-05-26 08:55:16 -0500111 compression = "${4}";
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500112 load = <${UBOOT_LOADADDRESS}>;
113 entry = <${ENTRYPOINT}>;
114 hash@1 {
115 algo = "${kernel_csum}";
116 };
117 };
118EOF
119}
120
121#
122# Emit the fitImage ITS DTB section
123#
George McCollister185c8ae2016-05-26 08:55:16 -0500124# $1 ... .its filename
125# $2 ... Image counter
126# $3 ... Path to DTB image
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500127fitimage_emit_section_dtb() {
128
129 dtb_csum="sha1"
130
George McCollister185c8ae2016-05-26 08:55:16 -0500131 cat << EOF >> ${1}
132 fdt@${2} {
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500133 description = "Flattened Device Tree blob";
George McCollister185c8ae2016-05-26 08:55:16 -0500134 data = /incbin/("${3}");
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500135 type = "flat_dt";
136 arch = "${UBOOT_ARCH}";
137 compression = "none";
138 hash@1 {
139 algo = "${dtb_csum}";
140 };
141 };
142EOF
143}
144
145#
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600146# Emit the fitImage ITS setup section
147#
148# $1 ... .its filename
149# $2 ... Image counter
150# $3 ... Path to setup image
151fitimage_emit_section_setup() {
152
153 setup_csum="sha1"
154
155 cat << EOF >> ${1}
156 setup@${2} {
157 description = "Linux setup.bin";
158 data = /incbin/("${3}");
159 type = "x86_setup";
160 arch = "${UBOOT_ARCH}";
161 os = "linux";
162 compression = "none";
163 load = <0x00090000>;
164 entry = <0x00090000>;
165 hash@1 {
166 algo = "${setup_csum}";
167 };
168 };
169EOF
170}
171
172#
George McCollister185c8ae2016-05-26 08:55:16 -0500173# Emit the fitImage ITS ramdisk section
174#
175# $1 ... .its filename
176# $2 ... Image counter
177# $3 ... Path to ramdisk image
178fitimage_emit_section_ramdisk() {
179
180 ramdisk_csum="sha1"
Rick Altherrbc1b8802017-01-20 11:28:53 -0800181 ramdisk_ctype="none"
Nathan Rossib4a4dc02016-10-21 22:07:27 +1000182 ramdisk_loadline=""
183 ramdisk_entryline=""
184
185 if [ -n "${UBOOT_RD_LOADADDRESS}" ]; then
186 ramdisk_loadline="load = <${UBOOT_RD_LOADADDRESS}>;"
187 fi
188 if [ -n "${UBOOT_RD_ENTRYPOINT}" ]; then
189 ramdisk_entryline="entry = <${UBOOT_RD_ENTRYPOINT}>;"
190 fi
George McCollister185c8ae2016-05-26 08:55:16 -0500191
Rick Altherrbc1b8802017-01-20 11:28:53 -0800192 case $3 in
193 *.gz)
194 ramdisk_ctype="gzip"
195 ;;
196 *.bz2)
197 ramdisk_ctype="bzip2"
198 ;;
199 *.lzma)
200 ramdisk_ctype="lzma"
201 ;;
202 *.lzo)
203 ramdisk_ctype="lzo"
204 ;;
205 *.lz4)
206 ramdisk_ctype="lz4"
207 ;;
208 esac
209
George McCollister185c8ae2016-05-26 08:55:16 -0500210 cat << EOF >> ${1}
211 ramdisk@${2} {
Rick Altherrbc1b8802017-01-20 11:28:53 -0800212 description = "${INITRAMFS_IMAGE}";
George McCollister185c8ae2016-05-26 08:55:16 -0500213 data = /incbin/("${3}");
214 type = "ramdisk";
215 arch = "${UBOOT_ARCH}";
216 os = "linux";
Rick Altherrbc1b8802017-01-20 11:28:53 -0800217 compression = "${ramdisk_ctype}";
Nathan Rossib4a4dc02016-10-21 22:07:27 +1000218 ${ramdisk_loadline}
219 ${ramdisk_entryline}
George McCollister185c8ae2016-05-26 08:55:16 -0500220 hash@1 {
221 algo = "${ramdisk_csum}";
222 };
223 };
224EOF
225}
226
227#
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500228# Emit the fitImage ITS configuration section
229#
George McCollister185c8ae2016-05-26 08:55:16 -0500230# $1 ... .its filename
231# $2 ... Linux kernel ID
232# $3 ... DTB image ID
233# $4 ... ramdisk ID
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600234# $5 ... config ID
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500235fitimage_emit_section_config() {
236
237 conf_csum="sha1"
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600238 if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
239 conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
240 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500241
242 # Test if we have any DTBs at all
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600243 conf_desc="Linux kernel"
244 kernel_line="kernel = \"kernel@${2}\";"
245 fdt_line=""
246 ramdisk_line=""
247
248 if [ -n "${3}" ]; then
249 conf_desc="${conf_desc}, FDT blob"
George McCollister185c8ae2016-05-26 08:55:16 -0500250 fdt_line="fdt = \"fdt@${3}\";"
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600251 fi
252
253 if [ -n "${4}" ]; then
254 conf_desc="${conf_desc}, ramdisk"
George McCollister185c8ae2016-05-26 08:55:16 -0500255 ramdisk_line="ramdisk = \"ramdisk@${4}\";"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500256 fi
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600257
258 if [ -n "${5}" ]; then
259 conf_desc="${conf_desc}, setup"
260 setup_line="setup = \"setup@${5}\";"
261 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500262
George McCollister185c8ae2016-05-26 08:55:16 -0500263 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500264 default = "conf@1";
265 conf@1 {
266 description = "${conf_desc}";
267 ${kernel_line}
268 ${fdt_line}
George McCollister185c8ae2016-05-26 08:55:16 -0500269 ${ramdisk_line}
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600270 ${setup_line}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500271 hash@1 {
272 algo = "${conf_csum}";
273 };
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600274EOF
275
276 if [ ! -z "${conf_sign_keyname}" ] ; then
277
278 sign_line="sign-images = \"kernel\""
279
280 if [ -n "${3}" ]; then
281 sign_line="${sign_line}, \"fdt\""
282 fi
283
284 if [ -n "${4}" ]; then
285 sign_line="${sign_line}, \"ramdisk\""
286 fi
287
288 if [ -n "${5}" ]; then
289 sign_line="${sign_line}, \"setup\""
290 fi
291
292 sign_line="${sign_line};"
293
294 cat << EOF >> ${1}
295 signature@1 {
296 algo = "${conf_csum},rsa2048";
297 key-name-hint = "${conf_sign_keyname}";
298 ${sign_line}
299 };
300EOF
301 fi
302
303 cat << EOF >> ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500304 };
305EOF
306}
307
George McCollister185c8ae2016-05-26 08:55:16 -0500308#
309# Assemble fitImage
310#
311# $1 ... .its filename
312# $2 ... fitImage name
313# $3 ... include ramdisk
314fitimage_assemble() {
315 kernelcount=1
316 dtbcount=""
317 ramdiskcount=${3}
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600318 setupcount=""
George McCollister185c8ae2016-05-26 08:55:16 -0500319 rm -f ${1} arch/${ARCH}/boot/${2}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500320
George McCollister185c8ae2016-05-26 08:55:16 -0500321 fitimage_emit_fit_header ${1}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500322
George McCollister185c8ae2016-05-26 08:55:16 -0500323 #
324 # Step 1: Prepare a kernel image section.
325 #
326 fitimage_emit_section_maint ${1} imagestart
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500327
George McCollister185c8ae2016-05-26 08:55:16 -0500328 uboot_prep_kimage
329 fitimage_emit_section_kernel ${1} "${kernelcount}" linux.bin "${linux_comp}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500330
George McCollister185c8ae2016-05-26 08:55:16 -0500331 #
332 # Step 2: Prepare a DTB image section
333 #
334 if test -n "${KERNEL_DEVICETREE}"; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500335 dtbcount=1
George McCollister185c8ae2016-05-26 08:55:16 -0500336 for DTB in ${KERNEL_DEVICETREE}; do
337 if echo ${DTB} | grep -q '/dts/'; then
338 bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
339 DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
340 fi
341 DTB_PATH="arch/${ARCH}/boot/dts/${DTB}"
342 if [ ! -e "${DTB_PATH}" ]; then
343 DTB_PATH="arch/${ARCH}/boot/${DTB}"
344 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500345
George McCollister185c8ae2016-05-26 08:55:16 -0500346 fitimage_emit_section_dtb ${1} ${dtbcount} ${DTB_PATH}
347 dtbcount=`expr ${dtbcount} + 1`
348 done
349 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500350
George McCollister185c8ae2016-05-26 08:55:16 -0500351 #
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600352 # Step 3: Prepare a setup section. (For x86)
353 #
354 if test -e arch/${ARCH}/boot/setup.bin ; then
355 setupcount=1
356 fitimage_emit_section_setup ${1} "${setupcount}" arch/${ARCH}/boot/setup.bin
357 fi
358
359 #
360 # Step 4: Prepare a ramdisk section.
George McCollister185c8ae2016-05-26 08:55:16 -0500361 #
362 if [ "x${ramdiskcount}" = "x1" ] ; then
Rick Altherrbc1b8802017-01-20 11:28:53 -0800363 # Find and use the first initramfs image archive type we find
364 for img in cpio.lz4 cpio.lzo cpio.lzma cpio.xz cpio.gz cpio; do
365 initramfs_path="${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${img}"
366 echo "Using $initramfs_path"
367 if [ -e "${initramfs_path}" ]; then
368 fitimage_emit_section_ramdisk ${1} "${ramdiskcount}" "${initramfs_path}"
369 break
370 fi
371 done
George McCollister185c8ae2016-05-26 08:55:16 -0500372 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500373
George McCollister185c8ae2016-05-26 08:55:16 -0500374 fitimage_emit_section_maint ${1} sectend
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500375
George McCollister185c8ae2016-05-26 08:55:16 -0500376 # Force the first Kernel and DTB in the default config
377 kernelcount=1
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600378 if test -n "${dtbcount}"; then
379 dtbcount=1
380 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500381
George McCollister185c8ae2016-05-26 08:55:16 -0500382 #
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600383 # Step 5: Prepare a configurations section
George McCollister185c8ae2016-05-26 08:55:16 -0500384 #
385 fitimage_emit_section_maint ${1} confstart
386
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600387 fitimage_emit_section_config ${1} "${kernelcount}" "${dtbcount}" "${ramdiskcount}" "${setupcount}"
George McCollister185c8ae2016-05-26 08:55:16 -0500388
389 fitimage_emit_section_maint ${1} sectend
390
391 fitimage_emit_section_maint ${1} fitend
392
393 #
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600394 # Step 6: Assemble the image
George McCollister185c8ae2016-05-26 08:55:16 -0500395 #
396 uboot-mkimage \
397 ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
398 -f ${1} \
399 arch/${ARCH}/boot/${2}
Patrick Williamsc0f7c042017-02-23 20:41:17 -0600400
401 #
402 # Step 7: Sign the image and add public key to U-Boot dtb
403 #
404 if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
405 uboot-mkimage \
406 ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
407 -F -k "${UBOOT_SIGN_KEYDIR}" \
408 -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
409 -r arch/${ARCH}/boot/${2}
410 fi
George McCollister185c8ae2016-05-26 08:55:16 -0500411}
412
413do_assemble_fitimage() {
414 if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
415 cd ${B}
416 fitimage_assemble fit-image.its fitImage
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500417 fi
418}
419
420addtask assemble_fitimage before do_install after do_compile
421
George McCollister185c8ae2016-05-26 08:55:16 -0500422do_assemble_fitimage_initramfs() {
423 if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage" && \
424 test -n "${INITRAMFS_IMAGE}" ; then
425 cd ${B}
426 fitimage_assemble fit-image-${INITRAMFS_IMAGE}.its fitImage-${INITRAMFS_IMAGE} 1
427 fi
428}
429
430addtask assemble_fitimage_initramfs before do_deploy after do_install
431
432
Patrick Williamsd8c66bc2016-06-20 12:57:21 -0500433kernel_do_deploy[vardepsexclude] = "DATETIME"
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500434kernel_do_deploy_append() {
435 # Update deploy directory
He Zhefe76b1e2016-05-25 04:47:16 -0400436 if echo ${KERNEL_IMAGETYPES} | grep -wq "fitImage"; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500437 cd ${B}
438 echo "Copying fit-image.its source file..."
He Zhefe76b1e2016-05-25 04:47:16 -0400439 its_base_name="fitImage-its-${PV}-${PR}-${MACHINE}-${DATETIME}"
440 its_symlink_name=fitImage-its-${MACHINE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500441 install -m 0644 fit-image.its ${DEPLOYDIR}/${its_base_name}.its
He Zhefe76b1e2016-05-25 04:47:16 -0400442 linux_bin_base_name="fitImage-linux.bin-${PV}-${PR}-${MACHINE}-${DATETIME}"
443 linux_bin_symlink_name=fitImage-linux.bin-${MACHINE}
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500444 install -m 0644 linux.bin ${DEPLOYDIR}/${linux_bin_base_name}.bin
445
George McCollister185c8ae2016-05-26 08:55:16 -0500446 if [ -n "${INITRAMFS_IMAGE}" ]; then
447 echo "Copying fit-image-${INITRAMFS_IMAGE}.its source file..."
Nathan Rossi578589a2016-10-21 22:07:28 +1000448 its_initramfs_base_name="fitImage-its-${INITRAMFS_IMAGE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
449 its_initramfs_symlink_name=fitImage-its-${INITRAMFS_IMAGE}-${MACHINE}
George McCollister185c8ae2016-05-26 08:55:16 -0500450 install -m 0644 fit-image-${INITRAMFS_IMAGE}.its ${DEPLOYDIR}/${its_initramfs_base_name}.its
Nathan Rossi578589a2016-10-21 22:07:28 +1000451 fit_initramfs_base_name="fitImage-${INITRAMFS_IMAGE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
452 fit_initramfs_symlink_name=fitImage-${INITRAMFS_IMAGE}-${MACHINE}
George McCollister185c8ae2016-05-26 08:55:16 -0500453 install -m 0644 arch/${ARCH}/boot/fitImage-${INITRAMFS_IMAGE} ${DEPLOYDIR}/${fit_initramfs_base_name}.bin
454 fi
455
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500456 cd ${DEPLOYDIR}
457 ln -sf ${its_base_name}.its ${its_symlink_name}.its
458 ln -sf ${linux_bin_base_name}.bin ${linux_bin_symlink_name}.bin
George McCollister185c8ae2016-05-26 08:55:16 -0500459
460 if [ -n "${INITRAMFS_IMAGE}" ]; then
461 ln -sf ${its_initramfs_base_name}.its ${its_initramfs_symlink_name}.its
462 ln -sf ${fit_initramfs_base_name}.bin ${fit_initramfs_symlink_name}.bin
463 fi
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500464 fi
465}