integration/builder: When the CPU is "None", we used to not generate any code.

With this change, we will now generate csr.h and sdram_phy.h, which
will be needed by the initialization code running on the host CPU.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Benjamin Herrenschmidt 2019-09-23 08:30:01 +02:00 committed by Florent Kermarrec
parent 8b7d8217a0
commit f909e4d706
1 changed files with 21 additions and 1 deletions

View File

@ -129,6 +129,24 @@ class Builder:
self.soc.sdram.controller.settings.phy,
self.soc.sdram.controller.settings.timing))
def _generate_standalone_includes(self):
buildinc_dir = os.path.join(self.output_dir, "software", "include")
generated_dir = os.path.join(buildinc_dir, "generated")
csr_regions = self.soc.get_csr_regions()
constants = self.soc.get_constants()
os.makedirs(generated_dir, exist_ok=True)
write_to_file(
os.path.join(generated_dir, "csr.h"),
cpu_interface.get_csr_header(csr_regions, constants))
if isinstance(self.soc, soc_sdram.SoCSDRAM):
if hasattr(self.soc, "sdram"):
write_to_file(
os.path.join(generated_dir, "sdram_phy.h"),
get_sdram_phy_c_header(
self.soc.sdram.controller.settings.phy,
self.soc.sdram.controller.settings.timing))
def _generate_csr_map(self, csr_json=None, csr_csv=None):
memory_regions = self.soc.get_memory_regions()
csr_regions = self.soc.get_csr_regions()
@ -177,7 +195,9 @@ class Builder:
os.makedirs(self.output_dir, exist_ok=True)
if self.soc.cpu_type is not None:
if self.soc.cpu_type is None:
self._generate_standalone_includes()
else:
self._prepare_software()
self._generate_includes()
self._generate_software(not self.soc.integrated_rom_initialized)