summaryrefslogtreecommitdiffhomepage
path: root/src/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/FirmwareKit/Handover.h5
-rw-r--r--src/kernel/HALKit/AMD64/HalKernelMain.cpp8
2 files changed, 8 insertions, 5 deletions
diff --git a/src/kernel/FirmwareKit/Handover.h b/src/kernel/FirmwareKit/Handover.h
index 8515cfa6..f3382f75 100644
--- a/src/kernel/FirmwareKit/Handover.h
+++ b/src/kernel/FirmwareKit/Handover.h
@@ -10,7 +10,7 @@
#include <NeKit/Config.h>
#define kHandoverMagic (0xBADCC)
-#define kHandoverVersion (0x0117)
+#define kHandoverVersion (0x0118)
/* Initial bitmap pointer location and size. */
#define kHandoverStructSz sizeof(HEL::BootInfoHeader)
@@ -79,7 +79,8 @@ struct BootInfoHeader final {
UInt32 f_PixelPerLine;
} f_GOP;
- UInt64 f_FirmwareSpecific[8];
+ UInt64 f_NumberOfProcessors;
+ UInt64 f_FirmwareSpecific[7];
};
enum {
diff --git a/src/kernel/HALKit/AMD64/HalKernelMain.cpp b/src/kernel/HALKit/AMD64/HalKernelMain.cpp
index 4c527572..97102865 100644
--- a/src/kernel/HALKit/AMD64/HalKernelMain.cpp
+++ b/src/kernel/HALKit/AMD64/HalKernelMain.cpp
@@ -157,9 +157,11 @@ EXTERN_C Kernel::Void hal_real_init(Kernel::Void) {
NeFileSystemMgr::Mount(new NeFileSystemMgr());
#endif
- cg_init();
- FBDrawBitMapInRegion(kBootLogo, BOOT_LOGO_WIDTH, BOOT_LOGO_HEIGHT, 10, 10);
- cg_clear();
+ for (SizeT idxCore{0}; idxCore < kHandoverHeader->f_NumberOfProcessors; ++idxCore) {
+ cg_init();
+ FBDrawBitMapInRegion(kBootLogo, BOOT_LOGO_WIDTH, BOOT_LOGO_HEIGHT, 10, 12 + BOOT_LOGO_WIDTH * idxCore);
+ cg_clear();
+ }
UserProcessScheduler::The().SwitchTeam(kRTUserTeam);