| .. | .. |
|---|
| 119 | 119 | local_irq_restore(flags); |
|---|
| 120 | 120 | } |
|---|
| 121 | 121 | |
|---|
| 122 | | -static int mt_opt_norps; |
|---|
| 123 | 122 | static int mt_opt_rpsctl = -1; |
|---|
| 124 | 123 | static int mt_opt_nblsu = -1; |
|---|
| 125 | 124 | static int mt_opt_forceconfig7; |
|---|
| 126 | 125 | static int mt_opt_config7 = -1; |
|---|
| 127 | | - |
|---|
| 128 | | -static int __init rps_disable(char *s) |
|---|
| 129 | | -{ |
|---|
| 130 | | - mt_opt_norps = 1; |
|---|
| 131 | | - return 1; |
|---|
| 132 | | -} |
|---|
| 133 | | -__setup("norps", rps_disable); |
|---|
| 134 | 126 | |
|---|
| 135 | 127 | static int __init rpsctl_set(char *str) |
|---|
| 136 | 128 | { |
|---|
| .. | .. |
|---|
| 154 | 146 | } |
|---|
| 155 | 147 | __setup("config7=", config7_set); |
|---|
| 156 | 148 | |
|---|
| 157 | | -/* Experimental cache flush control parameters that should go away some day */ |
|---|
| 158 | | -int mt_protiflush; |
|---|
| 159 | | -int mt_protdflush; |
|---|
| 160 | | -int mt_n_iflushes = 1; |
|---|
| 161 | | -int mt_n_dflushes = 1; |
|---|
| 162 | | - |
|---|
| 163 | | -static int __init set_protiflush(char *s) |
|---|
| 164 | | -{ |
|---|
| 165 | | - mt_protiflush = 1; |
|---|
| 166 | | - return 1; |
|---|
| 167 | | -} |
|---|
| 168 | | -__setup("protiflush", set_protiflush); |
|---|
| 169 | | - |
|---|
| 170 | | -static int __init set_protdflush(char *s) |
|---|
| 171 | | -{ |
|---|
| 172 | | - mt_protdflush = 1; |
|---|
| 173 | | - return 1; |
|---|
| 174 | | -} |
|---|
| 175 | | -__setup("protdflush", set_protdflush); |
|---|
| 176 | | - |
|---|
| 177 | | -static int __init niflush(char *s) |
|---|
| 178 | | -{ |
|---|
| 179 | | - get_option(&s, &mt_n_iflushes); |
|---|
| 180 | | - return 1; |
|---|
| 181 | | -} |
|---|
| 182 | | -__setup("niflush=", niflush); |
|---|
| 183 | | - |
|---|
| 184 | | -static int __init ndflush(char *s) |
|---|
| 185 | | -{ |
|---|
| 186 | | - get_option(&s, &mt_n_dflushes); |
|---|
| 187 | | - return 1; |
|---|
| 188 | | -} |
|---|
| 189 | | -__setup("ndflush=", ndflush); |
|---|
| 190 | | - |
|---|
| 191 | 149 | static unsigned int itc_base; |
|---|
| 192 | 150 | |
|---|
| 193 | 151 | static int __init set_itc_base(char *str) |
|---|
| .. | .. |
|---|
| 203 | 161 | unsigned int oconfig7 = read_c0_config7(); |
|---|
| 204 | 162 | unsigned int nconfig7 = oconfig7; |
|---|
| 205 | 163 | |
|---|
| 206 | | - if (mt_opt_norps) { |
|---|
| 207 | | - printk("\"norps\" option deprecated: use \"rpsctl=\"\n"); |
|---|
| 208 | | - } |
|---|
| 209 | 164 | if (mt_opt_rpsctl >= 0) { |
|---|
| 210 | 165 | printk("34K return prediction stack override set to %d.\n", |
|---|
| 211 | 166 | mt_opt_rpsctl); |
|---|
| .. | .. |
|---|
| 231 | 186 | ehb(); |
|---|
| 232 | 187 | printk("Config7: 0x%08x\n", read_c0_config7()); |
|---|
| 233 | 188 | } |
|---|
| 234 | | - |
|---|
| 235 | | - /* Report Cache management debug options */ |
|---|
| 236 | | - if (mt_protiflush) |
|---|
| 237 | | - printk("I-cache flushes single-threaded\n"); |
|---|
| 238 | | - if (mt_protdflush) |
|---|
| 239 | | - printk("D-cache flushes single-threaded\n"); |
|---|
| 240 | | - if (mt_n_iflushes != 1) |
|---|
| 241 | | - printk("I-Cache Flushes Repeated %d times\n", mt_n_iflushes); |
|---|
| 242 | | - if (mt_n_dflushes != 1) |
|---|
| 243 | | - printk("D-Cache Flushes Repeated %d times\n", mt_n_dflushes); |
|---|
| 244 | 189 | |
|---|
| 245 | 190 | if (itc_base != 0) { |
|---|
| 246 | 191 | /* |
|---|
| .. | .. |
|---|
| 281 | 226 | printk("Mapped %ld ITC cells starting at 0x%08x\n", |
|---|
| 282 | 227 | ((itcblkgrn & 0x7fe00000) >> 20), itc_base); |
|---|
| 283 | 228 | } |
|---|
| 284 | | -} |
|---|
| 285 | | - |
|---|
| 286 | | -/* |
|---|
| 287 | | - * Function to protect cache flushes from concurrent execution |
|---|
| 288 | | - * depends on MP software model chosen. |
|---|
| 289 | | - */ |
|---|
| 290 | | - |
|---|
| 291 | | -void mt_cflush_lockdown(void) |
|---|
| 292 | | -{ |
|---|
| 293 | | - /* FILL IN VSMP and AP/SP VERSIONS HERE */ |
|---|
| 294 | | -} |
|---|
| 295 | | - |
|---|
| 296 | | -void mt_cflush_release(void) |
|---|
| 297 | | -{ |
|---|
| 298 | | - /* FILL IN VSMP and AP/SP VERSIONS HERE */ |
|---|
| 299 | 229 | } |
|---|
| 300 | 230 | |
|---|
| 301 | 231 | struct class *mt_class; |
|---|