Revision fa6e0a63
b/target-alpha/helper.c | ||
---|---|---|
220 | 220 |
|
221 | 221 |
/* Translate the superpage. */ |
222 | 222 |
/* ??? When we do more than emulate Unix PALcode, we'll need to |
223 |
determine which superpage is actually active. */
|
|
224 |
if (saddr < 0 && (saddr >> (TARGET_VIRT_ADDR_SPACE_BITS - 2) & 3) == 2) {
|
|
225 |
/* User-space cannot access kseg addresses. */
|
|
223 |
determine which KSEG is actually active. */
|
|
224 |
if (saddr < 0 && ((saddr >> 41) & 3) == 2) {
|
|
225 |
/* User-space cannot access KSEG addresses. */
|
|
226 | 226 |
if (mmu_idx != MMU_KERNEL_IDX) { |
227 | 227 |
goto exit; |
228 | 228 |
} |
229 | 229 |
|
230 |
/* For the benefit of the Typhoon chipset, move bit 40 to bit 43. |
|
231 |
We would not do this if the 48-bit KSEG is enabled. */ |
|
230 | 232 |
phys = saddr & ((1ull << 40) - 1); |
233 |
phys |= (saddr & (1ull << 40)) << 3; |
|
234 |
|
|
231 | 235 |
prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC; |
232 | 236 |
ret = -1; |
233 | 237 |
goto exit; |
Also available in: Unified diff