From 8ca8b2ff576ecaee18cfe1dbb7e31a546e0d9243 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Wed, 8 Nov 2017 07:32:21 +0100 Subject: [PATCH] Add segmaker suport for per-tile bits Signed-off-by: Clifford Wolf Signed-off-by: Tim 'mithro' Ansell --- utils/segmaker.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/utils/segmaker.py b/utils/segmaker.py index 50fcac9b..5cdc73c3 100644 --- a/utils/segmaker.py +++ b/utils/segmaker.py @@ -49,10 +49,7 @@ class segmaker: tile_type = tiledata["type"] segname = "%s_%03d" % (segdata["baseaddr"][0][2:], segdata["baseaddr"][1]) - for site in tiledata["sites"]: - if site not in self.tags: - continue - + def add_segbits(): if not segname in segments: segments[segname] = { "bits": set(), "tags": dict() } @@ -66,6 +63,19 @@ class segmaker: bitname = "%02d_%02d" % (bit_frame - base_frame, 32*(bit_wordidx - segdata["baseaddr"][1]) + bit_bitidx) segments[segname]["bits"].add(bitname) + if tilename in self.tags: + add_segbits() + + for name, value in self.tags[tilename].items(): + tag = "%s.%s" % (re.sub("_[LR]$", "", tile_type), name) + segments[segname]["tags"][tag] = value + + for site in tiledata["sites"]: + if site not in self.tags: + continue + + add_segbits() + if re.match(r"SLICE_X[0-9]*[02468]Y", site): sitekey = "SLICE_X0" elif re.match(r"SLICE_X[0-9]*[13579]Y", site):