Following are the blockers to allow trivial transition in tt-metal from using several tt_SiliconDevice to using a single one to manage the whole cluster (tt_SiliconDevice will be renamed to tt::umd::Cluster). I tried doing the rewrite and have stumbled upon a couple of API issues:
wait_for_non_mmio_flush doesn't accept chip_id
assert_risc_reset -> there should be a variant accepting chip_id. Also not sure if the current variant works for more than one mmio chip.
This includes broadcast_tensix_risc_reset_to_cluster, broadcast_write_to_cluster and ethernet_broadcast_write
start_device -> check if it works for multiple mmio chips
devices_grouped_by_assoc_mmiodevice -> add support in tt_ClusterDescriptor
Related to redesign https://docs.google.com/drawings/d/1-m1azdsBqMA0A6ATYRMfkhyeuOJuGCEI62N5a96LXj0/edit
Following are the blockers to allow trivial transition in tt-metal from using several tt_SiliconDevice to using a single one to manage the whole cluster (tt_SiliconDevice will be renamed to tt::umd::Cluster). I tried doing the rewrite and have stumbled upon a couple of API issues: