On Fri, 19 Jun 2020 at 14:58, Alex Bennée <alex.ben...@linaro.org> wrote: > > This attempts to bring together my understanding of the requirements > for icount behaviour into one reference document for our developer > notes. It currently make one piece of conjecture which I think is true > that we don't need gen_io_start/end statements for non-MMIO related > I/O operations.
> +Other I/O operations > +-------------------- > + > +MMIO isn't the only type of operation for which we might need a > +correct and accurate clock. IO port instructions and accesses to > +system registers are the common examples here. For the clock to be > +accurate you end a translation block on these instructions. > + > +.. warning:: (CONJECTURE) instructions that won't get trapped in the > + io_read/writex shouldn't need gen_io_start/end blocks > + around them. I think this is backwards -- instructions where icount is handled by io_readx/io_writex are the ones that don't need to be marked with gen_io_start. It's the i/o instructions that don't go through io_readx/io_writex that need gen_io_start. thanks -- PMM