mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
tools: pack.py: Add support to gen single image based on fl size
generate single image based on flash size add option --flash_size <flash size> Change-Id: Ic3aab52b9b8b8fbd053e25dc0db7a924de9c375c Signed-off-by: Gurumoorthy Santhakumar <quic_gsanthak@quicinc.com>
This commit is contained in:
parent
6b4eed6dd5
commit
14105dcb1a
1 changed files with 41 additions and 25 deletions
|
|
@ -256,7 +256,7 @@ class MIBIB(object):
|
||||||
" attr1 attr2 attr3 which_flash")
|
" attr1 attr2 attr3 which_flash")
|
||||||
ENTRY_FMT = "<16sLLBBBB"
|
ENTRY_FMT = "<16sLLBBBB"
|
||||||
|
|
||||||
def __init__(self, filename, pagesize, blocksize, chipsize, nand_blocksize, nand_chipsize, root_part):
|
def __init__(self, filename, pagesize, blocksize, chipsize, nand_blocksize, nand_chipsize):
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.pagesize = pagesize
|
self.pagesize = pagesize
|
||||||
self.blocksize = blocksize
|
self.blocksize = blocksize
|
||||||
|
|
@ -1290,6 +1290,7 @@ class Pack(object):
|
||||||
global ARCH_NAME
|
global ARCH_NAME
|
||||||
global IF_QCN9000
|
global IF_QCN9000
|
||||||
global IF_QCN9224
|
global IF_QCN9224
|
||||||
|
global flash_size
|
||||||
|
|
||||||
diff_files = ""
|
diff_files = ""
|
||||||
count = 0
|
count = 0
|
||||||
|
|
@ -1302,14 +1303,14 @@ class Pack(object):
|
||||||
skip_size_check = ""
|
skip_size_check = ""
|
||||||
|
|
||||||
if self.flash_type == "norplusemmc" and flinfo.type == "emmc":
|
if self.flash_type == "norplusemmc" and flinfo.type == "emmc":
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition"+ flash_size +".xml"
|
||||||
else:
|
else:
|
||||||
if IF_QCN9000:
|
if IF_QCN9000:
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition-qcn9000.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition-qcn9000"+ flash_size +".xml"
|
||||||
elif IF_QCN9224 and flinfo.type != "emmc":
|
elif IF_QCN9224 and flinfo.type != "emmc":
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition-qcn9224.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition-qcn9224"+ flash_size +".xml"
|
||||||
else:
|
else:
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition"+ flash_size +".xml"
|
||||||
|
|
||||||
root_part = ET.parse(srcDir_part)
|
root_part = ET.parse(srcDir_part)
|
||||||
if self.flash_type != "emmc" and flinfo.type != "emmc":
|
if self.flash_type != "emmc" and flinfo.type != "emmc":
|
||||||
|
|
@ -1860,6 +1861,7 @@ class Pack(object):
|
||||||
global SRC_DIR
|
global SRC_DIR
|
||||||
global QCN9000
|
global QCN9000
|
||||||
global QCN9224
|
global QCN9224
|
||||||
|
global flash_size
|
||||||
|
|
||||||
soc_version = 0
|
soc_version = 0
|
||||||
diff_soc_ver_files = 0
|
diff_soc_ver_files = 0
|
||||||
|
|
@ -1880,7 +1882,7 @@ class Pack(object):
|
||||||
|
|
||||||
if (self.flash_type == "norplusemmc" and flinfo.type == "emmc") or (self.flash_type != "norplusemmc"):
|
if (self.flash_type == "norplusemmc" and flinfo.type == "emmc") or (self.flash_type != "norplusemmc"):
|
||||||
if flinfo.type == "emmc":
|
if flinfo.type == "emmc":
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition"+ flash_size +".xml"
|
||||||
rpart = ET.parse(srcDir_part)
|
rpart = ET.parse(srcDir_part)
|
||||||
parts = rpart.findall(".//physical_partition[@ref='emmc']/partition")
|
parts = rpart.findall(".//physical_partition[@ref='emmc']/partition")
|
||||||
for index in range(len(parts)):
|
for index in range(len(parts)):
|
||||||
|
|
@ -1893,9 +1895,9 @@ class Pack(object):
|
||||||
script.end()
|
script.end()
|
||||||
|
|
||||||
if self.flash_type == "norplusemmc" and flinfo.type == "emmc":
|
if self.flash_type == "norplusemmc" and flinfo.type == "emmc":
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition"+ flash_size +".xml"
|
||||||
else:
|
else:
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition.xml"
|
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + self.flash_type.lower() + "-partition"+ flash_size +".xml"
|
||||||
|
|
||||||
root_part = ET.parse(srcDir_part)
|
root_part = ET.parse(srcDir_part)
|
||||||
if self.flash_type != "emmc" and flinfo.type != "emmc":
|
if self.flash_type != "emmc" and flinfo.type != "emmc":
|
||||||
|
|
@ -2119,7 +2121,11 @@ class Pack(object):
|
||||||
# system-partition specific for AL+WAIKIKI
|
# system-partition specific for AL+WAIKIKI
|
||||||
if section_conf == "mibib" and QCN9224:
|
if section_conf == "mibib" and QCN9224:
|
||||||
img = section.find('img_name')
|
img = section.find('img_name')
|
||||||
|
if flash_size == "":
|
||||||
filename_qcn9224 = img.text[:-4] + "-qcn9224.bin"
|
filename_qcn9224 = img.text[:-4] + "-qcn9224.bin"
|
||||||
|
else:
|
||||||
|
filename_qcn9224 = img.text[:-9] + "-qcn9224"+ flash_size +".bin"
|
||||||
|
|
||||||
section_conf_qcn9224 = section_conf + "_qcn9224"
|
section_conf_qcn9224 = section_conf + "_qcn9224"
|
||||||
self.__gen_script_append_images(filename_qcn9224, soc_version, wifi_fw_type, images, flinfo, root, section_conf_qcn9224, partition)
|
self.__gen_script_append_images(filename_qcn9224, soc_version, wifi_fw_type, images, flinfo, root, section_conf_qcn9224, partition)
|
||||||
else:
|
else:
|
||||||
|
|
@ -2242,6 +2248,7 @@ class Pack(object):
|
||||||
global IF_QCN9000
|
global IF_QCN9000
|
||||||
global QCN9224
|
global QCN9224
|
||||||
global IF_QCN9224
|
global IF_QCN9224
|
||||||
|
global flash_size
|
||||||
|
|
||||||
"""Generate the flashing script for one board.
|
"""Generate the flashing script for one board.
|
||||||
|
|
||||||
|
|
@ -2276,9 +2283,6 @@ class Pack(object):
|
||||||
blocks_per_chip = int(flash_param.find(".//total_block").text)
|
blocks_per_chip = int(flash_param.find(".//total_block").text)
|
||||||
chipsize = blocks_per_chip * blocksize
|
chipsize = blocks_per_chip * blocksize
|
||||||
|
|
||||||
srcDir_part = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + flinfo.type + "-partition.xml"
|
|
||||||
root_part = ET.parse(srcDir_part)
|
|
||||||
|
|
||||||
if flinfo.type == "nand":
|
if flinfo.type == "nand":
|
||||||
script = Flash_Script(flinfo, self.ipq_nand)
|
script = Flash_Script(flinfo, self.ipq_nand)
|
||||||
elif flinfo.type == "nor":
|
elif flinfo.type == "nor":
|
||||||
|
|
@ -2290,7 +2294,7 @@ class Pack(object):
|
||||||
IF_QCN9000 = True
|
IF_QCN9000 = True
|
||||||
part_fname_qcn9000 = part_fname[:-4] + "-qcn9000.bin"
|
part_fname_qcn9000 = part_fname[:-4] + "-qcn9000.bin"
|
||||||
mibib_qcn9000 = MIBIB(part_fname_qcn9000, flinfo.pagesize, flinfo.blocksize,
|
mibib_qcn9000 = MIBIB(part_fname_qcn9000, flinfo.pagesize, flinfo.blocksize,
|
||||||
flinfo.chipsize, blocksize, chipsize, root_part)
|
flinfo.chipsize, blocksize, chipsize)
|
||||||
self.partitions = mibib_qcn9000.get_parts()
|
self.partitions = mibib_qcn9000.get_parts()
|
||||||
|
|
||||||
script.append('if test "$machid" = "801000e" || test "$machid" = "801010e" || test "$machid" = "8010012" || test "$machid" = "8010013" || test "$machid" = "8010500"; then\n', fatal=False)
|
script.append('if test "$machid" = "801000e" || test "$machid" = "801010e" || test "$machid" = "8010012" || test "$machid" = "8010013" || test "$machid" = "8010500"; then\n', fatal=False)
|
||||||
|
|
@ -2304,9 +2308,12 @@ class Pack(object):
|
||||||
# system-partition specific for ALDER+WAIKIKI
|
# system-partition specific for ALDER+WAIKIKI
|
||||||
if QCN9224:
|
if QCN9224:
|
||||||
IF_QCN9224 = True
|
IF_QCN9224 = True
|
||||||
|
if flash_size == "":
|
||||||
part_fname_qcn9224 = part_fname[:-4] + "-qcn9224.bin"
|
part_fname_qcn9224 = part_fname[:-4] + "-qcn9224.bin"
|
||||||
|
else:
|
||||||
|
part_fname_qcn9224 = part_fname[:-9] + "-qcn9224"+ flash_size +".bin"
|
||||||
mibib_qcn9224 = MIBIB(part_fname_qcn9224, flinfo.pagesize, flinfo.blocksize,
|
mibib_qcn9224 = MIBIB(part_fname_qcn9224, flinfo.pagesize, flinfo.blocksize,
|
||||||
flinfo.chipsize, blocksize, chipsize, root_part)
|
flinfo.chipsize, blocksize, chipsize)
|
||||||
self.partitions = mibib_qcn9224.get_parts()
|
self.partitions = mibib_qcn9224.get_parts()
|
||||||
|
|
||||||
script.append('if test "$machid" = "8050301" || test "$machid" = "8050501" || test "$machid" = "8050601" || test "$machid" = "8050701" || test "$machid" = "8050801" || test "$machid" = "8050901" || test "$machid" = "8050a01" || test "$machid" = "8050b01" || test "$machid" = "8050c01" || test "$machid" = "8050d01" || test "$machid" = "8050e01" || test "$machid" = "8050f01" || test "$machid" = "8051001" || test "$machid" = "0x8051101" || test "$machid" = "8051201" || test "$machid" = "8051301" || test "$machid" = "8050002" || test "$machid" = "8050102" || test "$machid" = "8050003" || test "$machid" = "8050004"; then\n', fatal=False)
|
script.append('if test "$machid" = "8050301" || test "$machid" = "8050501" || test "$machid" = "8050601" || test "$machid" = "8050701" || test "$machid" = "8050801" || test "$machid" = "8050901" || test "$machid" = "8050a01" || test "$machid" = "8050b01" || test "$machid" = "8050c01" || test "$machid" = "8050d01" || test "$machid" = "8050e01" || test "$machid" = "8050f01" || test "$machid" = "8051001" || test "$machid" = "0x8051101" || test "$machid" = "8051201" || test "$machid" = "8051301" || test "$machid" = "8050002" || test "$machid" = "8050102" || test "$machid" = "8050003" || test "$machid" = "8050004"; then\n', fatal=False)
|
||||||
|
|
@ -2319,7 +2326,7 @@ class Pack(object):
|
||||||
IF_QCN9224 = False
|
IF_QCN9224 = False
|
||||||
|
|
||||||
mibib = MIBIB(part_fname, flinfo.pagesize, flinfo.blocksize,
|
mibib = MIBIB(part_fname, flinfo.pagesize, flinfo.blocksize,
|
||||||
flinfo.chipsize, blocksize, chipsize, root_part)
|
flinfo.chipsize, blocksize, chipsize)
|
||||||
self.partitions = mibib.get_parts()
|
self.partitions = mibib.get_parts()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
@ -2411,6 +2418,7 @@ class Pack(object):
|
||||||
global MODE
|
global MODE
|
||||||
global QCN9000
|
global QCN9000
|
||||||
global QCN9224
|
global QCN9224
|
||||||
|
global flash_size
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if ftype == "tiny-nor" or ftype == "tiny-nor-debug":
|
if ftype == "tiny-nor" or ftype == "tiny-nor-debug":
|
||||||
|
|
@ -2438,7 +2446,7 @@ class Pack(object):
|
||||||
if ftype in ["nand-audio", "nand-audio-4k"]:
|
if ftype in ["nand-audio", "nand-audio-4k"]:
|
||||||
UBINIZE_CFG_NAME = ARCH_NAME + "-ubinize" + MODE_APPEND + "-audio.cfg"
|
UBINIZE_CFG_NAME = ARCH_NAME + "-ubinize" + MODE_APPEND + "-audio.cfg"
|
||||||
else:
|
else:
|
||||||
UBINIZE_CFG_NAME = ARCH_NAME + "-ubinize" + MODE_APPEND + ".cfg"
|
UBINIZE_CFG_NAME = ARCH_NAME + "-ubinize" + MODE_APPEND + flash_size + ".cfg"
|
||||||
|
|
||||||
f1 = open(SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + UBINIZE_CFG_NAME, 'r')
|
f1 = open(SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + UBINIZE_CFG_NAME, 'r')
|
||||||
UBINIZE_CFG_NAME = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/tmp-" + UBINIZE_CFG_NAME
|
UBINIZE_CFG_NAME = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/tmp-" + UBINIZE_CFG_NAME
|
||||||
|
|
@ -2448,7 +2456,7 @@ class Pack(object):
|
||||||
f1.close()
|
f1.close()
|
||||||
f2.close()
|
f2.close()
|
||||||
|
|
||||||
part_file = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + ftype + "-partition.xml"
|
part_file = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + ftype + "-partition" + flash_size + ".xml"
|
||||||
parts = ET.parse(part_file).findall('.//partitions/partition')
|
parts = ET.parse(part_file).findall('.//partitions/partition')
|
||||||
for index in range(len(parts)):
|
for index in range(len(parts)):
|
||||||
section = parts[index]
|
section = parts[index]
|
||||||
|
|
@ -2476,7 +2484,7 @@ class Pack(object):
|
||||||
if ret != 0:
|
if ret != 0:
|
||||||
error("ubi image copy operation failed")
|
error("ubi image copy operation failed")
|
||||||
|
|
||||||
part_file = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + ftype + "-partition.xml"
|
part_file = SRC_DIR + "/" + ARCH_NAME + "/flash_partition/" + ftype + "-partition" + flash_size + ".xml"
|
||||||
part_xml = ET.parse(part_file)
|
part_xml = ET.parse(part_file)
|
||||||
if (part_xml.find(".//partitions/partition[name='0:MIBIB']")):
|
if (part_xml.find(".//partitions/partition[name='0:MIBIB']")):
|
||||||
partition = part_xml.find(".//partitions/partition[name='0:MIBIB']")
|
partition = part_xml.find(".//partitions/partition[name='0:MIBIB']")
|
||||||
|
|
@ -2581,6 +2589,8 @@ class ArgParser(object):
|
||||||
global atf
|
global atf
|
||||||
global skip_4k_nand
|
global skip_4k_nand
|
||||||
global multi_wifi_fw
|
global multi_wifi_fw
|
||||||
|
global flash_size
|
||||||
|
flash_size = ""
|
||||||
|
|
||||||
"""Start the parsing process, and populate members with parsed value.
|
"""Start the parsing process, and populate members with parsed value.
|
||||||
|
|
||||||
|
|
@ -2590,7 +2600,7 @@ class ArgParser(object):
|
||||||
cdir = os.path.abspath(os.path.dirname(""))
|
cdir = os.path.abspath(os.path.dirname(""))
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 1:
|
||||||
try:
|
try:
|
||||||
opts, args = getopt(sys.argv[1:], "", ["arch=", "fltype=", "srcPath=", "inImage=", "outImage=", "image_type=", "memory=", "lk", "skip_4k_nand", "atf", "qcn6122", "multi_wifi_fw"])
|
opts, args = getopt(sys.argv[1:], "", ["arch=", "fltype=", "srcPath=", "inImage=", "outImage=", "image_type=", "memory=", "lk", "skip_4k_nand", "atf", "qcn6122", "multi_wifi_fw", "flash_size="])
|
||||||
except GetoptError as e:
|
except GetoptError as e:
|
||||||
raise UsageError(e.msg)
|
raise UsageError(e.msg)
|
||||||
|
|
||||||
|
|
@ -2631,6 +2641,9 @@ class ArgParser(object):
|
||||||
elif option == "--multi_wifi_fw":
|
elif option == "--multi_wifi_fw":
|
||||||
multi_wifi_fw = "true"
|
multi_wifi_fw = "true"
|
||||||
|
|
||||||
|
elif option == "--flash_size":
|
||||||
|
flash_size = "-" + value
|
||||||
|
|
||||||
#Verify Arguments passed by user
|
#Verify Arguments passed by user
|
||||||
|
|
||||||
# Verify arch type
|
# Verify arch type
|
||||||
|
|
@ -2695,6 +2708,7 @@ class ArgParser(object):
|
||||||
print(" \t\tIf specified, CDTs created with specified memory size will be used for single-image.\n")
|
print(" \t\tIf specified, CDTs created with specified memory size will be used for single-image.\n")
|
||||||
print()
|
print()
|
||||||
print(" --lk \t\tReplace u-boot with lkboot for appsbl")
|
print(" --lk \t\tReplace u-boot with lkboot for appsbl")
|
||||||
|
print(" --flash_size \tFlash size")
|
||||||
print(" --atf \t\tReplace tz with atf for QSEE partition")
|
print(" --atf \t\tReplace tz with atf for QSEE partition")
|
||||||
print(" --skip_4k_nand \tskip generating 4k nand images")
|
print(" --skip_4k_nand \tskip generating 4k nand images")
|
||||||
print(" \t\tThis Argument does not take any value")
|
print(" \t\tThis Argument does not take any value")
|
||||||
|
|
@ -2782,6 +2796,8 @@ def main():
|
||||||
"""
|
"""
|
||||||
|
|
||||||
global tiny_16m
|
global tiny_16m
|
||||||
|
global flash_size
|
||||||
|
|
||||||
try:
|
try:
|
||||||
parser = ArgParser()
|
parser = ArgParser()
|
||||||
parser.parse(sys.argv)
|
parser.parse(sys.argv)
|
||||||
|
|
@ -2799,12 +2815,12 @@ def main():
|
||||||
|
|
||||||
if skip_4k_nand != "true":
|
if skip_4k_nand != "true":
|
||||||
# Add nand-4k flash type, if nand flash type is specified
|
# Add nand-4k flash type, if nand flash type is specified
|
||||||
if "nand" in parser.flash_type.split(","):
|
if "nand" in parser.flash_type.split(",") and flash_size == "":
|
||||||
if root.find(".//data[@type='NAND_PARAMETER']/entry") != None:
|
if root.find(".//data[@type='NAND_PARAMETER']/entry") != None:
|
||||||
parser.flash_type = parser.flash_type + ",nand-4k"
|
parser.flash_type = parser.flash_type + ",nand-4k"
|
||||||
|
|
||||||
# Add norplusnand-4k flash type, if norplusnand flash type is specified
|
# Add norplusnand-4k flash type, if norplusnand flash type is specified
|
||||||
if "norplusnand" in parser.flash_type.split(","):
|
if "norplusnand" in parser.flash_type.split(",") and flash_size == "":
|
||||||
if root.find(".//data[@type='NAND_PARAMETER']/entry") != None:
|
if root.find(".//data[@type='NAND_PARAMETER']/entry") != None:
|
||||||
parser.flash_type = parser.flash_type + ",norplusnand-4k"
|
parser.flash_type = parser.flash_type + ",norplusnand-4k"
|
||||||
|
|
||||||
|
|
@ -2818,16 +2834,16 @@ def main():
|
||||||
|
|
||||||
if image_type == "hlos":
|
if image_type == "hlos":
|
||||||
if MODE == "64":
|
if MODE == "64":
|
||||||
parser.out_fname = flash_type + "-" + ARCH_NAME + "_" + MODE + "-apps.img"
|
parser.out_fname = flash_type + "-" + ARCH_NAME + "_" + MODE + "-apps" + flash_size + ".img"
|
||||||
else:
|
else:
|
||||||
parser.out_fname = flash_type + "-" + ARCH_NAME + "-apps.img"
|
parser.out_fname = flash_type + "-" + ARCH_NAME + "-apps" + flash_size + ".img"
|
||||||
else:
|
else:
|
||||||
if flash_type == "emmc" and lk == "true":
|
if flash_type == "emmc" and lk == "true":
|
||||||
suffix = "-single-lkboot.img"
|
suffix = "-single-lkboot.img"
|
||||||
gen_kernelboot_img(parser)
|
gen_kernelboot_img(parser)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
suffix = "-single.img"
|
suffix = "-single" + flash_size + ".img"
|
||||||
|
|
||||||
if MODE == "64":
|
if MODE == "64":
|
||||||
parser.out_fname = flash_type + "-" + ARCH_NAME + "_" + MODE + suffix
|
parser.out_fname = flash_type + "-" + ARCH_NAME + "_" + MODE + suffix
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue