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/boot/amd64-desktop.make | 4 ++-- src/boot/src/HEL/AMD64/BootEFI.cpp | 2 ++ src/boot/src/HEL/ARM64/BootEFI.cpp | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/boot') diff --git a/src/boot/amd64-desktop.make b/src/boot/amd64-desktop.make index 0854db60..9379dc60 100644 --- a/src/boot/amd64-desktop.make +++ b/src/boot/amd64-desktop.make @@ -49,12 +49,12 @@ DEBUG_MACRO = -D__DEBUG__ endif ifeq ($(KVM_SUPPORT),) -EMU_FLAGS=-M q35 -smp 4 -m 8G \ +EMU_FLAGS=-M q35 -smp 8 -m 8G \ -bios $(BIOS) -cdrom $(BOOT) -boot d endif ifneq ($(KVM_SUPPORT),) -EMU_FLAGS=-M q35 -smp 4 -m 8G \ +EMU_FLAGS=-M q35 -smp 8 -m 8G \ -bios $(BIOS) -M q35 -cdrom $(BOOT) -boot d -accel kvm endif diff --git a/src/boot/src/HEL/AMD64/BootEFI.cpp b/src/boot/src/HEL/AMD64/BootEFI.cpp index 4d004e54..51cdf8e9 100644 --- a/src/boot/src/HEL/AMD64/BootEFI.cpp +++ b/src/boot/src/HEL/AMD64/BootEFI.cpp @@ -120,8 +120,10 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa if (mp) { mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled); + kHandoverHeader->f_NumberOfProcessors = cnt_enabled;; handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1; } else { + handover_hdr->f_NumberOfProcessors = 1; handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = NO; } diff --git a/src/boot/src/HEL/ARM64/BootEFI.cpp b/src/boot/src/HEL/ARM64/BootEFI.cpp index 936f5dfb..a92b9a62 100644 --- a/src/boot/src/HEL/ARM64/BootEFI.cpp +++ b/src/boot/src/HEL/ARM64/BootEFI.cpp @@ -94,8 +94,10 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa if (mp) { mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled); + kHandoverHeader->f_NumberOfProcessors = cnt_enabled; kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1; } else { + kHandoverHeader->f_NumberOfProcessors = 1; kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled = NO; } -- cgit v1.2.3