diff options
Diffstat (limited to 'arch/blackfin/mach-common/head.S')
-rw-r--r-- | arch/blackfin/mach-common/head.S | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/arch/blackfin/mach-common/head.S b/arch/blackfin/mach-common/head.S index 191b4e974c4b..7cb21cfcbf28 100644 --- a/arch/blackfin/mach-common/head.S +++ b/arch/blackfin/mach-common/head.S | |||
@@ -90,12 +90,46 @@ ENTRY(__start) | |||
90 | [p0] = R0; | 90 | [p0] = R0; |
91 | SSYNC; | 91 | SSYNC; |
92 | 92 | ||
93 | /* Save RETX, in case of doublefault */ | 93 | /* in case of double faults, save a few things */ |
94 | p0.l = ___retx; | 94 | p0.l = _init_retx; |
95 | p0.h = ___retx; | 95 | p0.h = _init_retx; |
96 | R0 = RETX; | 96 | R0 = RETX; |
97 | [P0] = R0; | 97 | [P0] = R0; |
98 | 98 | ||
99 | #ifdef CONFIG_DEBUG_DOUBLEFAULT | ||
100 | /* Only save these if we are storing them, | ||
101 | * This happens here, since L1 gets clobbered | ||
102 | * below | ||
103 | */ | ||
104 | p0.l = _saved_retx; | ||
105 | p0.h = _saved_retx; | ||
106 | p1.l = _init_saved_retx; | ||
107 | p1.h = _init_saved_retx; | ||
108 | r0 = [p0]; | ||
109 | [p1] = r0; | ||
110 | |||
111 | p0.l = _saved_dcplb_fault_addr; | ||
112 | p0.h = _saved_dcplb_fault_addr; | ||
113 | p1.l = _init_saved_dcplb_fault_addr; | ||
114 | p1.h = _init_saved_dcplb_fault_addr; | ||
115 | r0 = [p0]; | ||
116 | [p1] = r0; | ||
117 | |||
118 | p0.l = _saved_icplb_fault_addr; | ||
119 | p0.h = _saved_icplb_fault_addr; | ||
120 | p1.l = _init_saved_icplb_fault_addr; | ||
121 | p1.h = _init_saved_icplb_fault_addr; | ||
122 | r0 = [p0]; | ||
123 | [p1] = r0; | ||
124 | |||
125 | p0.l = _saved_seqstat; | ||
126 | p0.h = _saved_seqstat; | ||
127 | p1.l = _init_saved_seqstat; | ||
128 | p1.h = _init_saved_seqstat; | ||
129 | r0 = [p0]; | ||
130 | [p1] = r0; | ||
131 | #endif | ||
132 | |||
99 | /* Initialize stack pointer */ | 133 | /* Initialize stack pointer */ |
100 | sp.l = lo(INITIAL_STACK); | 134 | sp.l = lo(INITIAL_STACK); |
101 | sp.h = hi(INITIAL_STACK); | 135 | sp.h = hi(INITIAL_STACK); |