xref: /illumos-gate/usr/src/uts/sun4/cpu/cpu_module.c (revision 3004e88e8f37eb9b239425b7120cc7d1e47bcb5d)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 /*
22  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23  * Use is subject to license terms.
24  */
25 
26 #include <sys/cpu_module.h>
27 #include <sys/lockstat.h>
28 
29 /*
30  * This is a dummy file that provides the default cpu module
31  * that is linked to unix.
32  */
33 
34 uint_t	root_phys_addr_lo_mask;
35 int64_t timedelta;
36 hrtime_t hres_last_tick;
37 volatile timestruc_t hrestime;
38 int64_t hrestime_adj;
39 volatile int hres_lock;
40 uint_t nsec_scale;
41 uint_t nsec_shift;
42 uint_t adj_shift;
43 hrtime_t hrtime_base;
44 int traptrace_use_stick;
45 uint_t cpu_impl_dual_pgsz;
46 uint64_t native_tick_offset;
47 uint64_t native_stick_offset;
48 
49 void
50 cpu_setup(void)
51 {}
52 
53 void
54 cpu_init_tick_freq(void)
55 {}
56 
57 /*ARGSUSED*/
58 void
59 vtag_flushpage(caddr_t addr, uint64_t sfmmup)
60 {}
61 
62 void
63 vtag_flushall(void)
64 {}
65 
66 void
67 vtag_flushall_uctxs(void)
68 {}
69 
70 /*ARGSUSED*/
71 void
72 vtag_flushpage_tl1(uint64_t addr, uint64_t sfmmup)
73 {}
74 
75 /*ARGSUSED*/
76 void
77 vtag_flush_pgcnt_tl1(uint64_t addr, uint64_t sfmmup_pgcnt)
78 {}
79 
80 /*ARGSUSED*/
81 void
82 vtag_flushall_tl1(uint64_t dummy1, uint64_t dummy2)
83 {}
84 
85 /*ARGSUSED*/
86 void
87 vtag_unmap_perm_tl1(uint64_t addr, uint64_t ctx)
88 {}
89 
90 /*ARGSUSED*/
91 void
92 vac_flushpage(pfn_t pf, int color)
93 {}
94 
95 /*ARGSUSED*/
96 void
97 vac_flushpage_tl1(uint64_t pf, uint64_t color)
98 {}
99 
100 /*ARGSUSED*/
101 void
102 vac_flushcolor(int color, pfn_t pf)
103 {}
104 
105 /*ARGSUSED*/
106 void
107 vac_flushcolor_tl1(uint64_t color, uint64_t dummy)
108 {}
109 
110 /*ARGSUSED*/
111 void
112 init_mondo(xcfunc_t func, uint64_t arg1, uint64_t arg2)
113 {}
114 
115 /*ARGSUSED*/
116 void
117 send_one_mondo(int cpuid)
118 {}
119 
120 /*ARGSUSED*/
121 void
122 send_mondo_set(cpuset_t set)
123 {}
124 
125 /*ARGSUSED*/
126 void
127 flush_instr_mem(caddr_t addr, size_t len)
128 {}
129 
130 void
131 syncfpu(void)
132 {}
133 
134 /*ARGSUSED*/
135 void
136 cpu_change_speed(uint64_t divisor, uint64_t arg2)
137 {}
138 
139 u_longlong_t
140 gettick(void)
141 { return (0); }
142 
143 uint64_t
144 gettick_counter(void)
145 { return (0); }
146 
147 /*ARGSUSED*/
148 void
149 gethrestime(timespec_t *tp)
150 {}
151 
152 time_t
153 gethrestime_sec(void)
154 { return (0); }
155 
156 /*ARGSUSED*/
157 void
158 gethrestime_lasttick(timespec_t *tp)
159 {}
160 
161 hrtime_t
162 gethrtime(void)
163 { return (0); }
164 
165 hrtime_t
166 gethrtime_unscaled(void)
167 { return (0); }
168 
169 hrtime_t
170 gethrtime_waitfree(void)
171 { return (0); }
172 
173 hrtime_t
174 dtrace_gethrtime(void)
175 { return (0); }
176 
177 uint_t
178 get_impl(void)
179 { return (0); }
180 
181 hrtime_t
182 get_hrestime(void)
183 { return (0); }
184 
185 ulong_t
186 get_timestamp(void)
187 { return (0); }
188 
189 ulong_t
190 get_virtime(void)
191 { return (0); }
192 
193 hrtime_t
194 gethrtime_max(void)
195 { return (0); }
196 
197 /*ARGSUSED*/
198 void
199 scalehrtime(hrtime_t *hrt)
200 {}
201 
202 void
203 hres_tick(void)
204 {}
205 
206 /*ARGSUSED*/
207 void
208 tickcmpr_set(uint64_t clock_cycles)
209 {}
210 
211 void
212 tickcmpr_disable(void)
213 {}
214 
215 /*ARGSUSED*/
216 void
217 tick_write_delta(uint64_t delta)
218 {}
219 
220 int
221 tickcmpr_disabled(void)
222 { return (0); }
223 
224 /*ARGSUSED*/
225 void
226 drv_usecwait(clock_t n)
227 {}
228 
229 /*
230  * Processor-optimized memory routines
231  */
232 /*ARGSUSED*/
233 int
234 kcopy(const void *from, void *to, size_t count)
235 { return (0); }
236 
237 /*ARGSUSED*/
238 int
239 kcopy_nta(const void *from, void *to, size_t count, int dummy)
240 { return (0); }
241 
242 /*ARGSUSED*/
243 void
244 bcopy(const void *from, void *to, size_t count)
245 {}
246 
247 /*ARGSUSED*/
248 void
249 ovbcopy(const void *from, void *to, size_t count)
250 {}
251 
252 /*ARGSUSED*/
253 int
254 copyin(const void *uaddr, void *kaddr, size_t count)
255 { return (0); }
256 
257 /*ARGSUSED*/
258 int
259 xcopyin(const void *uaddr, void *kaddr, size_t count)
260 { return (0); }
261 
262 /*ARGSUSED*/
263 int
264 xcopyin_nta(const void *uaddr, void *kaddr, size_t count, int dummy)
265 { return (0); }
266 
267 /*ARGSUSED*/
268 int
269 copyout(const void *kaddr, void *uaddr, size_t count)
270 { return (0); }
271 
272 /*ARGSUSED*/
273 int
274 xcopyout(const void *kaddr, void *uaddr, size_t count)
275 { return (0); }
276 
277 /*ARGSUSED*/
278 int
279 xcopyout_nta(const void *kaddr, void *uaddr, size_t count, int dummy)
280 { return (0); }
281 
282 /*ARGSUSED*/
283 void
284 copyout_noerr(const void *kfrom, void *uto, size_t count)
285 {}
286 
287 /*ARGSUSED*/
288 void
289 copyin_noerr(const void *kfrom, void *uto, size_t count)
290 {}
291 
292 /*ARGSUSED*/
293 int
294 xcopyin_little(const void *uaddr, void *kaddr, size_t count)
295 { return (0); }
296 
297 /*ARGSUSED*/
298 int
299 xcopyout_little(const void *kaddr, void *uaddr, size_t count)
300 { return (0); }
301 
302 /*ARGSUSED*/
303 void
304 hwblkpagecopy(const void *src, void *dst)
305 {}
306 
307 /*ARGSUSED*/
308 void
309 hw_pa_bcopy32(uint64_t src, uint64_t dst)
310 {}
311 
312 /*ARGSUSED*/
313 int
314 hwblkclr(void *addr, size_t len)
315 { return (0); }
316 
317 int use_hw_bzero;
318 int use_hw_bcopy;
319 uint_t hw_copy_limit_1;
320 uint_t hw_copy_limit_2;
321 uint_t hw_copy_limit_4;
322 uint_t hw_copy_limit_8;
323 
324 /*
325  * tick operations
326  */
327 
328 void
329 tick_rtt(void)
330 { }
331 
332 void
333 pil14_interrupt(void)
334 { }
335 
336 void
337 pil15_interrupt(void)
338 { }
339 
340 /* ARGSUSED */
341 void
342 cpu_init_private(struct cpu *cp)
343 {}
344 
345 /* ARGSUSED */
346 void
347 cpu_uninit_private(struct cpu *cp)
348 {}
349 
350 void
351 sticksync_slave(void)
352 {}
353 
354 void
355 sticksync_master(void)
356 {}
357 
358 /*ARGSUSED*/
359 int
360 dtrace_blksuword32(uintptr_t addr, uint32_t *data, int tryagain)
361 { return (-1); }
362