Merge pull request #1151 from fjullien/fix_wb_slave_cache_configuration
soc: raise an error if adding a SoCRegion with incoherent cache configuration
This commit is contained in:
commit
5363d61859
|
@ -197,17 +197,24 @@ class SoCBusHandler(Module):
|
||||||
self.regions[name] = region
|
self.regions[name] = region
|
||||||
# Else add Region.
|
# Else add Region.
|
||||||
else:
|
else:
|
||||||
# If Region is an IO Region is not cached.
|
if self.check_region_is_io(region):
|
||||||
if not region.cached:
|
# If Region is an IO Region it is not cached.
|
||||||
if not self.check_region_is_io(region):
|
if region.cached:
|
||||||
self.logger.error("{} Region {}: {}.".format(
|
self.logger.error("{} {}".format(
|
||||||
colorer(name),
|
colorer(name + " Region in IO region, it can't be cached:", color="red"),
|
||||||
colorer("not in IO region", color="red"),
|
str(region)))
|
||||||
|
self.logger.error(self)
|
||||||
|
raise SoCError()
|
||||||
|
else:
|
||||||
|
# If Region is not an IO Region it is cached.
|
||||||
|
if not region.cached:
|
||||||
|
self.logger.error("{} {}".format(
|
||||||
|
colorer(name + " Region not in IO region, it must be cached:", color="red"),
|
||||||
str(region)))
|
str(region)))
|
||||||
self.logger.error(self)
|
self.logger.error(self)
|
||||||
raise SoCError()
|
raise SoCError()
|
||||||
self.regions[name] = region
|
self.regions[name] = region
|
||||||
# Check for overlab with others IO regions.
|
# Check for overlap with others IO regions.
|
||||||
overlap = self.check_regions_overlap(self.regions)
|
overlap = self.check_regions_overlap(self.regions)
|
||||||
if overlap is not None:
|
if overlap is not None:
|
||||||
self.logger.error("Region {} between {} and {}:".format(
|
self.logger.error("Region {} between {} and {}:".format(
|
||||||
|
|
Loading…
Reference in New Issue