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 45... | Line 45... | ||
45 | { |
45 | { |
46 | __address dba; |
46 | __address dba; |
47 | __u32 i; |
47 | __u32 i; |
48 | 48 | ||
49 | if (config.cpu_active == 1) { |
49 | if (config.cpu_active == 1) { |
50 | dba = frame_alloc(FRAME_KA | FRAME_PANIC); |
50 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
51 | memsetb(dba, PAGE_SIZE, 0); |
51 | memsetb(dba, PAGE_SIZE, 0); |
52 | 52 | ||
53 | bootstrap_dba = dba; |
53 | bootstrap_dba = dba; |
54 | 54 | ||
55 | /* |
55 | /* |
Line 67... | Line 67... | ||
67 | * virtual address space. Because of that, each AP copies |
67 | * virtual address space. Because of that, each AP copies |
68 | * already-initialized paging information from the bootstrap |
68 | * already-initialized paging information from the bootstrap |
69 | * processor and adjusts it to fulfill its needs. |
69 | * processor and adjusts it to fulfill its needs. |
70 | */ |
70 | */ |
71 | 71 | ||
72 | dba = frame_alloc(FRAME_KA | FRAME_PANIC); |
72 | dba = frame_alloc(FRAME_KA | FRAME_PANIC, 0); |
73 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
73 | memcpy((void *)dba, (void *)bootstrap_dba , PAGE_SIZE); |
74 | write_cr3(KA2PA(dba)); |
74 | write_cr3(KA2PA(dba)); |
75 | } |
75 | } |
76 | 76 | ||
77 | paging_on(); |
77 | paging_on(); |