From ece3e47e28cfbcdc82bdd1c0aabbcda9a735851a Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 25 Mar 2026 17:08:55 +0100 Subject: [FEAT] Kernel/Boot: BootZ Handover protocol update, add core detection routine in AMD64 HAL. Signed-off-by: Amlal El Mahrouss --- src/kernel/FirmwareKit/Handover.h | 5 +++-- src/kernel/HALKit/AMD64/HalKernelMain.cpp | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src/kernel') 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 #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); -- cgit v1.2.3