[build] add cvitek build scripts
Change-Id: If63ce4a669e5d4d72b8e3b9253336dd99bf74c30
This commit is contained in:
115
build/tools/common/image_tool/alios/mkcvipart_alios.py
Normal file
115
build/tools/common/image_tool/alios/mkcvipart_alios.py
Normal file
@ -0,0 +1,115 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
class partition:
|
||||
name = ""
|
||||
addr = ""
|
||||
size = ""
|
||||
filename = ""
|
||||
|
||||
def __init__(self, name, addr, size):
|
||||
self.name = name
|
||||
self.addr = addr
|
||||
self.size = size
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser(description="Create cvipart.h")
|
||||
parser.add_argument("part_table", help="path to partition xml")
|
||||
parser.add_argument("output", help="output folder")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
return args
|
||||
|
||||
|
||||
def gen_cvipart_h(output, part_list):
|
||||
logging.info("generating cvipart.h")
|
||||
with open(os.path.join(output, "cvipart.h"), "w") as of:
|
||||
of.write("/* this file should be generated by mkcvipart.py,")
|
||||
of.write("please do not modify this file manually*/\n\n")
|
||||
of.write("#ifndef CVIPART_H\n")
|
||||
of.write("#define CVIPART_H\n")
|
||||
env_exist = True
|
||||
|
||||
# If no ENV or U-BOOT ENV has been set in partition.xml, we assume
|
||||
# there is no env support
|
||||
of.write("#ifndef CONFIG_ENV_IS_NOWHERE\n#define CONFIG_ENV_IS_NOWHERE\n#endif\n")
|
||||
of.write("#define CONFIG_ENV_SIZE 0x20000\n")
|
||||
env_exist = False
|
||||
|
||||
if env_exist:
|
||||
of.write("#define CONFIG_ENV_IS_IN_SPI_FLASH\n")
|
||||
of.write("#define CONFIG_ENV_SECT_SIZE 0x10000\n")
|
||||
# Generintg MTDPART
|
||||
of.write("#define PART_LAYOUT ")
|
||||
of.write('"mtdparts=10000000.cvi-spif:"\n')
|
||||
of.write('#define ROOTFS_DEV ""\n')
|
||||
|
||||
# Generintg PART_ENV
|
||||
of.write("#define PARTS_OFFSET \\\n")
|
||||
for i, p in enumerate(part_list):
|
||||
of.write('"%s_PART_OFFSET=%s\\0" \\\n' % (p.name, p.addr))
|
||||
if i == len(part_list) - 1:
|
||||
of.write(
|
||||
'"%s_PART_SIZE=%s\\0"\n'
|
||||
% (p.name, p.size)
|
||||
)
|
||||
else:
|
||||
of.write(
|
||||
'"%s_PART_SIZE=%s\\0" \\\n'
|
||||
% (p.name, p.size)
|
||||
)
|
||||
|
||||
of.write("#endif")
|
||||
logging.info("Done!")
|
||||
|
||||
|
||||
def get_part(str_list):
|
||||
name = addr = size = ""
|
||||
str = ''.join(str_list).replace(" ", "")
|
||||
kv_list = str.split(",")
|
||||
for i in kv_list:
|
||||
key = i.split(":")[0]
|
||||
val = i.split(":")[1]
|
||||
if(key == "name"):
|
||||
name = val
|
||||
elif(key == "address"):
|
||||
addr = val
|
||||
elif(key == "size"):
|
||||
size = val
|
||||
|
||||
part = partition(name, addr, size)
|
||||
|
||||
return part
|
||||
|
||||
|
||||
def parse_part_table(file):
|
||||
part_list = []
|
||||
fp = open(file, "r")
|
||||
sample = fp.readlines()
|
||||
p = re.compile(r'[{](.*?)[}]', re.S)
|
||||
for i in sample:
|
||||
if "-" in i:
|
||||
str_list = re.findall(p, i)
|
||||
partition = get_part(str_list)
|
||||
part_list.append(partition)
|
||||
fp.close()
|
||||
|
||||
return part_list
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
part_list = parse_part_table(args.part_table)
|
||||
|
||||
gen_cvipart_h(args.output, part_list)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user