From 4eb813ba7247d9e2bebf255ecc50f68c0a71bb72 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 20 Aug 2024 02:53:51 +0200 Subject: + IMP: Using Hybrid MP services on ZKA_EFI firmware. + Implement HPET on HardwareTimer and added a SoftwareTimer. + Implemented Hybrid MP Services on EFI.hxx. Signed-off-by: Amlal El Mahrouss --- dev/ZBA/Sources/HEL/AMD64/BootMain.cxx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'dev/ZBA/Sources') diff --git a/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx b/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx index 57f23b22..2e11d27f 100644 --- a/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx +++ b/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx @@ -126,6 +126,15 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle, handoverHdrPtr->f_GOP.f_PixelFormat = kGop->Mode->Info->PixelFormat; handoverHdrPtr->f_GOP.f_Size = kGop->Mode->FrameBufferSize; + auto guid_mp = EfiGUID(EFI_MP_SERVICES_PROTOCOL_GUID); + VoidPtr mp = nullptr; + + extern EfiBootServices* BS; + + BS->LocateProtocol(&guid_mp, nullptr, &mp); + + handoverHdrPtr->f_HardwareTables.f_MPPtr = mp; + kHandoverHeader = handoverHdrPtr; CGInit(); @@ -192,6 +201,8 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle, BCopyMem(handoverHdrPtr->f_FirmwareVendorName, SystemTable->FirmwareVendor, handoverHdrPtr->f_FirmwareVendorLen); + handoverHdrPtr->f_FirmwareVendorLen = BStrLen(SystemTable->FirmwareVendor); + // Assign to global 'kHandoverHeader'. BDiskFormatFactory checkPart; @@ -234,8 +245,6 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle, loader->SetName("64-bit Kernel DLL."); } - handoverHdrPtr->f_FirmwareVendorLen = BStrLen(SystemTable->FirmwareVendor); - EFI::ExitBootServices(MapKey, ImageHandle); // ---------------------------------------------------- // -- cgit v1.2.3