From: Florent Kermarrec Date: Tue, 11 Feb 2020 13:17:32 +0000 (+0100) Subject: soc: fix cpu_reset_address X-Git-Tag: 24jan2021_ls180~677^2~11 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=91e2797bb48aa9f10385e34a4d04855b77244531;p=litex.git soc: fix cpu_reset_address --- diff --git a/litex/soc/integration/soc.py b/litex/soc/integration/soc.py index 9b63f997..9555a4d9 100755 --- a/litex/soc/integration/soc.py +++ b/litex/soc/integration/soc.py @@ -734,8 +734,14 @@ class SoC(Module): raise # Add CPU self.submodules.cpu = cpu.CPUS[name](self.platform, variant) + # Update SoC with CPU constraints + for n, (origin, size) in enumerate(self.cpu.io_regions.items()): + self.bus.add_region("io{}".format(n), SoCIORegion(origin=origin, size=size, cached=False)) + self.mem_map.update(self.cpu.mem_map) # FIXME # Add Bus Masters/CSR/IRQs if not isinstance(self.cpu, cpu.CPUNone): + if reset_address is None: + reset_address = self.mem_map["rom"] self.cpu.set_reset_address(reset_address) for n, cpu_bus in enumerate(self.cpu.buses): self.bus.add_master(name="cpu_bus{}".format(n), master=cpu_bus) @@ -745,10 +751,6 @@ class SoC(Module): if hasattr(self, "ctrl"): self.comb += self.cpu.reset.eq(self.ctrl.reset) self.add_config("CPU_RESET_ADDR", reset_address) - # Update SoC with CPU constraints - for n, (origin, size) in enumerate(self.cpu.io_regions.items()): - self.bus.add_region("io{}".format(n), SoCIORegion(origin=origin, size=size, cached=False)) - self.mem_map.update(self.cpu.mem_map) # FIXME # Add constants self.add_config("CPU_TYPE", str(name)) self.add_config("CPU_VARIANT", str(variant.split('+')[0])) diff --git a/litex/soc/integration/soc_core.py b/litex/soc/integration/soc_core.py index 6106dedf..16c58bfb 100644 --- a/litex/soc/integration/soc_core.py +++ b/litex/soc/integration/soc_core.py @@ -149,7 +149,7 @@ class SoCCore(LiteXSoC): self.add_cpu( name = str(cpu_type), variant = "standard" if cpu_variant is None else cpu_variant, - reset_address = self.mem_map["rom"] if integrated_rom_size else cpu_reset_address) + reset_address = None if integrated_rom_size else cpu_reset_address) # Add User's interrupts for name, loc in self.interrupt_map.items():