soc/compat: Fix add_wb_slave compatibility that was no longer working correclty since finalization order changes.
We should really remove this compatibility layer, but let's wait a bit to make sure all designs are converted.
This commit is contained in:
parent
4a740651f0
commit
877dff8a09
|
@ -75,8 +75,7 @@ class SoCCoreCompat:
|
||||||
|
|
||||||
# Finalization ---------------------------------------------------------------------------------
|
# Finalization ---------------------------------------------------------------------------------
|
||||||
|
|
||||||
def do_finalize(self):
|
def finalize_wb_slaves(self):
|
||||||
# Retro-compatibility
|
|
||||||
for address, interface in self.wb_slaves.items():
|
for address, interface in self.wb_slaves.items():
|
||||||
wb_name = None
|
wb_name = None
|
||||||
for name, region in self.bus.regions.items():
|
for name, region in self.bus.regions.items():
|
||||||
|
@ -84,8 +83,8 @@ class SoCCoreCompat:
|
||||||
wb_name = name
|
wb_name = name
|
||||||
break
|
break
|
||||||
self.bus.add_slave(name=wb_name, slave=interface)
|
self.bus.add_slave(name=wb_name, slave=interface)
|
||||||
SoC.do_finalize(self)
|
|
||||||
# Retro-compatibility
|
def finalize_csr_regions(self):
|
||||||
for region in self.bus.regions.values():
|
for region in self.bus.regions.values():
|
||||||
region.length = region.size
|
region.length = region.size
|
||||||
region.type = "cached" if region.cached else "io"
|
region.type = "cached" if region.cached else "io"
|
||||||
|
|
|
@ -20,6 +20,8 @@ from litex.gen import colorer
|
||||||
from litex.gen import LiteXModule
|
from litex.gen import LiteXModule
|
||||||
from litex.gen.fhdl.hierarchy import LiteXHierarchyExplorer
|
from litex.gen.fhdl.hierarchy import LiteXHierarchyExplorer
|
||||||
|
|
||||||
|
from litex.compat.soc_core import *
|
||||||
|
|
||||||
from litex.soc.cores import cpu
|
from litex.soc.cores import cpu
|
||||||
|
|
||||||
from litex.soc.interconnect.csr import *
|
from litex.soc.interconnect.csr import *
|
||||||
|
@ -809,7 +811,7 @@ class SoCController(LiteXModule):
|
||||||
|
|
||||||
# SoC ----------------------------------------------------------------------------------------------
|
# SoC ----------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class SoC(LiteXModule):
|
class SoC(LiteXModule, SoCCoreCompat):
|
||||||
mem_map = {}
|
mem_map = {}
|
||||||
def __init__(self, platform, sys_clk_freq,
|
def __init__(self, platform, sys_clk_freq,
|
||||||
bus_standard = "wishbone",
|
bus_standard = "wishbone",
|
||||||
|
@ -1147,6 +1149,8 @@ class SoC(LiteXModule):
|
||||||
def finalize(self):
|
def finalize(self):
|
||||||
if self.finalized:
|
if self.finalized:
|
||||||
return
|
return
|
||||||
|
# Compat -----------------------------------------------------------------------------------
|
||||||
|
SoCCoreCompat.finalize_wb_slaves(self) # FIXME: Deprecate compat and remove.
|
||||||
|
|
||||||
# SoC Reset --------------------------------------------------------------------------------
|
# SoC Reset --------------------------------------------------------------------------------
|
||||||
# Connect soc_rst to CRG's rst if present.
|
# Connect soc_rst to CRG's rst if present.
|
||||||
|
@ -1277,6 +1281,9 @@ class SoC(LiteXModule):
|
||||||
# Finalize submodules ----------------------------------------------------------------------
|
# Finalize submodules ----------------------------------------------------------------------
|
||||||
Module.finalize(self)
|
Module.finalize(self)
|
||||||
|
|
||||||
|
# Compat -----------------------------------------------------------------------------------
|
||||||
|
SoCCoreCompat.finalize_csr_regions(self) # FIXME: Deprecate compat and remove.
|
||||||
|
|
||||||
# SoC Hierarchy ----------------------------------------------------------------------------
|
# SoC Hierarchy ----------------------------------------------------------------------------
|
||||||
self.logger.info(colorer("-"*80, color="bright"))
|
self.logger.info(colorer("-"*80, color="bright"))
|
||||||
self.logger.info(colorer("SoC Hierarchy:"))
|
self.logger.info(colorer("SoC Hierarchy:"))
|
||||||
|
|
|
@ -41,7 +41,7 @@ __all__ = [
|
||||||
|
|
||||||
# SoCCore ------------------------------------------------------------------------------------------
|
# SoCCore ------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class SoCCore(LiteXSoC, SoCCoreCompat):
|
class SoCCore(LiteXSoC):
|
||||||
# Default register/interrupt/memory mappings (can be redefined by user)
|
# Default register/interrupt/memory mappings (can be redefined by user)
|
||||||
csr_map = {}
|
csr_map = {}
|
||||||
interrupt_map = {}
|
interrupt_map = {}
|
||||||
|
@ -247,9 +247,6 @@ class SoCCore(LiteXSoC, SoCCoreCompat):
|
||||||
def add_csr_region(self, name, origin, busword, obj):
|
def add_csr_region(self, name, origin, busword, obj):
|
||||||
self.csr_regions[name] = SoCCSRRegion(origin, busword, obj)
|
self.csr_regions[name] = SoCCSRRegion(origin, busword, obj)
|
||||||
|
|
||||||
def do_finalize(self):
|
|
||||||
SoCCoreCompat.do_finalize(self)
|
|
||||||
|
|
||||||
# SoCCore arguments --------------------------------------------------------------------------------
|
# SoCCore arguments --------------------------------------------------------------------------------
|
||||||
|
|
||||||
def soc_core_args(parser):
|
def soc_core_args(parser):
|
||||||
|
|
Loading…
Reference in New Issue