On 27/03/2015 13:32, Edgar E. Iglesias wrote: >>> Is this related to masters relying on the memory frameworks magic >>> handling of unaliged accesses? >> >> Not necessarily, you can get the same just by doing a large write that >> spans multiple MemoryRegions. See the loop in address_space_rw. > > Right, this is another case of "magic" memory handling that allows masters > to issue unnatural transactions and rely on the memory framework to > split things up. > In these cases aren't the masters trading accuracy (including error > handling accuracy) for performance or model simplicity?
Yes. There are no "natural" transactions beyond 32 or 64-bit accesses. > It could maybe be useful to have a flag so masters can say one of the > following (could be encoded in the memattrs): > 1. Stop at first error and return. > 2. Keep going after errors and give me the OR result of all errors. It could just be a length pointer in the same vein as address_space_map's. If NULL, keep going. If not NULL, stop and return. Paolo > > For 1 to be useful, I think it would have to be combined with some > kind of return info that can point out where in the magic splitting > of large or unaligned transactions that things went wrong. > > Probably overkill at the moment... > > Cheers, > Edgar >