|
@@ -72,21 +72,21 @@ void print_pte (pte_t pte)
|
|
#if 0
|
|
#if 0
|
|
/* Verbose version. */
|
|
/* Verbose version. */
|
|
unsigned long val = pte_val (pte);
|
|
unsigned long val = pte_val (pte);
|
|
- printk (" pte=%lx [addr=%lx",
|
|
|
|
|
|
+ pr_cont(" pte=%lx [addr=%lx",
|
|
val, (val & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT);
|
|
val, (val & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT);
|
|
- if (val & SUN3_PAGE_VALID) printk (" valid");
|
|
|
|
- if (val & SUN3_PAGE_WRITEABLE) printk (" write");
|
|
|
|
- if (val & SUN3_PAGE_SYSTEM) printk (" sys");
|
|
|
|
- if (val & SUN3_PAGE_NOCACHE) printk (" nocache");
|
|
|
|
- if (val & SUN3_PAGE_ACCESSED) printk (" accessed");
|
|
|
|
- if (val & SUN3_PAGE_MODIFIED) printk (" modified");
|
|
|
|
|
|
+ if (val & SUN3_PAGE_VALID) pr_cont(" valid");
|
|
|
|
+ if (val & SUN3_PAGE_WRITEABLE) pr_cont(" write");
|
|
|
|
+ if (val & SUN3_PAGE_SYSTEM) pr_cont(" sys");
|
|
|
|
+ if (val & SUN3_PAGE_NOCACHE) pr_cont(" nocache");
|
|
|
|
+ if (val & SUN3_PAGE_ACCESSED) pr_cont(" accessed");
|
|
|
|
+ if (val & SUN3_PAGE_MODIFIED) pr_cont(" modified");
|
|
switch (val & SUN3_PAGE_TYPE_MASK) {
|
|
switch (val & SUN3_PAGE_TYPE_MASK) {
|
|
- case SUN3_PAGE_TYPE_MEMORY: printk (" memory"); break;
|
|
|
|
- case SUN3_PAGE_TYPE_IO: printk (" io"); break;
|
|
|
|
- case SUN3_PAGE_TYPE_VME16: printk (" vme16"); break;
|
|
|
|
- case SUN3_PAGE_TYPE_VME32: printk (" vme32"); break;
|
|
|
|
|
|
+ case SUN3_PAGE_TYPE_MEMORY: pr_cont(" memory"); break;
|
|
|
|
+ case SUN3_PAGE_TYPE_IO: pr_cont(" io"); break;
|
|
|
|
+ case SUN3_PAGE_TYPE_VME16: pr_cont(" vme16"); break;
|
|
|
|
+ case SUN3_PAGE_TYPE_VME32: pr_cont(" vme32"); break;
|
|
}
|
|
}
|
|
- printk ("]\n");
|
|
|
|
|
|
+ pr_cont("]\n");
|
|
#else
|
|
#else
|
|
/* Terse version. More likely to fit on a line. */
|
|
/* Terse version. More likely to fit on a line. */
|
|
unsigned long val = pte_val (pte);
|
|
unsigned long val = pte_val (pte);
|
|
@@ -108,7 +108,7 @@ void print_pte (pte_t pte)
|
|
default: type = "unknown?"; break;
|
|
default: type = "unknown?"; break;
|
|
}
|
|
}
|
|
|
|
|
|
- printk (" pte=%08lx [%07lx %s %s]\n",
|
|
|
|
|
|
+ pr_cont(" pte=%08lx [%07lx %s %s]\n",
|
|
val, (val & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT, flags, type);
|
|
val, (val & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT, flags, type);
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
@@ -116,7 +116,7 @@ void print_pte (pte_t pte)
|
|
/* Print the PTE value for a given virtual address. For debugging. */
|
|
/* Print the PTE value for a given virtual address. For debugging. */
|
|
void print_pte_vaddr (unsigned long vaddr)
|
|
void print_pte_vaddr (unsigned long vaddr)
|
|
{
|
|
{
|
|
- printk (" vaddr=%lx [%02lx]", vaddr, sun3_get_segmap (vaddr));
|
|
|
|
|
|
+ pr_cont(" vaddr=%lx [%02lx]", vaddr, sun3_get_segmap (vaddr));
|
|
print_pte (__pte (sun3_get_pte (vaddr)));
|
|
print_pte (__pte (sun3_get_pte (vaddr)));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -153,7 +153,7 @@ void __init mmu_emu_init(unsigned long bootmem_end)
|
|
|
|
|
|
if(!pmeg_alloc[i]) {
|
|
if(!pmeg_alloc[i]) {
|
|
#ifdef DEBUG_MMU_EMU
|
|
#ifdef DEBUG_MMU_EMU
|
|
- printk("freed: ");
|
|
|
|
|
|
+ pr_info("freed:");
|
|
print_pte_vaddr (seg);
|
|
print_pte_vaddr (seg);
|
|
#endif
|
|
#endif
|
|
sun3_put_segmap(seg, SUN3_INVALID_PMEG);
|
|
sun3_put_segmap(seg, SUN3_INVALID_PMEG);
|
|
@@ -165,7 +165,7 @@ void __init mmu_emu_init(unsigned long bootmem_end)
|
|
if (sun3_get_segmap (seg) != SUN3_INVALID_PMEG) {
|
|
if (sun3_get_segmap (seg) != SUN3_INVALID_PMEG) {
|
|
#ifdef DEBUG_PROM_MAPS
|
|
#ifdef DEBUG_PROM_MAPS
|
|
for(i = 0; i < 16; i++) {
|
|
for(i = 0; i < 16; i++) {
|
|
- printk ("mapped:");
|
|
|
|
|
|
+ pr_info("mapped:");
|
|
print_pte_vaddr (seg + (i*PAGE_SIZE));
|
|
print_pte_vaddr (seg + (i*PAGE_SIZE));
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -293,8 +293,8 @@ inline void mmu_emu_map_pmeg (int context, int vaddr)
|
|
|
|
|
|
|
|
|
|
#ifdef DEBUG_MMU_EMU
|
|
#ifdef DEBUG_MMU_EMU
|
|
-printk("mmu_emu_map_pmeg: pmeg %x to context %d vaddr %x\n",
|
|
|
|
- curr_pmeg, context, vaddr);
|
|
|
|
|
|
+ pr_info("mmu_emu_map_pmeg: pmeg %x to context %d vaddr %x\n",
|
|
|
|
+ curr_pmeg, context, vaddr);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* Invalidate old mapping for the pmeg, if any */
|
|
/* Invalidate old mapping for the pmeg, if any */
|
|
@@ -370,7 +370,7 @@ int mmu_emu_handle_fault (unsigned long vaddr, int read_flag, int kernel_fault)
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef DEBUG_MMU_EMU
|
|
#ifdef DEBUG_MMU_EMU
|
|
- printk ("mmu_emu_handle_fault: vaddr=%lx type=%s crp=%p\n",
|
|
|
|
|
|
+ pr_info("mmu_emu_handle_fault: vaddr=%lx type=%s crp=%p\n",
|
|
vaddr, read_flag ? "read" : "write", crp);
|
|
vaddr, read_flag ? "read" : "write", crp);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -378,14 +378,15 @@ int mmu_emu_handle_fault (unsigned long vaddr, int read_flag, int kernel_fault)
|
|
offset = (vaddr >> SUN3_PTE_SIZE_BITS) & 0xF;
|
|
offset = (vaddr >> SUN3_PTE_SIZE_BITS) & 0xF;
|
|
|
|
|
|
#ifdef DEBUG_MMU_EMU
|
|
#ifdef DEBUG_MMU_EMU
|
|
- printk ("mmu_emu_handle_fault: segment=%lx offset=%lx\n", segment, offset);
|
|
|
|
|
|
+ pr_info("mmu_emu_handle_fault: segment=%lx offset=%lx\n", segment,
|
|
|
|
+ offset);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
pte = (pte_t *) pgd_val (*(crp + segment));
|
|
pte = (pte_t *) pgd_val (*(crp + segment));
|
|
|
|
|
|
//todo: next line should check for valid pmd properly.
|
|
//todo: next line should check for valid pmd properly.
|
|
if (!pte) {
|
|
if (!pte) {
|
|
-// printk ("mmu_emu_handle_fault: invalid pmd\n");
|
|
|
|
|
|
+// pr_info("mmu_emu_handle_fault: invalid pmd\n");
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -417,9 +418,9 @@ int mmu_emu_handle_fault (unsigned long vaddr, int read_flag, int kernel_fault)
|
|
pte_val (*pte) |= SUN3_PAGE_ACCESSED;
|
|
pte_val (*pte) |= SUN3_PAGE_ACCESSED;
|
|
|
|
|
|
#ifdef DEBUG_MMU_EMU
|
|
#ifdef DEBUG_MMU_EMU
|
|
- printk ("seg:%d crp:%p ->", get_fs().seg, crp);
|
|
|
|
|
|
+ pr_info("seg:%ld crp:%p ->", get_fs().seg, crp);
|
|
print_pte_vaddr (vaddr);
|
|
print_pte_vaddr (vaddr);
|
|
- printk ("\n");
|
|
|
|
|
|
+ pr_cont("\n");
|
|
#endif
|
|
#endif
|
|
|
|
|
|
return 1;
|
|
return 1;
|