diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-23 13:10:23 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-23 13:10:23 -0400 |
commit | a4e0d9af403d099e751797f6cc69e4a8e2d78ef1 (patch) | |
tree | 6f4afdffe5dbaad7529be987b8c3259a07395031 /drivers/char/hw_random/n2-asm.S | |
parent | c60f2b5c1defb6b1345968e1c65c2008c221d57d (diff) | |
parent | c010b2f76c3032e48097a6eef291d8593d5d79a6 (diff) |
Merge ../linux-2.6
Diffstat (limited to 'drivers/char/hw_random/n2-asm.S')
-rw-r--r-- | drivers/char/hw_random/n2-asm.S | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/drivers/char/hw_random/n2-asm.S b/drivers/char/hw_random/n2-asm.S new file mode 100644 index 000000000000..9b6eb5cd59f6 --- /dev/null +++ b/drivers/char/hw_random/n2-asm.S | |||
@@ -0,0 +1,79 @@ | |||
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 | |||
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) | ||