Subversion Repositories HelenOS

Rev

Rev 3153 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3153 Rev 3674
Line 162... Line 162...
162
 
162
 
163
    tsb_base.base = ((uintptr_t) as->arch.itsb) >> MMU_PAGE_WIDTH;
163
    tsb_base.base = ((uintptr_t) as->arch.itsb) >> MMU_PAGE_WIDTH;
164
    itsb_base_write(tsb_base.value);
164
    itsb_base_write(tsb_base.value);
165
    tsb_base.base = ((uintptr_t) as->arch.dtsb) >> MMU_PAGE_WIDTH;
165
    tsb_base.base = ((uintptr_t) as->arch.dtsb) >> MMU_PAGE_WIDTH;
166
    dtsb_base_write(tsb_base.value);
166
    dtsb_base_write(tsb_base.value);
-
 
167
   
-
 
168
#if defined (US3)
-
 
169
    /*
-
 
170
     * Clear the extension registers.
-
 
171
     * In HelenOS, primary and secondary context registers contain
-
 
172
     * equal values and kernel misses (context 0, ie. the nucleus context)
-
 
173
     * are excluded from the TSB miss handler, so it makes no sense
-
 
174
     * to have separate TSBs for primary, secondary and nucleus contexts.
-
 
175
     * Clearing the extension registers will ensure that the value of the
-
 
176
     * TSB Base register will be used as an address of TSB, making the code
-
 
177
     * compatible with the US port.
-
 
178
     */
-
 
179
    itsb_primary_extension_write(0);
-
 
180
    itsb_nucleus_extension_write(0);
-
 
181
    dtsb_primary_extension_write(0);
-
 
182
    dtsb_secondary_extension_write(0);
-
 
183
    dtsb_nucleus_extension_write(0);
-
 
184
#endif
167
#endif
185
#endif
168
}
186
}
169
 
187
 
170
/** Perform sparc64-specific tasks when an address space is removed from the
188
/** Perform sparc64-specific tasks when an address space is removed from the
171
 * processor.
189
 * processor.