root/drivers/char/hw_random/n2-asm.S

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

/* [<][>][^][v][top][bottom][index][help] */