diff options
| -rw-r--r-- | arch/m68k/include/asm/m52xxacr.h | 30 | ||||
| -rw-r--r-- | arch/m68knommu/Kconfig | 32 |
2 files changed, 48 insertions, 14 deletions
diff --git a/arch/m68k/include/asm/m52xxacr.h b/arch/m68k/include/asm/m52xxacr.h index 52230b5e1e4d..701f680bced9 100644 --- a/arch/m68k/include/asm/m52xxacr.h +++ b/arch/m68k/include/asm/m52xxacr.h | |||
| @@ -53,23 +53,25 @@ | |||
| 53 | #define ACR_WPROTECT 0x00000004 /* Write protect region */ | 53 | #define ACR_WPROTECT 0x00000004 /* Write protect region */ |
| 54 | 54 | ||
| 55 | /* | 55 | /* |
| 56 | * Set the cache controller settings we will use. This code is set to | 56 | * Set the cache controller settings we will use. On the cores that support |
| 57 | * only use the instruction cache, even on the controllers that support | 57 | * a split cache configuration we allow all the combinations at Kconfig |
| 58 | * split cache. (This setup is trying to preserve the existing behavior | 58 | * time. For those cores that only have an instruction cache we just set |
| 59 | * for now, in the furture I hope to actually use the split cache mode). | 59 | * that as on. |
| 60 | */ | 60 | */ |
| 61 | #if defined(CONFIG_M5206) || defined(CONFIG_M5206e) || \ | 61 | #if defined(CONFIG_CACHE_I) |
| 62 | defined(CONFIG_M5249) || defined(CONFIG_M5272) | 62 | #define CACHE_TYPE CACR_DISD |
| 63 | #define CACHE_INIT (CACR_CINV) | 63 | #elif defined(CONFIG_CACHE_D) |
| 64 | #define CACHE_MODE (CACR_CENB + CACR_DCM) | 64 | #define CACHE_TYPE CACR_DISI |
| 65 | #else | 65 | #else |
| 66 | #ifdef CONFIG_COLDFIRE_SW_A7 | 66 | #define CACHE_TYPE |
| 67 | #define CACHE_INIT (CACR_CINV + CACR_DISD) | ||
| 68 | #define CACHE_MODE (CACR_CENB + CACR_DISD + CACR_DCM) | ||
| 69 | #else | ||
| 70 | #define CACHE_INIT (CACR_CINV + CACR_DISD + CACR_EUSP) | ||
| 71 | #define CACHE_MODE (CACR_CENB + CACR_DISD + CACR_DCM + CACR_EUSP) | ||
| 72 | #endif | 67 | #endif |
| 68 | |||
| 69 | #if defined(CONFIG_HAVE_CACHE_SPLIT) | ||
| 70 | #define CACHE_INIT (CACR_CINV + CACHE_TYPE + CACR_EUSP) | ||
| 71 | #define CACHE_MODE (CACR_CENB + CACHE_TYPE + CACR_DCM + CACR_EUSP) | ||
| 72 | #else | ||
| 73 | #define CACHE_INIT (CACR_CINV) | ||
| 74 | #define CACHE_MODE (CACR_CENB + CACR_DCM) | ||
| 73 | #endif | 75 | #endif |
| 74 | 76 | ||
| 75 | #define CACHE_INVALIDATE (CACHE_MODE + CACR_CINV) | 77 | #define CACHE_INVALIDATE (CACHE_MODE + CACR_CINV) |
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig index e6f482d18d05..61c29081b998 100644 --- a/arch/m68knommu/Kconfig +++ b/arch/m68knommu/Kconfig | |||
| @@ -79,6 +79,9 @@ config COLDFIRE_SW_A7 | |||
| 79 | bool | 79 | bool |
| 80 | default n | 80 | default n |
| 81 | 81 | ||
| 82 | config HAVE_CACHE_SPLIT | ||
| 83 | bool | ||
| 84 | |||
| 82 | source "init/Kconfig" | 85 | source "init/Kconfig" |
| 83 | 86 | ||
| 84 | source "kernel/Kconfig.freezer" | 87 | source "kernel/Kconfig.freezer" |
| @@ -124,12 +127,14 @@ config M5206e | |||
| 124 | config M520x | 127 | config M520x |
| 125 | bool "MCF520x" | 128 | bool "MCF520x" |
| 126 | select GENERIC_CLOCKEVENTS | 129 | select GENERIC_CLOCKEVENTS |
| 130 | select HAVE_CACHE_SPLIT | ||
| 127 | help | 131 | help |
| 128 | Freescale Coldfire 5207/5208 processor support. | 132 | Freescale Coldfire 5207/5208 processor support. |
| 129 | 133 | ||
| 130 | config M523x | 134 | config M523x |
| 131 | bool "MCF523x" | 135 | bool "MCF523x" |
| 132 | select GENERIC_CLOCKEVENTS | 136 | select GENERIC_CLOCKEVENTS |
| 137 | select HAVE_CACHE_SPLIT | ||
| 133 | help | 138 | help |
| 134 | Freescale Coldfire 5230/1/2/4/5 processor support | 139 | Freescale Coldfire 5230/1/2/4/5 processor support |
| 135 | 140 | ||
| @@ -141,6 +146,7 @@ config M5249 | |||
| 141 | 146 | ||
| 142 | config M5271 | 147 | config M5271 |
| 143 | bool "MCF5271" | 148 | bool "MCF5271" |
| 149 | select HAVE_CACHE_SPLIT | ||
| 144 | help | 150 | help |
| 145 | Freescale (Motorola) ColdFire 5270/5271 processor support. | 151 | Freescale (Motorola) ColdFire 5270/5271 processor support. |
| 146 | 152 | ||
| @@ -152,12 +158,14 @@ config M5272 | |||
| 152 | 158 | ||
| 153 | config M5275 | 159 | config M5275 |
| 154 | bool "MCF5275" | 160 | bool "MCF5275" |
| 161 | select HAVE_CACHE_SPLIT | ||
| 155 | help | 162 | help |
| 156 | Freescale (Motorola) ColdFire 5274/5275 processor support. | 163 | Freescale (Motorola) ColdFire 5274/5275 processor support. |
| 157 | 164 | ||
| 158 | config M528x | 165 | config M528x |
| 159 | bool "MCF528x" | 166 | bool "MCF528x" |
| 160 | select GENERIC_CLOCKEVENTS | 167 | select GENERIC_CLOCKEVENTS |
| 168 | select HAVE_CACHE_SPLIT | ||
| 161 | help | 169 | help |
| 162 | Motorola ColdFire 5280/5282 processor support. | 170 | Motorola ColdFire 5280/5282 processor support. |
| 163 | 171 | ||
| @@ -250,6 +258,30 @@ config OLDMASK | |||
| 250 | Build support for the older revision ColdFire 5307 silicon. | 258 | Build support for the older revision ColdFire 5307 silicon. |
| 251 | Specifically this is the 1H55J mask revision. | 259 | Specifically this is the 1H55J mask revision. |
| 252 | 260 | ||
| 261 | if HAVE_CACHE_SPLIT | ||
| 262 | choice | ||
| 263 | prompt "Split Cache Configuration" | ||
| 264 | default CACHE_I | ||
| 265 | |||
| 266 | config CACHE_I | ||
| 267 | bool "Instruction" | ||
| 268 | help | ||
| 269 | Use all of the ColdFire CPU cache memory as an instruction cache. | ||
| 270 | |||
| 271 | config CACHE_D | ||
| 272 | bool "Data" | ||
| 273 | help | ||
| 274 | Use all of the ColdFire CPU cache memory as a data cache. | ||
| 275 | |||
| 276 | config CACHE_BOTH | ||
| 277 | bool "Both" | ||
| 278 | help | ||
| 279 | Split the ColdFire CPU cache, and use half as an instruction cache | ||
| 280 | and half as a data cache. | ||
| 281 | endchoice | ||
| 282 | |||
| 283 | endif | ||
| 284 | |||
| 253 | comment "Platform" | 285 | comment "Platform" |
| 254 | 286 | ||
| 255 | config PILOT3 | 287 | config PILOT3 |
