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