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. |