Lines Matching refs:args
70 def check_sp_mk_gen(args :dict):
71 if "sp_gen_mk" not in args.keys():
74 def check_out_dir(args :dict):
75 if "out_dir" not in args.keys() or not os.path.isdir(args["out_dir"]):
78 def check_sp_layout_dir(args :dict):
79 if "sp_layout_dir" not in args.keys() or not os.path.isdir(args["sp_layout_dir"]):
82 def write_to_sp_mk_gen(content, args :dict):
83 check_sp_mk_gen(args)
84 with open(args["sp_gen_mk"], "a") as f:
87 def get_sp_manifest_full_path(sp_node, args :dict):
88 check_sp_layout_dir(args)
89 return os.path.join(args["sp_layout_dir"], get_file_from_layout(sp_node["pm"]))
91 def get_sp_img_full_path(sp_node, args :dict):
92 check_sp_layout_dir(args)
93 return os.path.join(args["sp_layout_dir"], get_file_from_layout(sp_node["image"]))
108 def get_sp_pkg(sp, args :dict):
109 check_out_dir(args)
110 return os.path.join(args["out_dir"], f"{sp}.pkg")
112 def is_line_in_sp_gen(line, args :dict):
113 with open(args["sp_gen_mk"], "r") as f:
137 def get_uuid(sp_layout, sp, args :dict):
143 with open(get_sp_manifest_full_path(sp_layout[sp], args), "r") as pm_f:
156 def get_load_address(sp_layout, sp, args :dict):
158 with open(get_sp_manifest_full_path(sp_layout[sp], args), "r") as pm_f:
168 def check_max_sps(sp_layout, _, args :dict):
172 return args
175 def count_sps(sp_layout, _, args :dict):
177 write_to_sp_mk_gen(f"$(eval $(call add_define_val,NUM_SP,{len(sp_layout.keys())}))", args)
178 return args
181 def gen_fdt_sources(sp_layout, sp, args :dict):
183 manifest_path = get_sp_manifest_full_path(sp_layout[sp], args)
184 write_to_sp_mk_gen(f"FDT_SOURCES += {manifest_path}", args)
185 return args
188 def generate_hob_list(sp_layout, sp, args: dict):
193 with open(get_sp_manifest_full_path(sp_layout[sp], args), "r") as f:
198 sp_hob_name = os.path.join(args["out_dir"], f"{sp_hob_name}")
207 return args
240 def gen_partition_pkg(sp_layout, sp, args :dict):
242 pkg = get_sp_pkg(sp, args)
245 sp_dtb = os.path.join(args["out_dir"], f"fdts/{sp_dtb_name}")
246 sp_img = get_sp_img_full_path(sp_layout[sp], args)
249 if is_line_in_sp_gen(f'{pkg}:', args):
250 return args
253 write_to_sp_mk_gen(f"SP_PKGS += {pkg}\n", args)
266 write_to_sp_mk_gen(partition_pkg_rule, args)
267 return args
270 def check_dualroot(sp_layout, _, args :dict):
272 if not args.get("dualroot"):
273 return args
274 args["split"] = int(MAX_SP / 2)
276 args["plat_max_count"] = owners.count("Plat")
279 args["sip_max_count"] = len(sp_layout.keys()) - args["plat_max_count"]
280 if args["sip_max_count"] > args["split"] or args["sip_max_count"] > args["split"]:
283 args["sip_count"] = 1
284 args["plat_count"] = 1
285 return args
288 def gen_crt_args(sp_layout, sp, args :dict):
292 if args.get("dualroot"):
295 if args["plat_count"] > args["plat_max_count"]:
297 sp_pkg_idx = args["plat_count"] + args["split"]
298 args["plat_count"] += 1
300 if args["sip_count"] > args["sip_max_count"]:
302 sp_pkg_idx = args["sip_count"]
303 args["sip_count"] += 1
306 write_to_sp_mk_gen(f"CRT_ARGS += --sp-pkg{sp_pkg_idx} {get_sp_pkg(sp, args)}\n", args)
307 return args
310 def gen_fiptool_args(sp_layout, sp, args :dict):
312 uuid_std = get_uuid(sp_layout, sp, args)
313 … write_to_sp_mk_gen(f"FIP_ARGS += --blob uuid={str(uuid_std)},file={get_sp_pkg(sp, args)}\n", args)
314 return args
317 def gen_fconf_fragment(sp_layout, sp, args: dict):
319 with open(args["fconf_fragment"], "a") as f:
320 uuid = get_uuid(sp_layout, sp, args)
326 load_address = get_load_address(sp_layout, sp, args)
341 return args
345 args = {}
346 args["sp_gen_mk"] = os.path.abspath(sys.argv[1])
348 args["sp_layout_dir"] = os.path.dirname(sp_layout_file)
349 args["out_dir"] = os.path.abspath(sys.argv[3])
350 args["dualroot"] = sys.argv[4] == "dualroot"
351 args["fconf_fragment"] = os.path.abspath(sys.argv[5])
357 with open(args["sp_gen_mk"], "w"):
360 with open(args["fconf_fragment"], "w"):
363 return args, sp_layout
366 args, sp_layout = init_sp_actions(sys) variable
367 SpSetupActions.run_actions(sp_layout, args)