cores-swerv-el2/soc/swerv_config_gen.py

42 lines
1.3 KiB
Python
Raw Normal View History

2022-03-07 21:08:10 +08:00
#!/usr/bin/env python3
from fusesoc.capi2.generator import Generator
import os
import subprocess
import sys
class SwervConfigGenerator(Generator):
def run(self):
script_root = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
files = [
{"common_defines.vh" : {
"copyto" : "config/common_defines.vh",
"file_type" : "systemVerilogSource"}},
{"el2_pdef.vh" : {
"copyto" : "config/el2_pdef.vh",
"file_type" : "systemVerilogSource"}},
{"el2_param.vh" : {
"is_include_file" : True,
"file_type" : "systemVerilogSource"}},
{"pic_map_auto.h" : {
"is_include_file" : True,
"file_type" : "systemVerilogSource"}}]
env = os.environ.copy()
env['RV_ROOT'] = script_root
env['BUILD_PATH'] = os.getcwd()
args = ['configs/swerv.config'] + self.config.get('args', [])
rc = subprocess.call(args, cwd=script_root, env=env, stdout=subprocess.DEVNULL)
if rc:
exit(1)
filenames = []
for f in files:
for k in f:
filenames.append(k)
self.add_files(files)
g = SwervConfigGenerator()
g.run()
g.write()