Skip to content
Snippets Groups Projects
Commit e0d1ba0d authored by Robert Morris's avatar Robert Morris
Browse files
parents 2e590463 e577a62f
No related branches found
No related tags found
No related merge requests found
......@@ -82,7 +82,13 @@ bootothers(void)
continue;
// Tell bootother.S what stack to use, the address of mpboot and pgdir;
stack = boot_alloc(); // We need a stack below 4Mbyte with bootpgdir
// We cannot use kpgdir yet, because the AP processor is running in low
// memory, so we use bootpgdir for the APs too. kalloc can return addresses
// above 4Mbyte (the machine may have much more physical memory than 4Mbyte), which
// aren't mapped by bootpgdir, so we must allocate a stack using boot_alloc();
// This introduces the constraint that xv6 cannot invoke until after these last boot_alloc
// invocations.
stack = boot_alloc();
*(void**)(code-4) = stack + KSTACKSIZE;
*(void**)(code-8) = mpboot;
*(int**)(code-12) = (void *) v2p(bootpgdir);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment