//kernel/trunk/arch/ppc32/src/mm/tlb.c |
---|
377,7 → 377,17 |
void tlb_print(void) |
{ |
// TODO |
__u32 sr; |
for (sr = 0; sr < 16; sr++) { |
__u32 vsid; |
asm volatile ( |
"mfsrin %0, %1\n" |
: "=r" (vsid) |
: "r" (sr << 28) |
); |
printf("vsid[%#x]=%#x\n", sr << 28, vsid); |
} |
} |
/** @} |
//kernel/trunk/arch/ppc32/src/mm/as.c |
---|
55,7 → 55,7 |
{ |
asid_t asid; |
ipl_t ipl; |
__u8 sr; |
__u32 sr; |
ipl = interrupts_disable(); |
spinlock_lock(&as->lock); |
67,7 → 67,7 |
asm volatile ( |
"mtsrin %0, %1\n" |
: |
: "r" (0x6000 + (asid << 4) + sr), "r" (sr * 0x1000) |
: "r" ((0x6000 << 16) + (asid << 4) + sr), "r" (sr << 28) |
); |
} |
76,7 → 76,7 |
asm volatile ( |
"mtsrin %0, %1\n" |
: |
: "r" (0x4000 + (asid << 4) + sr), "r" (sr * 0x1000) |
: "r" ((0x4000 << 16) + (asid << 4) + sr), "r" (sr << 28) |
); |
} |