1/* n2-asm.S: Niagara2 RNG hypervisor call assembler. 2 * 3 * Copyright (C) 2008 David S. Miller <davem@davemloft.net> 4 */ 5#include <linux/linkage.h> 6#include <asm/hypervisor.h> 7#include "n2rng.h" 8 9 .text 10 11ENTRY(sun4v_rng_get_diag_ctl) 12 mov HV_FAST_RNG_GET_DIAG_CTL, %o5 13 ta HV_FAST_TRAP 14 retl 15 nop 16ENDPROC(sun4v_rng_get_diag_ctl) 17 18ENTRY(sun4v_rng_ctl_read_v1) 19 mov %o1, %o3 20 mov %o2, %o4 21 mov HV_FAST_RNG_CTL_READ, %o5 22 ta HV_FAST_TRAP 23 stx %o1, [%o3] 24 retl 25 stx %o2, [%o4] 26ENDPROC(sun4v_rng_ctl_read_v1) 27 28ENTRY(sun4v_rng_ctl_read_v2) 29 save %sp, -192, %sp 30 mov %i0, %o0 31 mov %i1, %o1 32 mov HV_FAST_RNG_CTL_READ, %o5 33 ta HV_FAST_TRAP 34 stx %o1, [%i2] 35 stx %o2, [%i3] 36 stx %o3, [%i4] 37 stx %o4, [%i5] 38 ret 39 restore %g0, %o0, %o0 40ENDPROC(sun4v_rng_ctl_read_v2) 41 42ENTRY(sun4v_rng_ctl_write_v1) 43 mov %o3, %o4 44 mov HV_FAST_RNG_CTL_WRITE, %o5 45 ta HV_FAST_TRAP 46 retl 47 stx %o1, [%o4] 48ENDPROC(sun4v_rng_ctl_write_v1) 49 50ENTRY(sun4v_rng_ctl_write_v2) 51 mov HV_FAST_RNG_CTL_WRITE, %o5 52 ta HV_FAST_TRAP 53 retl 54 nop 55ENDPROC(sun4v_rng_ctl_write_v2) 56 57ENTRY(sun4v_rng_data_read_diag_v1) 58 mov %o2, %o4 59 mov HV_FAST_RNG_DATA_READ_DIAG, %o5 60 ta HV_FAST_TRAP 61 retl 62 stx %o1, [%o4] 63ENDPROC(sun4v_rng_data_read_diag_v1) 64 65ENTRY(sun4v_rng_data_read_diag_v2) 66 mov %o3, %o4 67 mov HV_FAST_RNG_DATA_READ_DIAG, %o5 68 ta HV_FAST_TRAP 69 retl 70 stx %o1, [%o4] 71ENDPROC(sun4v_rng_data_read_diag_v2) 72 73ENTRY(sun4v_rng_data_read) 74 mov %o1, %o4 75 mov HV_FAST_RNG_DATA_READ, %o5 76 ta HV_FAST_TRAP 77 retl 78 stx %o1, [%o4] 79ENDPROC(sun4v_rng_data_read) 80