Subversion Repositories HelenOS

Rev

Rev 1905 | Rev 2009 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1905 Rev 1946
Line 72... Line 72...
72
{
72
{
73
    /*
73
    /*
74
     * Invalidate all non-locked DTLB and ITLB entries.
74
     * Invalidate all non-locked DTLB and ITLB entries.
75
     */
75
     */
76
    tlb_invalidate_all();
76
    tlb_invalidate_all();
-
 
77
 
-
 
78
    /*
-
 
79
     * Clear both SFSRs.
-
 
80
     */
-
 
81
    dtlb_sfsr_write(0);
-
 
82
    itlb_sfsr_write(0);
77
}
83
}
78
 
84
 
79
/** Insert privileged mapping into DMMU TLB.
85
/** Insert privileged mapping into DMMU TLB.
80
 *
86
 *
81
 * @param page Virtual page address.
87
 * @param page Virtual page address.
Line 351... Line 357...
351
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
357
    printf("Faulting page: %p, ASID=%d\n", va, tag.context);
352
    dump_istate(istate);
358
    dump_istate(istate);
353
    panic("%s\n", str);
359
    panic("%s\n", str);
354
}
360
}
355
 
361
 
-
 
362
void dump_sfsr_and_sfar(void)
-
 
363
{
-
 
364
    tlb_sfsr_reg_t sfsr;
-
 
365
    uintptr_t sfar;
-
 
366
 
-
 
367
    sfsr.value = dtlb_sfsr_read();
-
 
368
    sfar = dtlb_sfar_read();
-
 
369
   
-
 
370
    printf("DTLB SFSR: asi=%#x, ft=%#x, e=%d, ct=%d, pr=%d, w=%d, ow=%d, fv=%d\n",
-
 
371
        sfsr.asi, sfsr.ft, sfsr.e, sfsr.ct, sfsr.pr, sfsr.w, sfsr.ow, sfsr.fv);
-
 
372
    printf("DTLB SFAR: address=%p\n", sfar);
-
 
373
   
-
 
374
    dtlb_sfsr_write(0);
-
 
375
}
-
 
376
 
356
/** Invalidate all unlocked ITLB and DTLB entries. */
377
/** Invalidate all unlocked ITLB and DTLB entries. */
357
void tlb_invalidate_all(void)
378
void tlb_invalidate_all(void)
358
{
379
{
359
    int i;
380
    int i;
360
    tlb_data_t d;
381
    tlb_data_t d;