Skip to content
Snippets Groups Projects
  • Igor Guryanov's avatar
    f8cf3d1e
    arc: check caches existence before use · f8cf3d1e
    Igor Guryanov authored
    
    Some cache operations ({i|d}cache_{enable|disable|status} or
    flush_dcache_all) are built and used even if CONFIG_SYS_{I|D}CACHE_OFF
    is set.
    
    This is required for force disable of caches on early boot.
    What if something was executed before U-boot and enabled caches
    (low-level bootloaders, previously run kernel etc.)?
    
    But if CPU doesn't really have caches any attempt to access
    cache-related AUX registers triggers instruction error exception.
    
    So for convenience we'll try to avoid exceptions by checking if CPU
    actually has caches (we check separately data and instruction cache
    existence) at all.
    
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: default avatarIgor Guryanov <guryanov@synopsys.com>
    f8cf3d1e
    History
    arc: check caches existence before use
    Igor Guryanov authored
    
    Some cache operations ({i|d}cache_{enable|disable|status} or
    flush_dcache_all) are built and used even if CONFIG_SYS_{I|D}CACHE_OFF
    is set.
    
    This is required for force disable of caches on early boot.
    What if something was executed before U-boot and enabled caches
    (low-level bootloaders, previously run kernel etc.)?
    
    But if CPU doesn't really have caches any attempt to access
    cache-related AUX registers triggers instruction error exception.
    
    So for convenience we'll try to avoid exceptions by checking if CPU
    actually has caches (we check separately data and instruction cache
    existence) at all.
    
    Signed-off-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: default avatarIgor Guryanov <guryanov@synopsys.com>
cache.c 4.05 KiB