diff --git a/src/mldebug/aie_util.py b/src/mldebug/aie_util.py index 984f8b8..119c613 100644 --- a/src/mldebug/aie_util.py +++ b/src/mldebug/aie_util.py @@ -397,3 +397,12 @@ def read_core_pc(self): Read the core program counter from all AIE tiles """ return self.read_aie_regs(self.aie_iface.Core_registers["CORE_PC"]) + + def disable_ecc_event(self): + """ + Disable ECC Event for this stamp + """ + if not self.aie_iface.Core_registers.get("ECC_SCRUB_EVENT"): + return + for c, r in self._filter_tiles(self.aie_iface.AIE_TILE_T): + self.impl.write_register(c, r, self.aie_iface.Core_registers["ECC_SCRUB_EVENT"], 0) diff --git a/src/mldebug/arch/aie2ps_defs.py b/src/mldebug/arch/aie2ps_defs.py index a77a73b..02db650 100644 --- a/src/mldebug/arch/aie2ps_defs.py +++ b/src/mldebug/arch/aie2ps_defs.py @@ -122,6 +122,7 @@ def _create_bds(tile_t, registers): "COMBO_EVENT_INPUTS_A_D": 0x34400, "CORE_SR1": 0x32DC0, "CORE_SR2": 0x32DD0, + "ECC_SCRUB_EVENT": 0x38110, } diff --git a/src/mldebug/batch_runner.py b/src/mldebug/batch_runner.py index 86da9e6..5f172e5 100644 --- a/src/mldebug/batch_runner.py +++ b/src/mldebug/batch_runner.py @@ -192,6 +192,9 @@ def schedule_layer_start(self, next_layer): for sid in range(1, len(self.state.pm_reload)): stamp_target_layers[sid] = self.state.get_next_layer_for_stamp(sid) + for utl in self.aie_utls: + utl.disable_ecc_event() + bes_to_poll = [] bes_to_run = [] # Stamp0 breakpoint always scheduled