1 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2016 Jiang Yutang <jiangyutang1978@gmail.com>
5 include $(TOPDIR
)/rules.mk
6 include $(INCLUDE_DIR
)/image.mk
8 LS_SD_KERNELPART_SIZE
= 40
9 LS_SD_KERNELPART_OFFSET
= 16
10 LS_SD_ROOTFSPART_OFFSET
= 64
11 LS_SD_IMAGE_SIZE
= $(shell echo
$$((($(LS_SD_ROOTFSPART_OFFSET
) + \
12 $(CONFIG_TARGET_ROOTFS_PARTSIZE
)))))
14 # The limitation of flash sysupgrade.bin is 1MB dtb + 16MB kernel + 32MB rootfs
15 LS_SYSUPGRADE_IMAGE_SIZE
= 49m
18 # Build .dtb for all boards we may run on
19 $(foreach dts
,$(DEVICE_DTS_LIST
),
20 $(call Image
/BuildDTB
,$(DTS_DIR
)/$(dts
).dts
,$(DTS_DIR
)/$(dts
).dtb
)
28 define Build
/ls-append
29 dd if
=$(STAGING_DIR_IMAGE
)/$(1) >> $@
32 define Build
/ls-append-dtb
33 dd if
=$(DTS_DIR
)/$(1).dtb
>> $@
36 define Build
/ls-append-kernel
38 cp
$(IMAGE_KERNEL
) $@.tmp
/fitImage
&& \
39 make_ext4fs
-J
-L kernel
-l
"$(LS_SD_KERNELPART_SIZE)M" \
40 $(if
$(SOURCE_DATE_EPOCH
),-T
$(SOURCE_DATE_EPOCH
)) \
41 "$@.kernel.part" "$@.tmp" && \
42 dd if
=$@.kernel.part
>> $@
&& \
47 define Build
/ls-append-sdhead
48 .
/gen_sdcard_head_img.sh
$(STAGING_DIR_IMAGE
)/$(1)-sdcard-head.img \
49 $(LS_SD_KERNELPART_OFFSET
) $(LS_SD_KERNELPART_SIZE
) \
50 $(LS_SD_ROOTFSPART_OFFSET
) $(CONFIG_TARGET_ROOTFS_PARTSIZE
)
51 dd if
=$(STAGING_DIR_IMAGE
)/$(1)-sdcard-head.img
>> $@
54 define Build
/traverse-fit
55 .
/mkits-multiple-config.sh
-o
$@.its
-A
$(LINUX_KARCH
) \
56 -v
$(LINUX_VERSION
) -k
$@
-a
$(KERNEL_LOADADDR
) \
57 -e
$(if
$(KERNEL_ENTRY
),$(KERNEL_ENTRY
),$(KERNEL_LOADADDR
)) \
59 -d
$(DEVICE_DTS_DIR
)/freescale
/traverse-ls1043s.dtb \
60 -D
"Traverse_LS1043S" -n
"ls1043s" -a
$(FDT_LOADADDR
) -c
1 \
61 -d
$(DEVICE_DTS_DIR
)/freescale
/traverse-ls1043v.dtb \
62 -D
"Traverse_LS1043V" -n
"ls1043v" -a
$(FDT_LOADADDR
) -c
2
63 PATH
=$(LINUX_DIR
)/scripts
/dtc
:$(PATH
) mkimage
-f
$@.its
$@.new
67 define Build
/traverse-fit-ls1088
68 .
/mkits-multiple-config.sh
-o
$@.its
-A
$(LINUX_KARCH
) \
69 -v
$(LINUX_VERSION
) -k
$@
-a
$(KERNEL_LOADADDR
) \
70 -e
$(if
$(KERNEL_ENTRY
),$(KERNEL_ENTRY
),$(KERNEL_LOADADDR
)) \
72 -d
$(DTS_DIR
)/freescale
/fsl-ls1088a-ten64.dtb \
73 -D
"TEN64" -n
"ten64" -a
$(FDT_LOADADDR
) -c
1 \
74 -d
$(DTS_DIR
)/freescale
/fsl-ls1088a-rdb.dtb \
75 -D
"LS1088ARDB" -n
"ls1088ardb" -a
$(FDT_LOADADDR
) -c
2
76 PATH
=$(LINUX_DIR
)/scripts
/dtc
:$(PATH
) mkimage
-f
$@.its
$@.new
80 define Device
/fix-sysupgrade
81 DEVICE_COMPAT_VERSION
:= 2.0
82 DEVICE_COMPAT_MESSAGE
:= DTB was added to sysupgrade. Image format is different. \
83 To use sysupgrade You need to change firmware partition in bootargs to
"49m@0xf00000(firmware)" and saveenv. \
84 After that
, You can use
"sysupgrade -F".
87 define Device
/rework-sdcard-images
88 DEVICE_COMPAT_VERSION
:= 2.0
89 DEVICE_COMPAT_MESSAGE
:= SD-card images were changed to squashfs
+ ext4 overlay combined images. \
90 It is required to flash the entire sd-card again and manually copy config.
93 include $(SUBTARGET
).mk
95 $(eval
$(call BuildImage
))