Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It appears that clearing all SMs and FMMUs on the Kistler 5074B with a single block write doesn't work: In the 6th and 8th packets in the attached "fails" capture you can see that the working counter is zero after attempting to write to Ado 0x600 and 0x800.
I noticed because it results in an incorrect FMMU length being configured, which then causes the subdevice to clobber the PDI with garbage:
ethercrab/src/subdevice/configuration.rs
Lines 459 to 460 in 4ca7390
I believe the lengths of the memory regions to blank were also wrong/off by one (16*16=256=0x100 for FMMUs, 16*8=128=0x80 for SMs).
Instead, I tried blanking each individually, and in the "succeeds" capture you can see that the first 8 SMs and 8 FMMUs are cleared successfully (working counter of 1); presumably the number of each that this device has.
sm_and_fmmu_reset.zip