soc/integration/export: add optional csr_base parameter.
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 27 May 2020 17:59:54 +0000 (19:59 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 27 May 2020 17:59:54 +0000 (19:59 +0200)
litex/soc/integration/export.py

index adb6244a9bcfe427d94c24cbbbdcd80439407180..ed827ed5a7e49d6c1e6d02377a3709cd5ed349cb 100644 (file)
@@ -190,7 +190,7 @@ def _get_rw_functions_c(reg_name, reg_base, nwords, busword, alignment, read_onl
     return r
 
 
-def get_csr_header(regions, constants, with_access_functions=True):
+def get_csr_header(regions, constants, csr_base=None, with_access_functions=True):
     alignment = constants.get("CONFIG_CSR_ALIGNMENT", 32)
     r = generated_banner("//")
     if with_access_functions: # FIXME
@@ -202,7 +202,7 @@ def get_csr_header(regions, constants, with_access_functions=True):
         r += "#ifndef CSR_ACCESSORS_DEFINED\n"
         r += "#include <hw/common.h>\n"
         r += "#endif /* ! CSR_ACCESSORS_DEFINED */\n"
-    csr_base = regions[next(iter(regions))].origin
+    csr_base = csr_base if csr_base is not None else regions[next(iter(regions))].origin
     r += "#ifndef CSR_BASE\n"
     r += "#define CSR_BASE {}L\n".format(hex(csr_base))
     r += "#endif\n"