1#include <asm/reg.h>
2#include <asm/ppc_asm.h>
3#include <asm/processor.h>
4
5
6.text
7
8_GLOBAL(mpc52xx_deep_sleep)
9mpc52xx_deep_sleep:
10
11
12 mfmsr r7
13 ori r7, r7, 0x8000
14 mtmsr r7
15 sync; isync;
16
17 li r10, 0
18
19
20 lwz r8, 0x14(r6)
21 ori r8, r8, 0x1
22 xori r8, r8, 0x1
23 stw r8, 0x14(r6)
24 sync
25
26
27 li r8, 0x1
28 stw r8, 0x40(r6)
29 sync
30
31
321:
33 cmpi cr0, r10, 1
34 bne cr0, 1b
35
36
37 mfspr r10, SPRN_HID0
38 ori r10, r10, 0x2000
39 sync; isync;
40 mtspr SPRN_HID0, r10
41 sync; isync;
42
43
44 mflr r9
45
46
47 mtlr r3
48 blrl
49
50 mtlr r9
51
52
53 mfspr r10, SPRN_HID0
54 ori r10, r10, 0x2000
55 xori r10, r10, 0x2000
56 sync; isync;
57 mtspr SPRN_HID0, r10
58 sync; isync;
59
60
61
62 blr
63
64
65_GLOBAL(mpc52xx_ds_sram)
66mpc52xx_ds_sram:
67
68 lwz r8, 0x4(r4)
69
70 oris r8, r8, 0x8000
71 stw r8, 0x4(r4)
72 sync
73
74 ori r8, r8, 0x0002
75 stw r8, 0x4(r4)
76 sync
77 xori r8, r8, 0x0002
78
79 xoris r8, r8, 0x8000
80 stw r8, 0x4(r4)
81 sync
82
83 oris r8, r8, 0x5000
84 xoris r8, r8, 0x4000
85 stw r8, 0x4(r4)
86 sync
87
88
89 lwz r8, 0x14(r5)
90 ori r8, r8, 0x0008
91 xori r8, r8, 0x0008
92 stw r8, 0x14(r5)
93 sync
94
95
96
97 mfmsr r10
98 oris r10, r10, 0x0004
99 sync; isync;
100 mtmsr r10
101 sync; isync;
102
103
104
105 lwz r8, 0x14(r5)
106 ori r8, r8, 0x0008
107 stw r8, 0x14(r5)
108 sync
109
110
111 lwz r8, 0x4(r4)
112 oris r8, r8, 0x5000
113 stw r8, 0x4(r4)
114 sync
115
116 blr
117_GLOBAL(mpc52xx_ds_sram_size)
118mpc52xx_ds_sram_size:
119 .long $-mpc52xx_ds_sram
120
121
122
123_GLOBAL(mpc52xx_ds_cached)
124mpc52xx_ds_cached:
125 mtspr SPRN_SPRG0, r7
126 mtspr SPRN_SPRG1, r8
127
128
129 mfspr r7, 311
130 addi r7, r7, 0x540
131 li r8, 0
132 stw r8, 0(r7)
133 sync
134 dcbf 0, r7
135
136
137 mfspr r7, 311
138 addi r7, r7, 0x524
139 lwz r8, 0(r7)
140 ori r8, r8, 0x0400
141 stw r8, 0(r7)
142 sync
143 dcbf 0, r7
144
145
146 li r10, 1
147
148 mfspr r8, SPRN_SPRG1
149 mfspr r7, SPRN_SPRG0
150
151 rfi
152_GLOBAL(mpc52xx_ds_cached_size)
153mpc52xx_ds_cached_size:
154 .long $-mpc52xx_ds_cached
155