xv6

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit e577a62f0dc5a1b22ac5687204ec720bb4d8a367
parent bd71a45046eb13797284216c43353b9b6c92f18c
Author: Frans Kaashoek <kaashoek@206.sub-75-194-151.myvzw.com>
Date:   Fri, 12 Aug 2011 07:31:52 -0400

Some comments

Diffstat:
Mmain.c | 8+++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/main.c b/main.c @@ -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);