6 ENTRY(sun4v_devino_to_sysino)
7 mov HV_FAST_INTR_DEVINO2SYSINO, %o5
11 ENDPROC(sun4v_devino_to_sysino)
15 * returns %o0: intr_enabled (HV_INTR_{DISABLED,ENABLED})
17 ENTRY(sun4v_intr_getenabled)
18 mov HV_FAST_INTR_GETENABLED, %o5
22 ENDPROC(sun4v_intr_getenabled)
25 * %o1: intr_enabled (HV_INTR_{DISABLED,ENABLED})
27 ENTRY(sun4v_intr_setenabled)
28 mov HV_FAST_INTR_SETENABLED, %o5
32 ENDPROC(sun4v_intr_setenabled)
36 * returns %o0: intr_state (HV_INTR_STATE_*)
38 ENTRY(sun4v_intr_getstate)
39 mov HV_FAST_INTR_GETSTATE, %o5
43 ENDPROC(sun4v_intr_getstate)
46 * %o1: intr_state (HV_INTR_STATE_*)
48 ENTRY(sun4v_intr_setstate)
49 mov HV_FAST_INTR_SETSTATE, %o5
53 ENDPROC(sun4v_intr_setstate)
59 ENTRY(sun4v_intr_gettarget)
60 mov HV_FAST_INTR_GETTARGET, %o5
64 ENDPROC(sun4v_intr_gettarget)
69 ENTRY(sun4v_intr_settarget)
70 mov HV_FAST_INTR_SETTARGET, %o5
74 ENDPROC(sun4v_intr_settarget)
83 ENTRY(sun4v_cpu_start)
84 mov HV_FAST_CPU_START, %o5
88 ENDPROC(sun4v_cpu_start)
95 mov HV_FAST_CPU_STOP, %o5
99 ENDPROC(sun4v_cpu_stop)
101 /* returns %o0: status */
102 ENTRY(sun4v_cpu_yield)
103 mov HV_FAST_CPU_YIELD, %o5
107 ENDPROC(sun4v_cpu_yield)
111 * %o2: num queue entries
113 * returns %o0: status
115 ENTRY(sun4v_cpu_qconf)
116 mov HV_FAST_CPU_QCONF, %o5
120 ENDPROC(sun4v_cpu_qconf)
122 /* %o0: num cpus in cpu list
123 * %o1: cpu list paddr
124 * %o2: mondo block paddr
126 * returns %o0: status
128 ENTRY(sun4v_cpu_mondo_send)
129 mov HV_FAST_CPU_MONDO_SEND, %o5
133 ENDPROC(sun4v_cpu_mondo_send)
137 * returns %o0: -status if status non-zero, else
138 * %o0: cpu state as HV_CPU_STATE_*
140 ENTRY(sun4v_cpu_state)
141 mov HV_FAST_CPU_STATE, %o5
148 ENDPROC(sun4v_cpu_state)
150 /* %o0: virtual address
153 * %o3: HV_MMU_* flags
155 * returns %o0: status
157 ENTRY(sun4v_mmu_map_perm_addr)
158 mov HV_FAST_MMU_MAP_PERM_ADDR, %o5
162 ENDPROC(sun4v_mmu_map_perm_addr)
164 /* %o0: number of TSB descriptions
165 * %o1: TSB descriptions real address
167 * returns %o0: status
169 ENTRY(sun4v_mmu_tsb_ctx0)
170 mov HV_FAST_MMU_TSB_CTX0, %o5
174 ENDPROC(sun4v_mmu_tsb_ctx0)
176 /* %o0: API group number
177 * %o1: pointer to unsigned long major number storage
178 * %o2: pointer to unsigned long minor number storage
180 * returns %o0: status
182 ENTRY(sun4v_get_version)
183 mov HV_CORE_GET_VER, %o5
190 ENDPROC(sun4v_get_version)
192 /* %o0: API group number
193 * %o1: desired major number
194 * %o2: desired minor number
195 * %o3: pointer to unsigned long actual minor number storage
197 * returns %o0: status
199 ENTRY(sun4v_set_version)
200 mov HV_CORE_SET_VER, %o5
205 ENDPROC(sun4v_set_version)
207 /* %o0: pointer to unsigned long time
209 * returns %o0: status
213 mov HV_FAST_TOD_GET, %o5
218 ENDPROC(sun4v_tod_get)
222 * returns %o0: status
225 mov HV_FAST_TOD_SET, %o5
229 ENDPROC(sun4v_tod_set)
231 /* %o0: pointer to unsigned long status
233 * returns %o0: signed character
235 ENTRY(sun4v_con_getchar)
237 mov HV_FAST_CONS_GETCHAR, %o5
244 ENDPROC(sun4v_con_getchar)
246 /* %o0: signed long character
248 * returns %o0: status
250 ENTRY(sun4v_con_putchar)
251 mov HV_FAST_CONS_PUTCHAR, %o5
255 ENDPROC(sun4v_con_putchar)
257 /* %o0: buffer real address
259 * %o2: pointer to unsigned long bytes_read
261 * returns %o0: status
263 ENTRY(sun4v_con_read)
265 mov HV_FAST_CONS_READ, %o5
268 cmp %o1, -1 /* break */
271 cmp %o1, -2 /* hup */
277 ENDPROC(sun4v_con_read)
279 /* %o0: buffer real address
281 * %o2: pointer to unsigned long bytes_written
283 * returns %o0: status
285 ENTRY(sun4v_con_write)
287 mov HV_FAST_CONS_WRITE, %o5
292 ENDPROC(sun4v_con_write)
295 * %o1: address of description string
297 * returns %o0: status
299 ENTRY(sun4v_mach_set_soft_state)
300 mov HV_FAST_MACH_SET_SOFT_STATE, %o5
304 ENDPROC(sun4v_mach_set_soft_state)
310 ENTRY(sun4v_mach_exit)
311 mov HV_FAST_MACH_EXIT, %o5
315 ENDPROC(sun4v_mach_exit)
317 /* %o0: buffer real address
319 * %o2: pointer to unsigned long real_buf_len
321 * returns %o0: status
323 ENTRY(sun4v_mach_desc)
325 mov HV_FAST_MACH_DESC, %o5
330 ENDPROC(sun4v_mach_desc)
332 /* %o0: new timeout in milliseconds
333 * %o1: pointer to unsigned long orig_timeout
335 * returns %o0: status
337 ENTRY(sun4v_mach_set_watchdog)
339 mov HV_FAST_MACH_SET_WATCHDOG, %o5
345 ENDPROC(sun4v_mach_set_watchdog)
346 EXPORT_SYMBOL(sun4v_mach_set_watchdog)
348 /* No inputs and does not return. */
349 ENTRY(sun4v_mach_sir)
351 mov HV_FAST_MACH_SIR, %o5
356 ENDPROC(sun4v_mach_sir)
362 * returns %o0: status
364 ENTRY(sun4v_ldc_tx_qconf)
365 mov HV_FAST_LDC_TX_QCONF, %o5
369 ENDPROC(sun4v_ldc_tx_qconf)
372 * %o1: pointer to unsigned long ra
373 * %o2: pointer to unsigned long num_entries
375 * returns %o0: status
377 ENTRY(sun4v_ldc_tx_qinfo)
380 mov HV_FAST_LDC_TX_QINFO, %o5
386 ENDPROC(sun4v_ldc_tx_qinfo)
389 * %o1: pointer to unsigned long head_off
390 * %o2: pointer to unsigned long tail_off
391 * %o2: pointer to unsigned long chan_state
393 * returns %o0: status
395 ENTRY(sun4v_ldc_tx_get_state)
399 mov HV_FAST_LDC_TX_GET_STATE, %o5
406 ENDPROC(sun4v_ldc_tx_get_state)
411 * returns %o0: status
413 ENTRY(sun4v_ldc_tx_set_qtail)
414 mov HV_FAST_LDC_TX_SET_QTAIL, %o5
418 ENDPROC(sun4v_ldc_tx_set_qtail)
424 * returns %o0: status
426 ENTRY(sun4v_ldc_rx_qconf)
427 mov HV_FAST_LDC_RX_QCONF, %o5
431 ENDPROC(sun4v_ldc_rx_qconf)
434 * %o1: pointer to unsigned long ra
435 * %o2: pointer to unsigned long num_entries
437 * returns %o0: status
439 ENTRY(sun4v_ldc_rx_qinfo)
442 mov HV_FAST_LDC_RX_QINFO, %o5
448 ENDPROC(sun4v_ldc_rx_qinfo)
451 * %o1: pointer to unsigned long head_off
452 * %o2: pointer to unsigned long tail_off
453 * %o2: pointer to unsigned long chan_state
455 * returns %o0: status
457 ENTRY(sun4v_ldc_rx_get_state)
461 mov HV_FAST_LDC_RX_GET_STATE, %o5
468 ENDPROC(sun4v_ldc_rx_get_state)
473 * returns %o0: status
475 ENTRY(sun4v_ldc_rx_set_qhead)
476 mov HV_FAST_LDC_RX_SET_QHEAD, %o5
480 ENDPROC(sun4v_ldc_rx_set_qhead)
486 * returns %o0: status
488 ENTRY(sun4v_ldc_set_map_table)
489 mov HV_FAST_LDC_SET_MAP_TABLE, %o5
493 ENDPROC(sun4v_ldc_set_map_table)
496 * %o1: pointer to unsigned long ra
497 * %o2: pointer to unsigned long num_entries
499 * returns %o0: status
501 ENTRY(sun4v_ldc_get_map_table)
504 mov HV_FAST_LDC_GET_MAP_TABLE, %o5
510 ENDPROC(sun4v_ldc_get_map_table)
517 * %o5: pointer to unsigned long actual_len
519 * returns %o0: status
521 ENTRY(sun4v_ldc_copy)
523 mov HV_FAST_LDC_COPY, %o5
528 ENDPROC(sun4v_ldc_copy)
532 * %o2: pointer to unsigned long ra
533 * %o3: pointer to unsigned long perm
535 * returns %o0: status
537 ENTRY(sun4v_ldc_mapin)
540 mov HV_FAST_LDC_MAPIN, %o5
546 ENDPROC(sun4v_ldc_mapin)
550 * returns %o0: status
552 ENTRY(sun4v_ldc_unmap)
553 mov HV_FAST_LDC_UNMAP, %o5
557 ENDPROC(sun4v_ldc_unmap)
563 * returns %o0: status
565 ENTRY(sun4v_ldc_revoke)
566 mov HV_FAST_LDC_REVOKE, %o5
570 ENDPROC(sun4v_ldc_revoke)
572 /* %o0: device handle
574 * %o2: pointer to unsigned long cookie
576 * returns %o0: status
578 ENTRY(sun4v_vintr_get_cookie)
580 mov HV_FAST_VINTR_GET_COOKIE, %o5
585 ENDPROC(sun4v_vintr_get_cookie)
587 /* %o0: device handle
591 * returns %o0: status
593 ENTRY(sun4v_vintr_set_cookie)
594 mov HV_FAST_VINTR_SET_COOKIE, %o5
598 ENDPROC(sun4v_vintr_set_cookie)
600 /* %o0: device handle
602 * %o2: pointer to unsigned long valid_state
604 * returns %o0: status
606 ENTRY(sun4v_vintr_get_valid)
608 mov HV_FAST_VINTR_GET_VALID, %o5
613 ENDPROC(sun4v_vintr_get_valid)
615 /* %o0: device handle
619 * returns %o0: status
621 ENTRY(sun4v_vintr_set_valid)
622 mov HV_FAST_VINTR_SET_VALID, %o5
626 ENDPROC(sun4v_vintr_set_valid)
628 /* %o0: device handle
630 * %o2: pointer to unsigned long state
632 * returns %o0: status
634 ENTRY(sun4v_vintr_get_state)
636 mov HV_FAST_VINTR_GET_STATE, %o5
641 ENDPROC(sun4v_vintr_get_state)
643 /* %o0: device handle
647 * returns %o0: status
649 ENTRY(sun4v_vintr_set_state)
650 mov HV_FAST_VINTR_SET_STATE, %o5
654 ENDPROC(sun4v_vintr_set_state)
656 /* %o0: device handle
658 * %o2: pointer to unsigned long cpuid
660 * returns %o0: status
662 ENTRY(sun4v_vintr_get_target)
664 mov HV_FAST_VINTR_GET_TARGET, %o5
669 ENDPROC(sun4v_vintr_get_target)
671 /* %o0: device handle
675 * returns %o0: status
677 ENTRY(sun4v_vintr_set_target)
678 mov HV_FAST_VINTR_SET_TARGET, %o5
682 ENDPROC(sun4v_vintr_set_target)
684 /* %o0: NCS sub-function
685 * %o1: sub-function arg real-address
686 * %o2: sub-function arg size
688 * returns %o0: status
690 ENTRY(sun4v_ncs_request)
691 mov HV_FAST_NCS_REQUEST, %o5
695 ENDPROC(sun4v_ncs_request)
697 ENTRY(sun4v_svc_send)
702 mov HV_FAST_SVC_SEND, %o5
707 ENDPROC(sun4v_svc_send)
709 ENTRY(sun4v_svc_recv)
714 mov HV_FAST_SVC_RECV, %o5
719 ENDPROC(sun4v_svc_recv)
721 ENTRY(sun4v_svc_getstatus)
722 mov HV_FAST_SVC_GETSTATUS, %o5
728 ENDPROC(sun4v_svc_getstatus)
730 ENTRY(sun4v_svc_setstatus)
731 mov HV_FAST_SVC_SETSTATUS, %o5
735 ENDPROC(sun4v_svc_setstatus)
737 ENTRY(sun4v_svc_clrstatus)
738 mov HV_FAST_SVC_CLRSTATUS, %o5
742 ENDPROC(sun4v_svc_clrstatus)
744 ENTRY(sun4v_mmustat_conf)
746 mov HV_FAST_MMUSTAT_CONF, %o5
751 ENDPROC(sun4v_mmustat_conf)
753 ENTRY(sun4v_mmustat_info)
755 mov HV_FAST_MMUSTAT_INFO, %o5
760 ENDPROC(sun4v_mmustat_info)
762 ENTRY(sun4v_mmu_demap_all)
766 mov HV_FAST_MMU_DEMAP_ALL, %o5
770 ENDPROC(sun4v_mmu_demap_all)
772 ENTRY(sun4v_niagara_getperf)
774 mov HV_FAST_GET_PERFREG, %o5
779 ENDPROC(sun4v_niagara_getperf)
780 EXPORT_SYMBOL(sun4v_niagara_getperf)
782 ENTRY(sun4v_niagara_setperf)
783 mov HV_FAST_SET_PERFREG, %o5
787 ENDPROC(sun4v_niagara_setperf)
788 EXPORT_SYMBOL(sun4v_niagara_setperf)
790 ENTRY(sun4v_niagara2_getperf)
792 mov HV_FAST_N2_GET_PERFREG, %o5
797 ENDPROC(sun4v_niagara2_getperf)
798 EXPORT_SYMBOL(sun4v_niagara2_getperf)
800 ENTRY(sun4v_niagara2_setperf)
801 mov HV_FAST_N2_SET_PERFREG, %o5
805 ENDPROC(sun4v_niagara2_setperf)
806 EXPORT_SYMBOL(sun4v_niagara2_setperf)
808 ENTRY(sun4v_reboot_data_set)
809 mov HV_FAST_REBOOT_DATA_SET, %o5
813 ENDPROC(sun4v_reboot_data_set)
815 ENTRY(sun4v_vt_get_perfreg)
817 mov HV_FAST_VT_GET_PERFREG, %o5
822 ENDPROC(sun4v_vt_get_perfreg)
824 ENTRY(sun4v_vt_set_perfreg)
825 mov HV_FAST_VT_SET_PERFREG, %o5
829 ENDPROC(sun4v_vt_set_perfreg)
831 ENTRY(sun4v_t5_get_perfreg)
833 mov HV_FAST_T5_GET_PERFREG, %o5
838 ENDPROC(sun4v_t5_get_perfreg)
840 ENTRY(sun4v_t5_set_perfreg)
841 mov HV_FAST_T5_SET_PERFREG, %o5
845 ENDPROC(sun4v_t5_set_perfreg)
847 ENTRY(sun4v_m7_get_perfreg)
849 mov HV_FAST_M7_GET_PERFREG, %o5
854 ENDPROC(sun4v_m7_get_perfreg)
856 ENTRY(sun4v_m7_set_perfreg)
857 mov HV_FAST_M7_SET_PERFREG, %o5
861 ENDPROC(sun4v_m7_set_perfreg)