On Jan 19, 2012, at 11:28 AM, Manuel Bouyer wrote: > On Thu, Jan 19, 2012 at 10:59:01AM -0800, Matt Thomas wrote: >> >> For prefetchable regions (like framebuffers) mapped by bus_space_map, there >> is a need to able force the contents out of the cache back into memory >> (especially when the cache is a writeback cache). >> >> There is no MI way to do this with the bus_space framework so I'm proposing >> we add a: >> >> void bus_space_sync(bus_space_tag_t bst, >> bus_space_handle_t bsh, >> bus_size_t offset, >> bus_size_t length, >> int ops); >> >> where ops is one of: >> >> #define BUS_SPACE_SYNC_WB 1 // defined by MD >> #define BUS_SPACE_SYNC_WBINV 2 // defined by MD >> >> One caveat is that though a BUS_SPACE_SYNC_WB was requested, a platform can >> perform BUS_SPACE_SYNC_WBINV instead. If the platform can't support just >> writeback, it is allowed to silently do a writeback-invalidate instead. > > > Isn't this what bus_space_barrier(BUS_SPACE_BARRIER_SYNC) is for ?
No. bus_space_barrier controls memory (load/store) ordering and deals with a completely diffeent problem.