Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/char/hw_random/n2-asm.S
15112 views
1
/* n2-asm.S: Niagara2 RNG hypervisor call assembler.
2
*
3
* Copyright (C) 2008 David S. Miller <[email protected]>
4
*/
5
#include <linux/linkage.h>
6
#include <asm/hypervisor.h>
7
#include "n2rng.h"
8
9
.text
10
11
ENTRY(sun4v_rng_get_diag_ctl)
12
mov HV_FAST_RNG_GET_DIAG_CTL, %o5
13
ta HV_FAST_TRAP
14
retl
15
nop
16
ENDPROC(sun4v_rng_get_diag_ctl)
17
18
ENTRY(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]
26
ENDPROC(sun4v_rng_ctl_read_v1)
27
28
ENTRY(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
40
ENDPROC(sun4v_rng_ctl_read_v2)
41
42
ENTRY(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]
48
ENDPROC(sun4v_rng_ctl_write_v1)
49
50
ENTRY(sun4v_rng_ctl_write_v2)
51
mov HV_FAST_RNG_CTL_WRITE, %o5
52
ta HV_FAST_TRAP
53
retl
54
nop
55
ENDPROC(sun4v_rng_ctl_write_v2)
56
57
ENTRY(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]
63
ENDPROC(sun4v_rng_data_read_diag_v1)
64
65
ENTRY(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]
71
ENDPROC(sun4v_rng_data_read_diag_v2)
72
73
ENTRY(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]
79
ENDPROC(sun4v_rng_data_read)
80
81