Hi, The attached patch adds two pins: flush-and-invalidate flush-and-invalidate-set to the hw-cache component. These supplement the existing flushing and invalidating pins by providing atomic "flush and invalidate" operations. This is necessary for some architectures which require such an operation and require it to be a nop if the selected line is clean. In this case, the existing sequential flush+invalidate still results in an invalidated line and invalidate+flush fails because it causes a cache miss on the "flush" step. The patch also fixes a bug in cache_component::flush_set which was flushing the selected line even when it was already clean. Approved by bje and committed. Dave