.. | .. |
---|
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; |
---|