From 9e40b526613316ebdbda8efe57db5bb8aeea5f1d Mon Sep 17 00:00:00 2001 From: Praveenkumar I Date: Thu, 11 Aug 2022 15:55:41 +0530 Subject: [PATCH] tools: pack: Update pack script for IPQ9574 This patch adds the following changes, Machine ID check for qcn9224 V1 flashing which will help to skip this FW flashing if WIFI_FW is 1. Updated EMMC image append and flash script generation logic to skip if filename_img is not given inside wififw_type_max range. Increased the start activity string length to get the full WIFI_FW image name in console during flashing. Change-Id: Ica9552caa219cd1f4be9fa25a4e9a716b789ca48 Signed-off-by: Praveenkumar I --- tools/pack.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/tools/pack.py b/tools/pack.py index 554a608262..0adca08adb 100644 --- a/tools/pack.py +++ b/tools/pack.py @@ -381,7 +381,7 @@ class FlashScript(object): """Generate code, to indicate start of an activity.""" self.script.append('if test "x$verbose" = "x"; then\n') - self.echo("'%-40.40s'" % activity, nl=False) + self.echo("'%-55.55s'" % activity, nl=False) self.script.append('else\n') self.echo("'%s %s Started'" % ("#" * 40, activity), verbose=True) self.script.append('fi\n') @@ -790,6 +790,23 @@ class Pack(object): def __gen_flash_script_wififw_ubi_volume_qcn9224_v1(self, entries, fw_filename, wifi_fw_type, script): + machid_list = [] + for section in entries: + + wififw_type = section.find('.//wififw_type') + if wififw_type == None: + continue + wififw_type = str(section.find(".//wififw_type").text) + + if str(1) == str(wififw_type): + continue + + machid = int(section.find(".//machid").text, 0) + machid = "%x" % machid + + machid_list.append(machid) + + script.start_if_or("machid", machid_list) script.append("setenv qcn9224_version 1 && detect_qcn9224", fatal=False) script.append('if test "$qcn9224_version" = "1"; then\n', fatal=False) @@ -816,6 +833,8 @@ class Pack(object): script.finish_activity() script.end_if() + script.end_if() + return 1 def __gen_flash_script_wififw(self, entries, partition, filename, wifi_fw_type, flinfo, script, skip_size_check): @@ -922,7 +941,23 @@ class Pack(object): def __gen_flash_script_wififw_qcn9224_v1(self, entries, partition, filename, wifi_fw_type, flinfo, script, skip_size_check): - img_size = self.__get_img_size(filename) + machid_list = [] + for section in entries: + + wififw_type = section.find('.//wififw_type') + if wififw_type == None: + continue + wififw_type = str(section.find(".//wififw_type").text) + + if str(1) == str(wififw_type): + continue + + machid = int(section.find(".//machid").text, 0) + machid = "%x" % machid + + machid_list.append(machid) + + img_size = self.__get_img_size(filename) part_info = self.__get_part_info(partition) section_label = partition.split(":") @@ -976,6 +1011,7 @@ class Pack(object): print "Flash type is norplusemmc" return 1 + script.start_if_or("machid", machid_list) script.append("setenv qcn9224_version 1 && detect_qcn9224", fatal=False) script.append('if test "$qcn9224_version" = "1"; then\n', fatal=False) @@ -1006,6 +1042,8 @@ class Pack(object): script.finish_activity() script.end_if() + script.end_if() + return 1 def __gen_flash_script_bootldr(self, entries, partition, flinfo, script): @@ -1548,7 +1586,9 @@ class Pack(object): for fw_type in range(int(wifi_fw_type_min), int(wifi_fw_type_max) + 1): if image_type == "all" or section.attrib['image_type'] == image_type: - filename = section.attrib['filename_img' + str(fw_type)] + if 'filename_img' + str(fw_type) in section.attrib: + filename = section.attrib['filename_img' + str(fw_type)] + if filename == "": continue wifi_fw_type = str(fw_type) @@ -1561,6 +1601,7 @@ class Pack(object): if ret == 0: return 0 wifi_fw_type = "" + filename = "" wifi_fw_type_min = "" wifi_fw_type_max = "" # Clear for next partition @@ -2036,7 +2077,8 @@ class Pack(object): for fw_type in range(int(wifi_fw_type_min), int(wifi_fw_type_max) + 1): if image_type == "all" or section.attrib['image_type'] == image_type: - filename = section.attrib['filename_img' + str(fw_type)] + if 'filename_img' + str(fw_type) in section.attrib: + filename = section.attrib['filename_img' + str(fw_type)] if filename == "": continue if 'optional' in section.attrib: @@ -2045,6 +2087,7 @@ class Pack(object): wifi_fw_type = str(fw_type) self.__gen_script_append_images(filename, soc_version, wifi_fw_type, images, flinfo, root, section_conf, partition) wifi_fw_type = "" + filename = "" wifi_fw_type_min = "" wifi_fw_type_max = "" # Clean for next partition