From f017b06926643b71b1faca1cf607c9c4378026cd Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Tue, 24 Aug 2021 19:26:36 +0200 Subject: [PATCH] integration/export/get_csr_json: Only set type to "ro" for read_only CSRStatus. --- litex/soc/integration/export.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/litex/soc/integration/export.py b/litex/soc/integration/export.py index 67ae2d448..f74fe57d4 100644 --- a/litex/soc/integration/export.py +++ b/litex/soc/integration/export.py @@ -288,13 +288,16 @@ def get_csr_json(csr_regions={}, constants={}, mem_regions={}): region_origin = region.origin if not isinstance(region.obj, Memory): for csr in region.obj: - size = (csr.size + region.busword - 1)//region.busword + _size = (csr.size + region.busword - 1)//region.busword + _type = "rw" + if isinstance(csr, CSRStatus) and not hasattr(csr, "r"): + _type = "ro" d["csr_registers"][name + "_" + csr.name] = { "addr": region_origin, - "size": size, - "type": "ro" if isinstance(csr, CSRStatus) else "rw" + "size": _size, + "type": _type } - region_origin += alignment//8*size + region_origin += alignment//8*_size for name, value in constants.items(): d["constants"][name.lower()] = value.lower() if isinstance(value, str) else value