Merge pull request #195 from antmicro/extend_generated_headers

Extend generated headers & csv
This commit is contained in:
enjoy-digital 2019-06-05 19:20:15 +02:00 committed by GitHub
commit 77805a5e26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -58,6 +58,7 @@ class Builder:
cpu_type = self.soc.cpu_type cpu_type = self.soc.cpu_type
memory_regions = self.soc.get_memory_regions() memory_regions = self.soc.get_memory_regions()
flash_boot_address = getattr(self.soc, "flash_boot_address", None) flash_boot_address = getattr(self.soc, "flash_boot_address", None)
shadow_base = getattr(self.soc, "shadow_base", None)
csr_regions = self.soc.get_csr_regions() csr_regions = self.soc.get_csr_regions()
constants = self.soc.get_constants() constants = self.soc.get_constants()
@ -102,7 +103,7 @@ class Builder:
write_to_file( write_to_file(
os.path.join(generated_dir, "mem.h"), os.path.join(generated_dir, "mem.h"),
cpu_interface.get_mem_header(memory_regions, flash_boot_address)) cpu_interface.get_mem_header(memory_regions, flash_boot_address, shadow_base))
write_to_file( write_to_file(
os.path.join(generated_dir, "csr.h"), os.path.join(generated_dir, "csr.h"),
cpu_interface.get_csr_header(csr_regions, constants)) cpu_interface.get_csr_header(csr_regions, constants))
@ -120,6 +121,14 @@ class Builder:
csr_regions = self.soc.get_csr_regions() csr_regions = self.soc.get_csr_regions()
constants = self.soc.get_constants() constants = self.soc.get_constants()
shadow_base = getattr(self.soc, "shadow_base", None)
if shadow_base:
constants.append(('shadow_base', shadow_base))
flash_boot_address = getattr(self.soc, "flash_boot_address", None)
if flash_boot_address:
constants.append(('flash_boot_address', flash_boot_address))
csr_dir = os.path.dirname(os.path.realpath(self.csr_csv)) csr_dir = os.path.dirname(os.path.realpath(self.csr_csv))
os.makedirs(csr_dir, exist_ok=True) os.makedirs(csr_dir, exist_ok=True)
write_to_file( write_to_file(

View File

@ -70,13 +70,15 @@ def get_linker_regions(regions):
return r return r
def get_mem_header(regions, flash_boot_address): def get_mem_header(regions, flash_boot_address, shadow_base):
r = generated_banner("//") r = generated_banner("//")
r += "#ifndef __GENERATED_MEM_H\n#define __GENERATED_MEM_H\n\n" r += "#ifndef __GENERATED_MEM_H\n#define __GENERATED_MEM_H\n\n"
for name, base, size in regions: for name, base, size in regions:
r += "#define {name}_BASE 0x{base:08x}L\n#define {name}_SIZE 0x{size:08x}\n\n".format(name=name.upper(), base=base, size=size) r += "#define {name}_BASE 0x{base:08x}L\n#define {name}_SIZE 0x{size:08x}\n\n".format(name=name.upper(), base=base, size=size)
if flash_boot_address is not None: if flash_boot_address is not None:
r += "#define FLASH_BOOT_ADDRESS 0x{:08x}L\n\n".format(flash_boot_address) r += "#define FLASH_BOOT_ADDRESS 0x{:08x}L\n\n".format(flash_boot_address)
if shadow_base is not None:
r += "#define SHADOW_BASE 0x{:08x}L\n\n".format(shadow_base)
r += "#endif\n" r += "#endif\n"
return r return r