diff --git a/Architecture/amd64/cpu/SymmetricMultiprocessing.cpp b/Architecture/amd64/cpu/SymmetricMultiprocessing.cpp index 94dc157..fce30d2 100644 --- a/Architecture/amd64/cpu/SymmetricMultiprocessing.cpp +++ b/Architecture/amd64/cpu/SymmetricMultiprocessing.cpp @@ -103,6 +103,7 @@ namespace SMP /* We reserved the TRAMPOLINE_START address inside Physical class. */ Memory::Virtual().Map((void *)TRAMPOLINE_START, (void *)TRAMPOLINE_START, TrampolineLength, Memory::PTFlag::RW); memcpy((void *)TRAMPOLINE_START, &_trampoline_start, TrampolineLength); + debug("Trampoline address: %#lx-%#lx", TRAMPOLINE_START, TRAMPOLINE_START + TrampolineLength); void *CPUTmpStack = KernelAllocator.RequestPages(TO_PAGES(STACK_SIZE + 1)); asmv("sgdt [0x580]\n" diff --git a/Core/Memory/PhysicalMemoryManager.cpp b/Core/Memory/PhysicalMemoryManager.cpp index 3223647..df6dda3 100644 --- a/Core/Memory/PhysicalMemoryManager.cpp +++ b/Core/Memory/PhysicalMemoryManager.cpp @@ -430,7 +430,7 @@ namespace Memory debug("Reserving pages for SMP..."); this->ReservePage((void *)0x0); /* Trampoline stack, gdt, idt, etc... */ - this->ReservePage((void *)0x2000); /* TRAMPOLINE_START */ + this->ReservePages((void *)0x2000, 4); /* TRAMPOLINE_START */ debug("Reserving bitmap pages..."); this->ReservePages(PageBitmap.Buffer, TO_PAGES(PageBitmap.Size));