From 17aeb581a9d69e4b48352e8b8b59ed18d4d2f709 Mon Sep 17 00:00:00 2001 From: Nolen Johnson Date: Sun, 9 Jul 2023 15:34:00 -0400 Subject: [PATCH] m5: Create aml_install phony target It's just a super slim package, containing a bootloader that forces booting into recovery mode and a super_empty image. Quicker, more reliable flashing process, plus solves the issue of entering recovery without buttons. Change-Id: I04fb916098006f9ac82ddaf379fdc1b357eef7c0 (cherry picked from commit d67368328348369352bdb755497ad378dbc33860) --- factory.mk | 66 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 16 deletions(-) diff --git a/factory.mk b/factory.mk index 6f45444..6ea7a30 100644 --- a/factory.mk +++ b/factory.mk @@ -16,13 +16,20 @@ FACTORY_PATH := device/bananapi/m5/factory -PRODUCT_UPGRADE_OUT := $(PRODUCT_OUT)/upgrade -PACKAGE_CONFIG_FILE := $(PRODUCT_UPGRADE_OUT)/image.cfg +PRODUCT_INSTALL_OUT := $(PRODUCT_OUT)/aml_install +PRODUCT_UPGRADE_OUT := $(PRODUCT_OUT)/aml_upgrade +INSTALL_PACKAGE_CONFIG_FILE := $(PRODUCT_INSTALL_OUT)/image.cfg +UPGRADE_PACKAGE_CONFIG_FILE := $(PRODUCT_UPGRADE_OUT)/image.cfg AML_IMAGE_TOOL := $(HOST_OUT_EXECUTABLES)/aml_image_packer$(HOST_EXECUTABLE_SUFFIX) +INSTALLED_AML_INSTALL_PACKAGE_TARGET := $(PRODUCT_OUT)/aml_install_package.img INSTALLED_AML_UPGRADE_PACKAGE_TARGET := $(PRODUCT_OUT)/aml_upgrade_package.img -define aml-copy-file +define aml-copy-install-file + $(hide) $(ACP) $(1) $(PRODUCT_INSTALL_OUT)/$(strip $(if $(2), $(2), $(notdir $(1)))) +endef + +define aml-copy-upgrade-file $(hide) $(ACP) $(1) $(PRODUCT_UPGRADE_OUT)/$(strip $(if $(2), $(2), $(notdir $(1)))) endef @@ -32,28 +39,55 @@ NEEDED_IMAGES := \ dtbo.img \ vbmeta.img \ super.img \ + super_empty.img \ logo.img +$(INSTALLED_AML_INSTALL_PACKAGE_TARGET): $(addprefix $(PRODUCT_OUT)/,$(NEEDED_IMAGES)) $(ACP) $(AML_IMAGE_TOOL) + $(hide) mkdir -p $(PRODUCT_INSTALL_OUT) +ifneq ("$(wildcard $(FACTORY_PATH)/u-boot.bin)","") + $(hide) $(call aml-copy-install-file, $(FACTORY_PATH)/u-boot.bin) +else ifneq ("$(wildcard vendor/amlogic/m5/radio/bootloader-recovery.img)","") + $(hide) $(call aml-copy-install-file, vendor/amlogic/m5/radio/bootloader-recovery.img, u-boot.bin) +else + $(error "no u-boot.bin found in $(FACTORY_PATH)") +endif + $(hide) $(call aml-copy-install-file, $(PRODUCT_OUT)/logo.img) + $(hide) $(call aml-copy-install-file, $(FACTORY_PATH)/aml_sdc_burn.ini) + $(hide) $(call aml-copy-install-file, $(FACTORY_PATH)/image.cfg) + $(hide) $(call aml-copy-install-file, $(FACTORY_PATH)/platform.conf) + $(hide) $(call aml-copy-install-file, $(PRODUCT_OUT)/boot.img) + $(hide) $(call aml-copy-install-file, $(PRODUCT_OUT)/recovery.img) + $(hide) $(call aml-copy-install-file, $(INSTALLED_2NDBOOTLOADER_TARGET), dtb.img) + $(hide) $(call aml-copy-install-file, $(PRODUCT_OUT)/dtbo.img) + $(hide) $(call aml-copy-install-file, $(PRODUCT_OUT)/super_empty.img, super.img) + $(hide) $(call aml-copy-install-file, $(PRODUCT_OUT)/vbmeta.img) + $(hide) $(AML_IMAGE_TOOL) -r $(INSTALL_PACKAGE_CONFIG_FILE) $(PRODUCT_INSTALL_OUT)/ $@ + $(hide) rm -rf $(PRODUCT_INSTALL_OUT) + $(hide) echo " $@ created" + +.PHONY: aml_install +aml_install: $(INSTALLED_AML_INSTALL_PACKAGE_TARGET) + $(INSTALLED_AML_UPGRADE_PACKAGE_TARGET): $(addprefix $(PRODUCT_OUT)/,$(NEEDED_IMAGES)) $(ACP) $(AML_IMAGE_TOOL) $(hide) mkdir -p $(PRODUCT_UPGRADE_OUT) ifneq ("$(wildcard $(FACTORY_PATH)/u-boot.bin)","") - $(hide) $(call aml-copy-file, $(FACTORY_PATH)/u-boot.bin) + $(hide) $(call aml-copy-upgrade-file, $(FACTORY_PATH)/u-boot.bin) else ifneq ("$(wildcard vendor/amlogic/m5/radio/bootloader.img)","") - $(hide) $(call aml-copy-file, vendor/amlogic/m5/radio/bootloader.img, u-boot.bin) + $(hide) $(call aml-copy-upgrade-file, vendor/amlogic/m5/radio/bootloader.img, u-boot.bin) else $(error "no u-boot.bin found in $(FACTORY_PATH)") endif - $(hide) $(call aml-copy-file, $(PRODUCT_OUT)/logo.img) - $(hide) $(call aml-copy-file, $(FACTORY_PATH)/aml_sdc_burn.ini) - $(hide) $(call aml-copy-file, $(FACTORY_PATH)/image.cfg) - $(hide) $(call aml-copy-file, $(FACTORY_PATH)/platform.conf) - $(hide) $(call aml-copy-file, $(PRODUCT_OUT)/boot.img) - $(hide) $(call aml-copy-file, $(PRODUCT_OUT)/recovery.img) - $(hide) $(call aml-copy-file, $(INSTALLED_2NDBOOTLOADER_TARGET), dtb.img) - $(hide) $(call aml-copy-file, $(PRODUCT_OUT)/dtbo.img) - $(hide) $(call aml-copy-file, $(PRODUCT_OUT)/super.img) - $(hide) $(call aml-copy-file, $(PRODUCT_OUT)/vbmeta.img) - $(hide) $(AML_IMAGE_TOOL) -r $(PACKAGE_CONFIG_FILE) $(PRODUCT_UPGRADE_OUT)/ $@ + $(hide) $(call aml-copy-upgrade-file, $(PRODUCT_OUT)/logo.img) + $(hide) $(call aml-copy-upgrade-file, $(FACTORY_PATH)/aml_sdc_burn.ini) + $(hide) $(call aml-copy-upgrade-file, $(FACTORY_PATH)/image.cfg) + $(hide) $(call aml-copy-upgrade-file, $(FACTORY_PATH)/platform.conf) + $(hide) $(call aml-copy-upgrade-file, $(PRODUCT_OUT)/boot.img) + $(hide) $(call aml-copy-upgrade-file, $(PRODUCT_OUT)/recovery.img) + $(hide) $(call aml-copy-upgrade-file, $(INSTALLED_2NDBOOTLOADER_TARGET), dtb.img) + $(hide) $(call aml-copy-upgrade-file, $(PRODUCT_OUT)/dtbo.img) + $(hide) $(call aml-copy-upgrade-file, $(PRODUCT_OUT)/super.img) + $(hide) $(call aml-copy-upgrade-file, $(PRODUCT_OUT)/vbmeta.img) + $(hide) $(AML_IMAGE_TOOL) -r $(UPGRADE_PACKAGE_CONFIG_FILE) $(PRODUCT_UPGRADE_OUT)/ $@ $(hide) rm -rf $(PRODUCT_UPGRADE_OUT) $(hide) echo " $@ created" -- 2.20.1