Rev 540 | Rev 576 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 540 | Rev 548 | ||
---|---|---|---|
Line 46... | Line 46... | ||
46 | { |
46 | { |
47 | __address dba; |
47 | __address dba; |
48 | __address cur; |
48 | __address cur; |
49 | 49 | ||
50 | if (config.cpu_active == 1) { |
50 | if (config.cpu_active == 1) { |
51 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
51 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
52 | memsetb(dba, PAGE_SIZE, 0); |
52 | memsetb(dba, PAGE_SIZE, 0); |
53 | 53 | ||
54 | bootstrap_dba = dba; |
54 | bootstrap_dba = dba; |
55 | 55 | ||
56 | /* |
56 | /* |
Line 68... | Line 68... | ||
68 | * virtual address space. Because of that, each AP copies |
68 | * virtual address space. Because of that, each AP copies |
69 | * already-initialized paging information from the bootstrap |
69 | * already-initialized paging information from the bootstrap |
70 | * processor and adjusts it to fulfill its needs. |
70 | * processor and adjusts it to fulfill its needs. |
71 | */ |
71 | */ |
72 | 72 | ||
73 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
73 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
74 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
74 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
75 | write_cr3(KA2PA(dba)); |
75 | write_cr3(KA2PA(dba)); |
76 | } |
76 | } |
77 | 77 | ||
78 | paging_on(); |
78 | paging_on(); |