Sfoglia il codice sorgente

tools: generate hardware configuration with SOC/Board information

Signed-off-by: Huaqi Fang <578567190@qq.com>
Huaqi Fang 3 anni fa
parent
commit
cd2bbe10db

+ 11 - 3
tools/scripts/nsdk_cli/nsdk_runcpu.py

@@ -46,6 +46,15 @@ def gen_runner_configs(casedir, caseconfig, genloc):
         print("No core is specified, please check!")
         return False
     core = caseconfig["core"]
+    ocdcfg = caseconfig.get("ocdcfg", "SoC/demosoc/Board/nuclei_fpga_eval/openocd_demosoc.cfg")
+    defbldcfg = dict()
+    try:
+        pathkeys = ocdcfg.replace("\\","/").split("/")
+        defbldcfg = {"SOC": pathkeys[1], "BOARD": pathkeys[3]}
+    except:
+        defbldcfg = {"SOC": "demosoc"}
+    # get build_config from caseconfig
+    glbldcfg = caseconfig.get("build_config", dict())
     runcfg = os.path.join(casedir, "%s.json" % (core))
     appcfg = os.path.join(casedir, "app.json")
     cfgcfg = os.path.join(casedir, "config.json")
@@ -59,9 +68,9 @@ def gen_runner_configs(casedir, caseconfig, genloc):
 
     # if specified user own cpu config use it
     if caseconfig.get("cpucfg", None):
-        runcfgdict = gen_runcfg(caseconfig.get("cpucfg"), runcfg)
+        runcfgdict = gen_runcfg(caseconfig.get("cpucfg"), runcfg, glbldcfg)
     else:
-        runcfgdict = gen_coreruncfg(core, runcfg, choice)
+        runcfgdict = gen_coreruncfg(core, runcfg, choice, glbldcfg)
 
     caseconfig["gencfgtimestamp"] = str(datetime.datetime.now())
     # save casecfg.json/app.json/hw.json
@@ -86,7 +95,6 @@ def gen_runner_configs(casedir, caseconfig, genloc):
             boardtype = btype
             break
     boardtype = caseconfig.get("boardtype", boardtype)
-    ocdcfg = caseconfig.get("ocdcfg", "SoC/demosoc/Board/nuclei_fpga_eval/openocd_demosoc.cfg")
     appcfg = "app.json"
     hwcfg = "hw.json"
 

+ 5 - 3
tools/scripts/nsdk_cli/nsdk_utils.py

@@ -1043,7 +1043,7 @@ def modify_openocd_cfg(cfg, ftdi_serial):
     return True
 
 GL_CPUCFGs = os.path.join(SCRIPT_DIR,  "configs", "cpu")
-def gen_runcfg(cpucfg, runcfg):
+def gen_runcfg(cpucfg, runcfg, buildconfig=dict())):
     _, cpucfgdict = load_json(cpucfg)
     _, runcfgdict = load_json(runcfg)
     if cpucfgdict is None:
@@ -1053,6 +1053,8 @@ def gen_runcfg(cpucfg, runcfg):
     matrixcfgs = runcfgdict.get("matrix", None)
     expectedcfg = runcfgdict.get("expected", dict())
     finalruncfg = copy.deepcopy(cpucfgdict)
+    # merge buildconfig
+    finalruncfg["build_config"] = merge_two_config(finalruncfg.get("build_config", dict()), buildconfig)
     finalruncfg["expected"] = merge_two_config(finalruncfg.get("expected", dict()), expectedcfg)
     if matrixcfgs is None:
         return finalruncfg
@@ -1068,9 +1070,9 @@ def gen_runcfg(cpucfg, runcfg):
         finalruncfg["build_configs"] = bcfgs
     return finalruncfg
 
-def gen_coreruncfg(core, runcfg, choice="mini"):
+def gen_coreruncfg(core, runcfg, choice="mini", buildconfig=dict()):
     cpucfg = os.path.join(GL_CPUCFGs, choice, "%s.json" % (core))
-    return gen_runcfg(cpucfg, runcfg)
+    return gen_runcfg(cpucfg, runcfg, buildconfig)
 
 def gen_runyaml(core, locs, fpga_serial, ftdi_serial, cycm, fpgabit, boardtype, ocdcfg, appcfg, hwcfg):
     runyaml = { "runcfg": {"runner": "fpga"},