Rev 532 | Rev 534 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 532 | Rev 533 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | { |
42 | { |
43 | __address dba; |
43 | __address dba; |
44 | count_t i; |
44 | count_t i; |
45 | 45 | ||
46 | if (config.cpu_active == 1) { |
46 | if (config.cpu_active == 1) { |
47 | dba = frame_alloc(FRAME_KA | FRAME_PANIC); |
47 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
48 | memsetb(dba, PAGE_SIZE, 0); |
48 | memsetb(dba, PAGE_SIZE, 0); |
49 | 49 | ||
50 | bootstrap_dba = dba; |
50 | bootstrap_dba = dba; |
51 | 51 | ||
52 | /* |
52 | /* |
Line 65... | Line 65... | ||
65 | * virtual address space. Because of that, each AP copies |
65 | * virtual address space. Because of that, each AP copies |
66 | * already-initialized paging information from the bootstrap |
66 | * already-initialized paging information from the bootstrap |
67 | * processor and adjusts it to fulfill its needs. |
67 | * processor and adjusts it to fulfill its needs. |
68 | */ |
68 | */ |
69 | 69 | ||
70 | dba = frame_alloc(FRAME_KA | FRAME_PANIC); |
70 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
71 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
71 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
72 | write_cr3(KA2PA(dba)); |
72 | write_cr3(KA2PA(dba)); |
73 | } |
73 | } |
74 | } |
74 | } |