• Palmer Dabbelt's avatar
    riscv: implement Zicbom-based CMO instructions + the t-head variant · 3aefb2ee
    Palmer Dabbelt authored
    This series is based on the alternatives changes done in my svpbmt
    series and thus also depends on Atish's isa-extension parsing series.
    
    It implements using the cache-management instructions from the  Zicbom-
    extension to handle cache flush, etc actions on platforms needing them.
    
    SoCs using cpu cores from T-Head like the Allwinne D1 implement a
    different set of cache instructions. But while they are different,
    instructions they provide the same functionality, so a variant can easly
    hook into the existing alternatives mechanism on those.
    
    [Palmer:  Some minor fixups, including a RISCV_ISA_ZICBOM dependency on
    MMU that's probably not strictly necessary.  The Zicbom support will
    trip up sparse for users that have new toolchains, I just sent a patch.]
    
    Link: https://lore.kernel.org/all/20220706231536.2041855-1-heiko@sntech.de/
    Link: https://lore.kernel.org/linux-sparse/20220811033138.20676-1-palmer@rivosinc.com/T/#u
    
    * palmer/riscv-zicbom:
      riscv: implement cache-management errata for T-Head SoCs
      riscv: Add support for non-coherent devices using zicbom extension
      dt-bindings: riscv: document cbom-block-size
      of: also handle dma-noncoherent in of_dma_is_coherent()
    3aefb2ee
dma-noncoherent.c 2.7 KB