summaryrefslogtreecommitdiffhomepage
path: root/dev/ZBAKit/src
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-05 09:34:00 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-05 09:34:00 +0100
commitb636137088923d092c3f0fa4221907fd43c34923 (patch)
tree2d21e43349204866d17091cfb395cd2dd1b28a90 /dev/ZBAKit/src
parent4e7ea02ed492a1fc0b167392361673244f957cce (diff)
IMP: Scheduler improvements, fixing stack issue of kernel now.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZBAKit/src')
-rw-r--r--dev/ZBAKit/src/HEL/AMD64/BootATA.cc2
-rw-r--r--dev/ZBAKit/src/HEL/AMD64/BootMain.cc50
2 files changed, 30 insertions, 22 deletions
diff --git a/dev/ZBAKit/src/HEL/AMD64/BootATA.cc b/dev/ZBAKit/src/HEL/AMD64/BootATA.cc
index ca883935..0d24f99b 100644
--- a/dev/ZBAKit/src/HEL/AMD64/BootATA.cc
+++ b/dev/ZBAKit/src/HEL/AMD64/BootATA.cc
@@ -83,7 +83,7 @@ ATAInit_Retry:
if (statRdy & ATA_SR_ERR)
{
writer.Write(
- L"ZBA: ATA: error, not an IDE based hard-drive.\r");
+ L"ZBA: ATA: Not an IDE based drive.\r");
return false;
}
diff --git a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc
index 98db6587..39e3fd31 100644
--- a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc
+++ b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc
@@ -16,10 +16,11 @@
#include <NewKit/Macros.h>
#include <NewKit/Ref.h>
#include <BootKit/Thread.h>
+#include <Modules/FB/FB.h>
// Makes the compiler shut up.
#ifndef kMachineModel
-#define kMachineModel "ZKA SSD"
+#define kMachineModel "ZKA"
#endif // !kMachineModel
#ifndef kExpectedWidth
@@ -94,7 +95,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
UInt32 sz_desc = sizeof(EfiMemoryDescriptor);
UInt32 rev_desc = 0;
-#ifdef __ZKA_USE_FB__
+#ifdef ZBA_USE_FB
if (!boot_init_fb())
return 1; ///! Init the GOP.
@@ -125,7 +126,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
handover_hdr->f_GOP.f_PixelPerLine = kGop->Mode->Info->PixelsPerScanLine;
handover_hdr->f_GOP.f_PixelFormat = kGop->Mode->Info->PixelFormat;
handover_hdr->f_GOP.f_Size = kGop->Mode->FrameBufferSize;
-#endif // __ZKA_USE_FB__
+#endif // ZBA_USE_FB
// ------------------------------------------- //
// Grab MP services, extended to runtime. //
@@ -140,21 +141,23 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
kHandoverHeader = handover_hdr;
-#ifdef __ZKA_USE_FB__
+#ifdef ZBA_USE_FB
CGInit();
- CGDrawInRegion(CGColor(0xFF, 0x3A, 0x3A), handover_hdr->f_GOP.f_Height, handover_hdr->f_GOP.f_Width, 0, 0);
+ CGDrawInRegion(CGColor(0x00, 0x00, 0x00), handover_hdr->f_GOP.f_Height, handover_hdr->f_GOP.f_Width, 0, 0);
+ CGFini();
+
CGFini();
-#endif // __ZKA_USE_FB__
+#endif // ZBA_USE_FB
UInt32 cnt_enabled = 0;
UInt32 cnt_disabled = 0;
mp->GetNumberOfProcessors(mp, &cnt_disabled, &cnt_enabled);
-#ifdef __ZKA_USE_FB__
+#ifdef ZBA_USE_FB
CGDrawString("ZBA (C) EL MAHROUSS LOGIC", 10, 10, RGB(0xFF, 0xFF, 0xFF));
CGDrawString((cnt_enabled > 1) ? "MULTIPLE PROCESSORS DETECTED." : "SINGLE PROCESSOR DETECTED.", 20, 10, RGB(0xFF, 0xFF, 0xFF));
-#endif // __ZKA_USE_FB__
+#endif // ZBA_USE_FB
handover_hdr->f_HardwareTables.f_MultiProcessingEnabled = cnt_enabled > 1;
// Fill handover header now.
@@ -167,9 +170,11 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
// format the disk.
// ---------------------------------------------------- //
-#ifdef __ZKA_AUTO_FORMAT__
+#ifdef ZKA_AUTO_FORMAT
if (!partition_factory.IsPartitionValid())
{
+ CGDrawString("FORMATTING EPM DISK...", 20, 10, RGB(0xFF, 0xFF, 0xFF));
+
Boot::BDiskFormatFactory<BootDeviceATA>::BFileDescriptor root;
root.fFileName[0] = kNeFSRoot[0];
root.fFileName[1] = 0;
@@ -180,7 +185,11 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
rt_reset_hardware();
}
-#endif // __ZKA_AUTO_FORMAT__
+ else
+ {
+ CGDrawString("BOOTING FROM EPM DISK...", 20, 10, RGB(0xFF, 0xFF, 0xFF));
+ }
+#endif // ZKA_AUTO_FORMAT
BS->GetMemoryMap(&size_struct_ptr, struct_ptr, &map_key, &sz_desc, &rev_desc);
@@ -234,7 +243,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
if (reader_syschk.Blob())
{
syschk_thread = new Boot::BThread(reader_syschk.Blob());
- syschk_thread->SetName("System Check (Integrity check)");
+ syschk_thread->SetName("System Check (ZBA Driver)");
}
syschk_thread->Start(handover_hdr);
@@ -271,15 +280,17 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
if (reader_kernel.Blob())
{
kernel_thread = new Boot::BThread(reader_kernel.Blob());
- kernel_thread->SetName("OS Kernel (Microkernel).");
+ kernel_thread->SetName("Minimal OS Kernel.");
handover_hdr->f_KernelImage = reader_kernel.Blob();
}
else
{
-#ifdef __ZKA_USE_FB__
+#ifdef ZBA_USE_FB
CGDrawString("ZBA: PLEASE RECOVER YOUR KERNEL IMAGE.", 30, 10, RGB(0xFF, 0xFF, 0xFF));
-#endif // __ZKA_USE_FB__
+#endif // ZBA_USE_FB
+
+ EFI::Stop();
}
Boot::BFileReader chime_wav(L"zka\\startup.wav", ImageHandle);
@@ -300,18 +311,15 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
}
else
{
-#ifdef __ZKA_USE_FB__
+#ifdef ZBA_USE_FB
CGDrawString("ZBA: ONE OR MORE SYSTEM COMPONENTS ARE MISSING, PLEASE REINSTALL THE OS.", 30, 10, RGB(0xFF, 0xFF, 0xFF));
-#endif // __ZKA_USE_FB__
+#endif // ZBA_USE_FB
+
+ EFI::Stop();
}
EFI::ExitBootServices(map_key, ImageHandle);
-#ifdef __ZKA_USE_FB__
- CGDrawInRegion(CGColor(0xFF, 0x3A, 0x3A), handover_hdr->f_GOP.f_Height, handover_hdr->f_GOP.f_Width, 0, 0);
- CGFini();
-#endif // __ZKA_USE_FB__
-
// ---------------------------------------------------- //
// Finally load the operating system kernel.
// ---------------------------------------------------- //