Subversion Repositories HelenOS-historic

Rev

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

Rev 877 Rev 883
Line 38... Line 38...
38
#include <config.h>
38
#include <config.h>
39
#include <arch/trap/trap.h>
39
#include <arch/trap/trap.h>
40
#include <panic.h>
40
#include <panic.h>
41
#include <arch/asm.h>
41
#include <arch/asm.h>
42
#include <symtab.h>
42
#include <symtab.h>
-
 
43
#include <arch/drivers/fb.h>
43
 
44
 
44
char *context_encoding[] = {
45
char *context_encoding[] = {
45
    "Primary",
46
    "Primary",
46
    "Secondary",
47
    "Secondary",
47
    "Nucleus",
48
    "Nucleus",
Line 108... Line 109...
108
    immu_enable();
109
    immu_enable();
109
   
110
   
110
    /*
111
    /*
111
     * Quick hack: map frame buffer
112
     * Quick hack: map frame buffer
112
     */
113
     */
113
    fr.address = 0x1C901000000ULL;
114
    fr.address = FB_PHYS_ADDRESS;
114
    pg.address = 0xc0000000;
115
    pg.address = FB_VIRT_ADDRESS;
115
 
116
 
116
    tag.value = ASID_KERNEL;
117
    tag.value = ASID_KERNEL;
117
    tag.vpn = pg.vpn;
118
    tag.vpn = pg.vpn;
118
 
119
 
119
    dtlb_tag_access_write(tag.value);
120
    dtlb_tag_access_write(tag.value);
Line 128... Line 129...
128
    data.p = true;
129
    data.p = true;
129
    data.w = true;
130
    data.w = true;
130
    data.g = true;
131
    data.g = true;
131
 
132
 
132
    dtlb_data_in_write(data.value);
133
    dtlb_data_in_write(data.value);
133
 
-
 
134
}
134
}
135
 
135
 
136
/** ITLB miss handler. */
136
/** ITLB miss handler. */
137
void fast_instruction_access_mmu_miss(void)
137
void fast_instruction_access_mmu_miss(void)
138
{
138
{
Line 144... Line 144...
144
{
144
{
145
    tlb_tag_access_reg_t tag;
145
    tlb_tag_access_reg_t tag;
146
    tlb_data_t data;
146
    tlb_data_t data;
147
    __address tpc;
147
    __address tpc;
148
    char *tpc_str;
148
    char *tpc_str;
149
   
149
 
150
    tag.value = dtlb_tag_access_read();
150
    tag.value = dtlb_tag_access_read();
151
    if (tag.context != ASID_KERNEL || tag.vpn == 0) {
151
    if (tag.context != ASID_KERNEL || tag.vpn == 0) {
152
        tpc = tpc_read();
152
        tpc = tpc_read();
153
        tpc_str = get_symtab_entry(tpc);
153
        tpc_str = get_symtab_entry(tpc);
154
 
154