summaryrefslogtreecommitdiffhomepage
path: root/Boot/Sources/HEL
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-07-28 16:11:46 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-07-28 16:11:46 +0000
commitc4023005e029ae092dad2689564c490580dd5c28 (patch)
tree3080ba07a6b552bf3d7591574cf69b2a3c8fd0fd /Boot/Sources/HEL
parent8c8822fff78f9ff9cd640271da9b3634c4c2f97f (diff)
parent4db57a2d646b1538783a0675b38bada7a0f903ae (diff)
Merged in MHR-36 (pull request #17)
MHR-36
Diffstat (limited to 'Boot/Sources/HEL')
-rw-r--r--Boot/Sources/HEL/64X000/Boot64x0.S2
-rw-r--r--Boot/Sources/HEL/AMD64/BootAHCI.cxx4
-rw-r--r--Boot/Sources/HEL/AMD64/BootATA.cxx4
-rw-r--r--Boot/Sources/HEL/AMD64/BootFileReader.cxx85
-rw-r--r--Boot/Sources/HEL/AMD64/BootJump.S11
-rw-r--r--Boot/Sources/HEL/AMD64/BootMain.cxx165
-rw-r--r--Boot/Sources/HEL/AMD64/BootPlatform.cxx5
-rw-r--r--Boot/Sources/HEL/AMD64/BootString.cxx2
-rw-r--r--Boot/Sources/HEL/AMD64/BootTextWriter.cxx36
-rw-r--r--Boot/Sources/HEL/AMD64/New+Delete.cxx4
-rw-r--r--Boot/Sources/HEL/AMD64/Support.cxx10
-rw-r--r--Boot/Sources/HEL/AMD64/compile_flags.txt6
-rw-r--r--Boot/Sources/HEL/POWER/CoreBootStartup.S2
13 files changed, 194 insertions, 142 deletions
diff --git a/Boot/Sources/HEL/64X000/Boot64x0.S b/Boot/Sources/HEL/64X000/Boot64x0.S
index 9b2fb569..37b82b6f 100644
--- a/Boot/Sources/HEL/64X000/Boot64x0.S
+++ b/Boot/Sources/HEL/64X000/Boot64x0.S
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
diff --git a/Boot/Sources/HEL/AMD64/BootAHCI.cxx b/Boot/Sources/HEL/AMD64/BootAHCI.cxx
index 7d07f8f0..ef327652 100644
--- a/Boot/Sources/HEL/AMD64/BootAHCI.cxx
+++ b/Boot/Sources/HEL/AMD64/BootAHCI.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
@@ -11,7 +11,7 @@
* @version 0.1
* @date 2024-02-02
*
- * @copyright Copyright (c) Zeta Electronics Corporation
+ * @copyright Copyright (c) ZKA Technologies
*
*/
diff --git a/Boot/Sources/HEL/AMD64/BootATA.cxx b/Boot/Sources/HEL/AMD64/BootATA.cxx
index 55a55a0c..1a59ce5c 100644
--- a/Boot/Sources/HEL/AMD64/BootATA.cxx
+++ b/Boot/Sources/HEL/AMD64/BootATA.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
@@ -11,7 +11,7 @@
* @version 0.1
* @date 2024-02-02
*
- * @copyright Copyright (c) Zeta Electronics Corporation
+ * @copyright Copyright (c) ZKA Technologies
*
*/
diff --git a/Boot/Sources/HEL/AMD64/BootFileReader.cxx b/Boot/Sources/HEL/AMD64/BootFileReader.cxx
index b5498cf9..f784bf6f 100644
--- a/Boot/Sources/HEL/AMD64/BootFileReader.cxx
+++ b/Boot/Sources/HEL/AMD64/BootFileReader.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
File: FileReader.cxx
Purpose: New Boot FileReader,
@@ -13,7 +13,6 @@
#include <BootKit/BootKit.hxx>
#include <FirmwareKit/Handover.hxx>
#include <FirmwareKit/EFI/API.hxx>
-#include <cstddef>
/// @file BootFileReader
/// @brief Bootloader File reader.
@@ -49,28 +48,27 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path,
EfiGUID guidEfp = EfiGUID(EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID);
- EfiSimpleFilesystemProtocol* efp = nullptr;
- EfiFileProtocol* rootFs = nullptr;
+ EfiSimpleFilesystemProtocol* efp = nullptr;
EfiLoadImageProtocol* img = nullptr;
EfiGUID guidImg = EfiGUID(EFI_LOADED_IMAGE_PROTOCOL_GUID);
if (BS->HandleProtocol(ImageHandle, &guidImg, (void**)&img) != kEfiOk)
{
- mWriter.Write(L"newosldr: Fetch-Protocol: No-Such-Protocol").Write(L"\r");
+ mWriter.Write(L"newosldr: Handle-Protocol: No-Such-Protocol").Write(L"\r");
this->mErrorCode = kNotSupported;
}
if (BS->HandleProtocol(img->DeviceHandle, &guidEfp, (void**)&efp) != kEfiOk)
{
- mWriter.Write(L"newosldr: Fetch-Protocol: No-Such-Protocol").Write(L"\r");
+ mWriter.Write(L"newosldr: Handle-Protocol: No-Such-Protocol").Write(L"\r");
this->mErrorCode = kNotSupported;
return;
}
/// Start doing disk I/O
- if (efp->OpenVolume(efp, &rootFs) != kEfiOk)
+ if (efp->OpenVolume(efp, &mRootFs) != kEfiOk)
{
mWriter.Write(L"newosldr: Fetch-Protocol: No-Such-Volume").Write(L"\r");
this->mErrorCode = kNotSupported;
@@ -79,18 +77,19 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path,
EfiFileProtocol* kernelFile = nullptr;
- if (rootFs->Open(rootFs, &kernelFile, mPath, kEFIFileRead, kEFIReadOnly) !=
+ if (mRootFs->Open(mRootFs, &kernelFile, mPath, kEFIFileRead, kEFIReadOnly) !=
kEfiOk)
{
mWriter.Write(L"newosldr: Fetch-Protocol: No-Such-Path: ")
.Write(mPath)
.Write(L"\r");
this->mErrorCode = kNotSupported;
+
+ mRootFs->Close(mRootFs);
+
return;
}
- rootFs->Close(rootFs);
-
mSizeFile = 0;
mFile = kernelFile;
mErrorCode = kOperationOkay;
@@ -104,50 +103,80 @@ BFileReader::~BFileReader()
this->mFile = nullptr;
}
+ if (this->mRootFs)
+ {
+ this->mRootFs->Close(this->mRootFs);
+ this->mRootFs = nullptr;
+ }
+
if (this->mBlob)
- BS->FreePool(mBlob);
+ {
+ BS->FreePool(this->mBlob);
+ this->mBlob = nullptr;
+ }
BSetMem(this->mPath, 0, kPathLen);
}
/**
- @brief this reads all of the buffer.
- @param until read until size is reached.
+ @brief Reads all of the file into a buffer.
+ @param **readUntil** size of file
+ @param **chunkToRead** chunk to read each time.
*/
-Void BFileReader::ReadAll(SizeT until, SizeT chunk)
+Void BFileReader::ReadAll(SizeT readUntil, SizeT chunkToRead)
{
if (mBlob == nullptr)
{
- if (auto err = BS->AllocatePool(EfiLoaderCode, until, (VoidPtr*)&mBlob) !=
+ EfiFileInfo newPtrInfo;
+ UInt32 szInfo = 0;
+
+ EfiGUID cFileInfoGUID = EFI_FILE_INFO_GUID;
+
+ if (mFile->GetInfo(mFile, &cFileInfoGUID, &szInfo, &newPtrInfo) == kEfiOk)
+ {
+ if (newPtrInfo.FileSize < readUntil)
+ readUntil = newPtrInfo.FileSize;
+ else if (readUntil < 1)
+ readUntil = newPtrInfo.FileSize;
+
+ mWriter.Write(L"newosldr: physical size: ").Write(readUntil).Write("\r");
+ }
+
+ if (auto err = BS->AllocatePool(EfiLoaderCode, readUntil, (VoidPtr*)&mBlob) !=
kEfiOk)
{
- mWriter.Write(L"*** EFI-Code: ").Write(err).Write(L" ***\r");
+ mWriter.Write(L"*** error: ").Write(err).Write(L" ***\r");
EFI::ThrowError(L"OutOfMemory", L"Out of memory.");
}
}
mErrorCode = kNotSupported;
- UInt64 bufSize = chunk;
- UInt64 szCnt = 0;
- UInt64 curSz = 0;
+ UInt64 bufSize = chunkToRead;
+ UInt64 szCnt = 0UL;
- while (szCnt < until)
+ while (szCnt < readUntil)
{
- if (mFile->Read(mFile, &bufSize, (VoidPtr)((UIntPtr)mBlob + curSz)) !=
- kEfiOk)
- {
- break;
- }
+ auto res = mFile->Read(mFile, &bufSize, (VoidPtr)(&((Char*)mBlob)[szCnt]));
szCnt += bufSize;
- curSz += bufSize;
- if (bufSize == 0)
+ if (res == kBufferTooSmall)
+ {
+ mErrorCode = kTooSmall;
+ return;
+ }
+ else if (res == kEfiOk)
+ {
+ continue;
+ }
+ else
+ {
break;
+ }
}
- mSizeFile = curSz;
+ mSizeFile = szCnt;
mErrorCode = kOperationOkay;
}
diff --git a/Boot/Sources/HEL/AMD64/BootJump.S b/Boot/Sources/HEL/AMD64/BootJump.S
index c2f03921..fc7b3c68 100644
--- a/Boot/Sources/HEL/AMD64/BootJump.S
+++ b/Boot/Sources/HEL/AMD64/BootJump.S
@@ -8,11 +8,12 @@
@brief this function setups a stack and then jumps to
a function */
rt_jump_to_address:
- mov rdx, rsp
- mov rdi, rcx
- mov rdx, rbp
+ mov r8, rsp
+
push rax
- mov r8, rcx
- call rdi
+ push rdx
+ jmp rcx
+ pop rdx
pop rax
+
ret
diff --git a/Boot/Sources/HEL/AMD64/BootMain.cxx b/Boot/Sources/HEL/AMD64/BootMain.cxx
index c786c16d..3cd6c0e3 100644
--- a/Boot/Sources/HEL/AMD64/BootMain.cxx
+++ b/Boot/Sources/HEL/AMD64/BootMain.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
@@ -10,24 +10,25 @@
#include <FirmwareKit/EFI.hxx>
#include <FirmwareKit/EFI/API.hxx>
#include <FirmwareKit/Handover.hxx>
-#include <KernelKit/MSDOS.hpp>
+#include <KernelKit/MSDOS.hxx>
#include <KernelKit/PE.hxx>
-#include <KernelKit/PEF.hpp>
+#include <KernelKit/PEF.hxx>
#include <NewKit/Macros.hpp>
-#include <NewKit/Ref.hpp>
+#include <NewKit/Ref.hxx>
+#include <BootKit/ProgramLoader.hxx>
#include <cstring>
-/// make the compiler shut up.
+// make the compiler shut up.
#ifndef kMachineModel
-#define kMachineModel "Zeta HD"
+#define kMachineModel "ZKA SSD"
#endif // !kMachineModel
#ifndef cExpectedWidth
-#define cExpectedWidth 436
+#define cExpectedWidth 1280
#endif
#ifndef cExpectedHeight
-#define cExpectedHeight 644
+#define cExpectedHeight 720
#endif
/** Graphics related. */
@@ -51,9 +52,14 @@ STATIC Void InitVideoFB() noexcept
BS->LocateProtocol(&kGopGuid, nullptr, (VoidPtr*)&kGop);
- for (size_t i = 0; i < kGop->Mode->MaxMode; ++i)
+ kStride = 4;
+
+ for (SizeT i = 0; i < kGop->Mode->MaxMode; ++i)
{
EfiGraphicsOutputProtocolModeInformation* infoPtr = nullptr;
+ UInt32 sz = 0U;
+
+ kGop->QueryMode(kGop, i, &sz, &infoPtr);
if (infoPtr->HorizontalResolution == cExpectedWidth &&
infoPtr->VerticalResolution == cExpectedHeight)
@@ -62,8 +68,6 @@ STATIC Void InitVideoFB() noexcept
break;
}
}
-
- kStride = 4;
}
/// @brief check the BootDevice if suitable.
@@ -88,18 +92,10 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
/// Splash screen stuff
- writer.Write(L"Zeta Electronics Corporation (R) newosldr: ")
+ writer.Write(L"ZKA Technologies (R) newosldr: ")
.Write(BVersionString::The())
.Write("\r");
-#ifndef __DEBUG__
- writer.Write(L"\rnewosldr: AMD64 is only supported in debug mode.\r");
-
- EFI::Stop();
-
- CANT_REACH();
-#endif
-
UInt32* MapKey = new UInt32();
UInt32* SizePtr = new UInt32();
EfiMemoryDescriptor* Descriptor = nullptr;
@@ -124,16 +120,20 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
vendorTable[4] == 'P' && vendorTable[5] == 'T' &&
vendorTable[6] == 'R' && vendorTable[7] == ' ')
{
- writer.Write(L"newosldr: Found ACPI RSD PTR!\r");
- handoverHdrPtr->f_HardwareTables.f_RsdPtr = (VoidPtr)vendorTable;
+ writer.Write(L"newosldr: Filling rsdptr...\r");
+ handoverHdrPtr->f_HardwareTables.f_VendorPtr = (VoidPtr)vendorTable;
break;
}
}
+ // Fill handover header now.
+
handoverHdrPtr->f_Magic = kHandoverMagic;
handoverHdrPtr->f_Version = kHandoverVersion;
+ // Provide fimware vendor name.
+
BCopyMem(handoverHdrPtr->f_FirmwareVendorName, SystemTable->FirmwareVendor,
handoverHdrPtr->f_FirmwareVendorLen);
@@ -144,58 +144,41 @@ 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;
- ///! Finally draw bootloader screen.
+ // Assign to global 'kHandoverHeader'.
kHandoverHeader = handoverHdrPtr;
- GXInit();
-
- GXDraw(RGB(9d, 9d, 9d), handoverHdrPtr->f_GOP.f_Height,
- handoverHdrPtr->f_GOP.f_Width, 0, 0);
-
- GXFini();
-
- GXDrawImg(NewBoot, NEWBOOT_HEIGHT, NEWBOOT_WIDTH,
- (handoverHdrPtr->f_GOP.f_Width - NEWBOOT_WIDTH) / 2,
- (handoverHdrPtr->f_GOP.f_Height - NEWBOOT_HEIGHT) / 2);
+ // check if we are running in the PC platform. If so abort.
+#if defined(__NEWOS_AMD64__) && !defined(__DEBUG__)
+ writer.Write(L"\rnewosldr: AMD64 support is not official.\r");
+ EFI::ThrowError(L"Beta-Software", L"Beta Software.");
+#endif
- GXFini();
+ // get memory map.
BS->GetMemoryMap(SizePtr, Descriptor, MapKey, SzDesc, RevDesc);
Descriptor = new EfiMemoryDescriptor[*SzDesc];
BS->GetMemoryMap(SizePtr, Descriptor, MapKey, SzDesc, RevDesc);
- writer.Write(L"Kernel-Desc-Count: ");
- writer.Write(*SzDesc);
- writer.Write(L"\r");
+ auto cDefaultMemoryMap = 0; // The sixth entry.
- auto cDefaultMemoryMap = 0; /// The sixth entry.
+ //-----------------------------------------------------------//
+ // A simple loop which finds a usable memory region for us.
+ //-----------------------------------------------------------//
- /// A simple loop which finds a usable memory region for us.
- SizeT i = 0UL;
- for (; Descriptor[i].Kind != EfiMemoryType::EfiConventionalMemory; ++i)
+ SizeT lookIndex = 0UL;
+
+ for (; Descriptor[lookIndex].Kind != EfiMemoryType::EfiConventionalMemory; ++lookIndex)
{
;
}
- cDefaultMemoryMap = i;
-
- writer.Write(L"Number-Of-Pages: ")
- .Write(Descriptor[cDefaultMemoryMap].NumberOfPages)
- .Write(L"\r");
- writer.Write(L"Virtual-Address: ")
- .Write(Descriptor[cDefaultMemoryMap].VirtualStart)
- .Write(L"\r");
- writer.Write(L"Phyiscal-Address: ")
- .Write(Descriptor[cDefaultMemoryMap].PhysicalStart)
- .Write(L"\r");
- writer.Write(L"Page-Kind: ")
- .Write(Descriptor[cDefaultMemoryMap].Kind)
- .Write(L"\r");
- writer.Write(L"Page-Attribute: ")
- .Write(Descriptor[cDefaultMemoryMap].Attribute)
- .Write(L"\r");
+ cDefaultMemoryMap = lookIndex;
+
+ //-----------------------------------------------------------//
+ // Update handover file specific table and phyiscal start field.
+ //-----------------------------------------------------------//
handoverHdrPtr->f_PhysicalStart =
(VoidPtr)Descriptor[cDefaultMemoryMap].PhysicalStart;
@@ -214,41 +197,18 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
handoverHdrPtr->f_FirmwareVendorLen = BStrLen(SystemTable->FirmwareVendor);
- BFileReader reader(L"SplashScreen.fmt", ImageHandle);
- reader.ReadAll(512, 16);
-
- if (reader.Blob())
- {
- Char* buf = (Char*)reader.Blob();
-
- for (SizeT i = 0; i < reader.Size(); ++i)
- {
- if (buf[i] != '\n' && buf[i] != '\r')
- {
- if (buf[i] == '*')
- {
- writer.WriteCharacter('\t');
- }
- else
- {
- writer.WriteCharacter(buf[i]);
- }
- }
- else
- writer.Write(L"\r");
- }
- }
-
- ///
- /// The following checks for an exisiting partition
- /// inside the disk, if it doesn't have one,
- /// format the disk.
- //
+ // ---------------------------------------------------- //
+ // The following checks for an exisiting partition
+ // inside the disk, if it doesn't have one,
+ // format the disk.
+ // ---------------------------------------------------- //
BDiskFormatFactory<BootDeviceATA> diskFormatter;
- /// if not formated yet, then format it with the following folders:
- /// /, /Boot, /Applications.
+ // ---------------------------------------------------- //
+ // if not formated yet, then format it with the following folders:
+ // /, /Boot, /Applications.
+ // ---------------------------------------------------- //
if (!diskFormatter.IsPartitionValid())
{
BDiskFormatFactory<BootDeviceATA>::BFileDescriptor rootDesc{0};
@@ -259,10 +219,33 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
diskFormatter.Format(kMachineModel, &rootDesc, 1);
}
+#ifdef __NEWOS_OTA__
+
+ BFileReader readerKernel(L"newoskrnl.exe", ImageHandle);
+
+ readerKernel.ReadAll(0);
+
+ Boot::ProgramLoader* loader = nullptr;
+
+ if (readerKernel.Blob())
+ {
+ loader = new Boot::ProgramLoader(readerKernel.Blob());
+ loader->SetName("\"newoskrnl.exe\" (ZKA)");
+ }
+
+#endif // ifdef __NEWOS_OTA__
+
EFI::ExitBootServices(*MapKey, ImageHandle);
- /// Fallback to builtin kernel.
+ // ---------------------------------------------------- //
+ // Call OTA kernel or fallback to builtin.
+ // ---------------------------------------------------- //
+#ifdef __NEWOS_OTA__
+ if (loader)
+ loader->Start(handoverHdrPtr);
+#else
hal_init_platform(handoverHdrPtr);
+#endif // ifdef __NEWOS_OTA__
EFI::Stop();
diff --git a/Boot/Sources/HEL/AMD64/BootPlatform.cxx b/Boot/Sources/HEL/AMD64/BootPlatform.cxx
index e700a8de..58af5580 100644
--- a/Boot/Sources/HEL/AMD64/BootPlatform.cxx
+++ b/Boot/Sources/HEL/AMD64/BootPlatform.cxx
@@ -1,13 +1,12 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
#include <BootKit/Platform.hxx>
#include <BootKit/Protocol.hxx>
#include <BootKit/BootKit.hxx>
-#include "HALKit/AMD64/Processor.hpp"
#ifdef __STANDALONE__
@@ -94,6 +93,8 @@ EXTERN_C UInt32 In32(UInt16 port)
#else
+#include <HALKit/AMD64/Processor.hxx>
+
void rt_hlt()
{
Kernel::HAL::rt_halt();
diff --git a/Boot/Sources/HEL/AMD64/BootString.cxx b/Boot/Sources/HEL/AMD64/BootString.cxx
index f811130f..6fff3193 100644
--- a/Boot/Sources/HEL/AMD64/BootString.cxx
+++ b/Boot/Sources/HEL/AMD64/BootString.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
File: String.cxx
Purpose: NewBoot string library
diff --git a/Boot/Sources/HEL/AMD64/BootTextWriter.cxx b/Boot/Sources/HEL/AMD64/BootTextWriter.cxx
index 3006591a..7b0ab50c 100644
--- a/Boot/Sources/HEL/AMD64/BootTextWriter.cxx
+++ b/Boot/Sources/HEL/AMD64/BootTextWriter.cxx
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
File: String.cxx
Purpose: NewBoot string library
@@ -85,6 +85,36 @@ BTextWriter& BTextWriter::Write(const Char* str)
return *this;
}
+BTextWriter& BTextWriter::Write(const UChar* str)
+{
+#ifdef __DEBUG__
+ if (!str || *str == 0)
+ return *this;
+
+ CharacterTypeUTF16 strTmp[2];
+ strTmp[1] = 0;
+
+ for (size_t i = 0; str[i] != 0; i++)
+ {
+ if (str[i] == '\r')
+ {
+ strTmp[0] = str[i];
+ ST->ConOut->OutputString(ST->ConOut, strTmp);
+
+ strTmp[0] = '\n';
+ ST->ConOut->OutputString(ST->ConOut, strTmp);
+ }
+ else
+ {
+ strTmp[0] = str[i];
+ ST->ConOut->OutputString(ST->ConOut, strTmp);
+ }
+ }
+#endif // ifdef __DEBUG__
+
+ return *this;
+}
+
/**
@brief putc wrapper over EFI ConOut.
*/
@@ -131,9 +161,9 @@ BTextWriter& BTextWriter::_Write(const Long& x)
if (y < 0)
y = -y;
- const char NUMBERS[17] = "0123456789ABCDEF";
+ const char cNumbers[17] = "0123456789ABCDEF";
- this->WriteCharacter(NUMBERS[h]);
+ this->WriteCharacter(cNumbers[h]);
#endif // ifdef __DEBUG__
return *this;
diff --git a/Boot/Sources/HEL/AMD64/New+Delete.cxx b/Boot/Sources/HEL/AMD64/New+Delete.cxx
index 647cddb1..15903bb4 100644
--- a/Boot/Sources/HEL/AMD64/New+Delete.cxx
+++ b/Boot/Sources/HEL/AMD64/New+Delete.cxx
@@ -1,15 +1,15 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
#include <BootKit/Platform.hxx>
#include <BootKit/Protocol.hxx>
#include <BootKit/BootKit.hxx>
-#include <cstddef> /* Since we're using GCC for this EFI program. */
#ifdef __STANDALONE__
+#include <cstddef> /* Since we're using GCC for this EFI program. */
/// @brief Allocates a new object.
/// @param sz the size.
diff --git a/Boot/Sources/HEL/AMD64/Support.cxx b/Boot/Sources/HEL/AMD64/Support.cxx
index 8ebfb2ff..a2ac6394 100644
--- a/Boot/Sources/HEL/AMD64/Support.cxx
+++ b/Boot/Sources/HEL/AMD64/Support.cxx
@@ -1,12 +1,16 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */
+#include <BootKit/BootKit.hxx>
+#include <FirmwareKit/EFI/API.hxx>
#include <FirmwareKit/EFI/EFI.hxx>
#include <FirmwareKit/Handover.hxx>
-#include <BootKit/Vendor/Support.hxx>
+#include <BootKit/Support.hxx>
+#include <KernelKit/MSDOS.hxx>
+#include <KernelKit/PE.hxx>
#ifdef __STANDALONE__
@@ -54,7 +58,7 @@ EXTERN_C size_t strlen(const char* whatToCheck)
return len;
}
-/// @brief somthing specific to the microsoft ABI, regarding checking the stack.
+/// @brief somthing specific to the Microsoft's ABI, When the stack grows too big.
EXTERN_C void ___chkstk_ms(void)
{
}
diff --git a/Boot/Sources/HEL/AMD64/compile_flags.txt b/Boot/Sources/HEL/AMD64/compile_flags.txt
index e4515efe..c24c4b09 100644
--- a/Boot/Sources/HEL/AMD64/compile_flags.txt
+++ b/Boot/Sources/HEL/AMD64/compile_flags.txt
@@ -1,3 +1,7 @@
-std=c++20
-I../../../
--I../../../../
+-I../../../../Kernel
+-D__NEWOS_AMD64__
+-std=c++20
+-D__x86_64__
+-D__NEWOS_OTA__
diff --git a/Boot/Sources/HEL/POWER/CoreBootStartup.S b/Boot/Sources/HEL/POWER/CoreBootStartup.S
index cff1add7..685dd836 100644
--- a/Boot/Sources/HEL/POWER/CoreBootStartup.S
+++ b/Boot/Sources/HEL/POWER/CoreBootStartup.S
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Zeta Electronics Corporation
+ Copyright ZKA Technologies
------------------------------------------- */