linux/arch/mn10300/mm/Kconfig.cache
<<
>>
Prefs
   1#
   2# MN10300 CPU cache options
   3#
   4
   5choice
   6        prompt "CPU Caching mode"
   7        default MN10300_CACHE_WBACK
   8        help
   9          This option determines the caching mode for the kernel.
  10
  11          Write-Back caching mode involves the all reads and writes causing
  12          the affected cacheline to be read into the cache first before being
  13          operated upon. Memory is not then updated by a write until the cache
  14          is filled and a cacheline needs to be displaced from the cache to
  15          make room. Only at that point is it written back.
  16
  17          Write-Through caching only fetches cachelines from memory on a
  18          read. Writes always get written directly to memory. If the affected
  19          cacheline is also in cache, it will be updated too.
  20
  21          The final option is to turn of caching entirely.
  22
  23config MN10300_CACHE_WBACK
  24        bool "Write-Back"
  25        help
  26          The dcache operates in delayed write-back mode.  It must be manually
  27          flushed if writes are made that subsequently need to be executed or
  28          to be DMA'd by a device.
  29
  30config MN10300_CACHE_WTHRU
  31        bool "Write-Through"
  32        help
  33          The dcache operates in immediate write-through mode.  Writes are
  34          committed to RAM immediately in addition to being stored in the
  35          cache.  This means that the written data is immediately available for
  36          execution or DMA.
  37
  38          This is not available for use with an SMP kernel if cache flushing
  39          and invalidation by automatic purge register is not selected.
  40
  41config MN10300_CACHE_DISABLED
  42        bool "Disabled"
  43        help
  44          The icache and dcache are disabled.
  45
  46endchoice
  47
  48config MN10300_CACHE_ENABLED
  49        def_bool y if !MN10300_CACHE_DISABLED
  50
  51
  52choice
  53        prompt "CPU cache flush/invalidate method"
  54        default MN10300_CACHE_MANAGE_BY_TAG if !AM34_2
  55        default MN10300_CACHE_MANAGE_BY_REG if AM34_2
  56        depends on MN10300_CACHE_ENABLED
  57        help
  58          This determines the method by which CPU cache flushing and
  59          invalidation is performed.
  60
  61config MN10300_CACHE_MANAGE_BY_TAG
  62        bool "Use the cache tag registers directly"
  63        depends on !(SMP && MN10300_CACHE_WTHRU)
  64
  65config MN10300_CACHE_MANAGE_BY_REG
  66        bool "Flush areas by way of automatic purge registers (AM34 only)"
  67        depends on AM34_2
  68
  69endchoice
  70
  71config MN10300_CACHE_INV_BY_TAG
  72        def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_ENABLED
  73
  74config MN10300_CACHE_INV_BY_REG
  75        def_bool y if MN10300_CACHE_MANAGE_BY_REG && MN10300_CACHE_ENABLED
  76
  77config MN10300_CACHE_FLUSH_BY_TAG
  78        def_bool y if MN10300_CACHE_MANAGE_BY_TAG && MN10300_CACHE_WBACK
  79
  80config MN10300_CACHE_FLUSH_BY_REG
  81        def_bool y if MN10300_CACHE_MANAGE_BY_REG && MN10300_CACHE_WBACK
  82
  83
  84config MN10300_HAS_CACHE_SNOOP
  85        def_bool n
  86
  87config MN10300_CACHE_SNOOP
  88        bool "Use CPU Cache Snooping"
  89        depends on MN10300_CACHE_ENABLED && MN10300_HAS_CACHE_SNOOP
  90        default y
  91
  92config MN10300_CACHE_FLUSH_ICACHE
  93        def_bool y if MN10300_CACHE_WBACK && !MN10300_CACHE_SNOOP
  94        help
  95          Set if we need the dcache flushing before the icache is invalidated.
  96
  97config MN10300_CACHE_INV_ICACHE
  98        def_bool y if MN10300_CACHE_WTHRU && !MN10300_CACHE_SNOOP
  99        help
 100          Set if we need the icache to be invalidated, even if the dcache is in
 101          write-through mode and doesn't need flushing.
 102
 103#
 104# The kernel debugger gets its own separate cache flushing functions
 105#
 106config MN10300_DEBUGGER_CACHE_FLUSH_BY_TAG
 107        def_bool y if KERNEL_DEBUGGER && \
 108                        MN10300_CACHE_WBACK && \
 109                        !MN10300_CACHE_SNOOP && \
 110                        MN10300_CACHE_MANAGE_BY_TAG
 111        help
 112          Set if the debugger needs to flush the dcache and invalidate the
 113          icache using the cache tag registers to make breakpoints work.
 114
 115config MN10300_DEBUGGER_CACHE_FLUSH_BY_REG
 116        def_bool y if KERNEL_DEBUGGER && \
 117                        MN10300_CACHE_WBACK && \
 118                        !MN10300_CACHE_SNOOP && \
 119                        MN10300_CACHE_MANAGE_BY_REG
 120        help
 121          Set if the debugger needs to flush the dcache and invalidate the
 122          icache using automatic purge registers to make breakpoints work.
 123
 124config MN10300_DEBUGGER_CACHE_INV_BY_TAG
 125        def_bool y if KERNEL_DEBUGGER && \
 126                        MN10300_CACHE_WTHRU && \
 127                        !MN10300_CACHE_SNOOP && \
 128                        MN10300_CACHE_MANAGE_BY_TAG
 129        help
 130          Set if the debugger needs to invalidate the icache using the cache
 131          tag registers to make breakpoints work.
 132
 133config MN10300_DEBUGGER_CACHE_INV_BY_REG
 134        def_bool y if KERNEL_DEBUGGER && \
 135                        MN10300_CACHE_WTHRU && \
 136                        !MN10300_CACHE_SNOOP && \
 137                        MN10300_CACHE_MANAGE_BY_REG
 138        help
 139          Set if the debugger needs to invalidate the icache using automatic
 140          purge registers to make breakpoints work.
 141
 142config MN10300_DEBUGGER_CACHE_NO_FLUSH
 143        def_bool y if KERNEL_DEBUGGER && \
 144                        (MN10300_CACHE_DISABLED || MN10300_CACHE_SNOOP)
 145        help
 146          Set if the debugger does not need to flush the dcache and/or
 147          invalidate the icache to make breakpoints work.
 148
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.