https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b627352815eda056d6333…
commit b627352815eda056d6333f6fbbf92028ea516e9a
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Sat Jun 12 14:25:48 2021 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Sat Jun 19 12:17:18 2021 +0200
[NTOS][SETUP] Add x64 SMP kernel and make SMP the default boot mode on x64
---
base/setup/lib/settings.c | 5 +++++
boot/bootdata/txtsetup.sif | 8 +++++++-
ntoskrnl/CMakeLists.txt | 2 +-
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/base/setup/lib/settings.c b/base/setup/lib/settings.c
index cafe247c05c..f958d846960 100644
--- a/base/setup/lib/settings.c
+++ b/base/setup/lib/settings.c
@@ -273,6 +273,10 @@ GetComputerIdentifier(
return FALSE;
}
+#ifdef _M_AMD64
+ /* On x64 we are l33t and use the MP config by default */
+ ComputerIdentifier = L"X64 MP";
+#else
if (IsAcpiComputer())
{
if (pFullInfo->SubKeys == 1)
@@ -299,6 +303,7 @@ GetComputerIdentifier(
ComputerIdentifier = L"PC MP";
}
}
+#endif
RtlFreeHeap(RtlGetProcessHeap(), 0, pFullInfo);
diff --git a/boot/bootdata/txtsetup.sif b/boot/bootdata/txtsetup.sif
index 63e0df890cc..1fdf60c17f9 100644
--- a/boot/bootdata/txtsetup.sif
+++ b/boot/bootdata/txtsetup.sif
@@ -236,6 +236,7 @@ pc98_up = "NEC PC-98 Uniprocessor"
[Computer.NTamd64]
x64_up = "Standard x64 Uniprocessor"
+x64_mp = "Standard x64 Multiprocessor"
[Map.Computer.NTx86]
;<id> = <pnp id string>
@@ -249,7 +250,8 @@ xbox = "Xbox"
pc98_up = "NEC PC-98 UP"
[Map.Computer.NTamd64]
-x64_up = "ACPI UP"
+x64_up = "X64 UP"
+x64_mp = "X64 MP"
[Files.pci_up]
ntoskrnl.exe = 1,,,,,,,2,,,,1,2
@@ -287,6 +289,10 @@ halpc98.dll = 1,,,,,,,2,,,hal.dll,1,2
ntoskrnl.exe = 1,,,,,,,2,,,,1,2
hal.dll = 1,,,,,,,2,,,,1,2
+[Files.x64_mp]
+ntkrnlmp.exe = 1,,,,,,,2,,,ntoskrnl.exe,1,2
+halmp.dll = 1,,,,,,,2,,,hal.dll,1,2
+
[Display]
;<id> = <user friendly name>,<spare>,<service key
name>,<width>,<height>,<bpp>
vga = "VGA Display (640x480x4)",,Vga,640,480,4
diff --git a/ntoskrnl/CMakeLists.txt b/ntoskrnl/CMakeLists.txt
index 2efd6f12833..b3362814e56 100644
--- a/ntoskrnl/CMakeLists.txt
+++ b/ntoskrnl/CMakeLists.txt
@@ -54,7 +54,7 @@ add_pch(ntoskrnl ${REACTOS_SOURCE_DIR}/ntoskrnl/include/ntoskrnl.h
"${PCH_SKIP_S
add_dependencies(ntoskrnl psdk asm)
add_cd_file(TARGET ntoskrnl DESTINATION reactos/system32 NO_CAB FOR all)
-if(BUILD_MP)
+if(BUILD_MP OR (ARCH STREQUAL "amd64"))
add_subdirectory(ntkrnlmp)
endif()