Rev 1864 | Rev 1880 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1864 | Rev 1868 | ||
---|---|---|---|
Line 123... | Line 123... | ||
123 | set 1, %r2; \ |
123 | set 1, %r2; \ |
124 | sllx %r2, TTE_V_SHIFT, %r2; \ |
124 | sllx %r2, TTE_V_SHIFT, %r2; \ |
125 | or %r1, %r2, %r1; |
125 | or %r1, %r2, %r1; |
126 | 126 | ||
127 | ! write DTLB data and install the kernel mapping |
127 | ! write DTLB data and install the kernel mapping |
- | 128 | SET_TLB_DATA(g1, g2, 0) ! use non-global mapping |
|
- | 129 | stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG |
|
- | 130 | membar #Sync |
|
- | 131 | ||
- | 132 | /* |
|
- | 133 | * Because we cannot use global mappings (because we want to |
|
- | 134 | * have separate 64-bit address spaces for both the kernel |
|
- | 135 | * and the userspace), we prepare the identity mapping also in |
|
- | 136 | * context 1. This step is required by the |
|
- | 137 | * code installing the ITLB mapping. |
|
- | 138 | */ |
|
- | 139 | ! write DTLB tag of context 1 (i.e. MEM_CONTEXT_TEMP) |
|
128 | SET_TLB_DATA(g1, g2, TTE_G) |
140 | SET_TLB_TAG(g1, MEM_CONTEXT_TEMP) |
- | 141 | stxa %g1, [VA_DMMU_TAG_ACCESS] %asi |
|
- | 142 | membar #Sync |
|
- | 143 | ||
- | 144 | ! write DTLB data and install the kernel mapping in context 1 |
|
- | 145 | SET_TLB_DATA(g1, g2, 0) ! use non-global mapping |
|
129 | stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG |
146 | stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG |
130 | membar #Sync |
147 | membar #Sync |
131 | 148 | ||
132 | /* |
149 | /* |
133 | * Now is time to take over the IMMU. |
150 | * Now is time to take over the IMMU. |