diff --git a/artiq/coredevice/coredevice_generic.schema.json b/artiq/coredevice/coredevice_generic.schema.json index f12f1d9b0..bf79bb976 100644 --- a/artiq/coredevice/coredevice_generic.schema.json +++ b/artiq/coredevice/coredevice_generic.schema.json @@ -630,8 +630,7 @@ "maxItems": 2 }, "drtio_destination": { - "type": "integer", - "default": 4 + "type": "integer" } }, "required": ["ports"] diff --git a/artiq/frontend/artiq_ddb_template.py b/artiq/frontend/artiq_ddb_template.py index 394252911..5038563d6 100755 --- a/artiq/frontend/artiq_ddb_template.py +++ b/artiq/frontend/artiq_ddb_template.py @@ -767,7 +767,17 @@ def process(output, primary_description, satellites): n_channels = pm.process(rtio_offset, peripheral) rtio_offset += n_channels - for peripheral in drtio_peripherals: + for i, peripheral in enumerate(drtio_peripherals): + if not("drtio_destination" in peripheral): + if primary_description["target"] == "kasli": + if primary_description["hw_rev"] in ("v1.0", "v1.1"): + peripheral["drtio_destination"] = 3 + i + else: + peripheral["drtio_destination"] = 4 + i + elif primary_description["target"] == "kasli_soc": + peripheral["drtio_destination"] = 5 + i + else: + raise NotImplementedError print(textwrap.dedent(""" # DEST#{dest} peripherals