• Matt Fleming's avatar
    sh: Drop associative writes for SH-4 cache flushes. · a781d1e5
    Matt Fleming authored
    When flushing/invalidating the icache/dcache via the memory-mapped IC/OC
    address arrays, the associative bit should only be used in conjunction with
    virtual addresses. However, we currently flush cache lines based on physical
    address, so stop using the associative bit.
    
    It is a better strategy to use non-associative writes (and physical tags) for
    flushing the caches anyway, because flushing by virtual address (as with the
    A-bit set) requires a valid TLB entry for that virtual address. If one does not
    exist in the TLB no exception is generated and the flush is silently ignored.
    
    This is also future-proofing for SH-4A parts which are gradually phasing out
    associative writes to the cache array due to the aforementioned case of certain
    flushes silently turning in to nops.
    Signed-off-by: default avatarMatt Fleming <matt@console-pimps.org>
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    a781d1e5
cache-sh4.c 9.84 KB