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 41... | Line 41... | ||
41 | { |
41 | { |
42 | __address dba; |
42 | __address dba; |
43 | __address cur; |
43 | __address cur; |
44 | 44 | ||
45 | if (config.cpu_active == 1) { |
45 | if (config.cpu_active == 1) { |
46 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
46 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
47 | memsetb(dba, PAGE_SIZE, 0); |
47 | memsetb(dba, PAGE_SIZE, 0); |
48 | 48 | ||
49 | bootstrap_dba = dba; |
49 | bootstrap_dba = dba; |
50 | 50 | ||
51 | /* |
51 | /* |
Line 64... | Line 64... | ||
64 | * virtual address space. Because of that, each AP copies |
64 | * virtual address space. Because of that, each AP copies |
65 | * already-initialized paging information from the bootstrap |
65 | * already-initialized paging information from the bootstrap |
66 | * processor and adjusts it to fulfill its needs. |
66 | * processor and adjusts it to fulfill its needs. |
67 | */ |
67 | */ |
68 | 68 | ||
69 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
69 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, ONE_FRAME); |
70 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
70 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
71 | write_cr3(KA2PA(dba)); |
71 | write_cr3(KA2PA(dba)); |
72 | } |
72 | } |
73 | } |
73 | } |