lede/target/linux/amlogic/image/Makefile
2024-05-06 05:53:58 +08:00

92 lines
2.7 KiB
Makefile

#
# 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
DEVICE_VARS += UBOOT_DEVICE_NAME
FAT32_BLOCK_SIZE=1024
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
define Build/boot-script
# Make an U-boot image and copy it to the boot partition
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "boot.scr" -d boot.txt $(KDIR)/boot.scr
endef
define Build/emmc-common
$(RM) -f $@.boot
mkfs.fat -C $@.boot $(FAT32_BLOCKS)
mkdir -p $(KDIR)/boot.fat
$(CP) $(KDIR)/boot.scr $(KDIR)/boot.fat/boot.scr
mcopy -i $@.boot $(KDIR)/boot.scr ::
$(CP) $(IMAGE_KERNEL) $(KDIR)/boot.fat/uImage
mcopy -i $@.boot $(KDIR)/boot.fat/uImage ::
$(foreach dts,$(shell echo $(DEVICE_DTS)),$(CP) $(DTS_DIR)/$(dts).dtb $(KDIR)/boot.fat/dtb;)
mcopy -i $@.boot $(KDIR)/boot.fat/dtb ::
$(RM) -rf $(KDIR)/boot.fat
./gen_aml_emmc_img.sh $@ $@.boot $(IMAGE_ROOTFS) \
$(CONFIG_TARGET_KERNEL_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
endef
### Image scripts ###
define Build/boot-common
# This creates a new folder copies the dtb (as amlogic.dtb)
# and the kernel image (as kernel.img)
rm -fR $@.boot
mkdir -p $@.boot
$(CP) $(KDIR)/image-$(firstword $(DEVICE_DTS)).dtb $@.boot/amlogic.dtb
$(CP) $(IMAGE_KERNEL) $@.boot/kernel.img
$(CP) "$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot-overlay.bin $@.boot/u-boot.emmc
endef
define Build/boot-combined
# This creates a new folder copies the dtbs (as amlogic*.dtb)
# and the kernel image (as kernel.img)
rm -fR $@.boot
mkdir -p $@.boot
i=0; \
for dts in $(DEVICE_DTS); do \
$(CP) $(KDIR)/image-$${dts}.dtb $@.boot/amlogic$$(perl -e 'printf "%b\n",'$$i).dtb; \
let i+=1; \
done
$(CP) $(IMAGE_KERNEL) $@.boot/kernel.img
$(CP) "$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot-overlay.bin $@.boot/u-boot.emmc
endef
define Build/boot-combined-script
# Make an U-boot image and copy it to the boot partition
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d aml_autoscript.cmd $@.boot/aml_autoscript
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d emmc_autoscript.cmd $@.boot/emmc_autoscript
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d s905_autoscript.cmd $@.boot/s905_autoscript
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $(if $(1),$(1),amlogic).bootscript $@.boot/boot.scr
endef
define Build/aml-img
# Creates the final SD/USB images,
# combining boot partition, root partition
SIGNATURE="$(IMG_PART_SIGNATURE)" \
./gen_amlogic_image.sh \
$@ \
64 $@.boot \
256 $(IMAGE_ROOTFS) \
2048
endef
### Devices ###
include $(SUBTARGET).mk
$(eval $(call BuildImage))