summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/FirmwareKit/CoreBoot
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-01-24 21:18:46 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-01-24 21:18:46 +0100
commit105c5a085c9cacf5774511506ebe4ada8f325457 (patch)
tree9c603e70918154f73e16c7a29a70ffba34a5270f /dev/Kernel/FirmwareKit/CoreBoot
parent7ec22ed2ec82a72d691795bf12c158e1d58b09f7 (diff)
ADD: Missing components from private repository.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel/FirmwareKit/CoreBoot')
-rw-r--r--dev/Kernel/FirmwareKit/CoreBoot/CoreBoot.h31
-rw-r--r--dev/Kernel/FirmwareKit/CoreBoot/NS.h10
-rw-r--r--dev/Kernel/FirmwareKit/CoreBoot/NetBoot.h25
3 files changed, 66 insertions, 0 deletions
diff --git a/dev/Kernel/FirmwareKit/CoreBoot/CoreBoot.h b/dev/Kernel/FirmwareKit/CoreBoot/CoreBoot.h
new file mode 100644
index 00000000..b30511f6
--- /dev/null
+++ b/dev/Kernel/FirmwareKit/CoreBoot/CoreBoot.h
@@ -0,0 +1,31 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <NewKit/Defines.h>
+
+namespace Firmware::Detail::CoreBoot
+{
+ using namespace Kernel;
+
+ struct LEHeader;
+
+ /// @brief Linear Executable Header
+ /// @author Amlal EL Mahrouss
+ struct ATTRIBUTE(aligned(4)) LEHeader
+ {
+ const Char fMagic[2]; // magic number
+ const Char fName[10]; // operating system name
+ const UInt32 fRevision; // firmware revision
+ const UInt32 fStartAddress; // start address (master/slave(s) thread)
+
+#ifdef ZKA_IS_EXTENDED_COREBOOT
+ const UIntPtr fMasterStructure; // master structure for MP/PM and device tree and such (ARM)
+ const UIntPtr fMasterStructureVersion; // master structure version.
+#endif
+ };
+} // namespace Firmware::Detail::CoreBoot
diff --git a/dev/Kernel/FirmwareKit/CoreBoot/NS.h b/dev/Kernel/FirmwareKit/CoreBoot/NS.h
new file mode 100644
index 00000000..efe7fa19
--- /dev/null
+++ b/dev/Kernel/FirmwareKit/CoreBoot/NS.h
@@ -0,0 +1,10 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <FirmwareKit/CoreBoot/CoreBoot.h>
+#include <FirmwareKit/CoreBoot/NetBoot.h> \ No newline at end of file
diff --git a/dev/Kernel/FirmwareKit/CoreBoot/NetBoot.h b/dev/Kernel/FirmwareKit/CoreBoot/NetBoot.h
new file mode 100644
index 00000000..a6f10809
--- /dev/null
+++ b/dev/Kernel/FirmwareKit/CoreBoot/NetBoot.h
@@ -0,0 +1,25 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <NewKit/Defines.h>
+
+/// @brief the internet header is used to download updates OTA.
+typedef struct NetBootInternetHeader
+{
+ Kernel::Char NB1; /// magic char 1 'N'
+ Kernel::Char NB2; /// magic char 2 'E'
+ Kernel::Char NB3; /// magic char 3 'T'
+ Kernel::Char NB4; /// magic char 4 'B'
+
+ Kernel::Char PatchName[255]; /// example: ColdChoco
+ Kernel::Int32 PatchLength; /// the patch length.
+ Kernel::Char PatchTarget[255]; /// the target file.
+ Kernel::Boolean ImpliesROM; /// does it imply an EEPROM reprogram?
+ Kernel::Boolean Preflight; /// is it a preflight packet.
+ Kernel::Char Patch[]; /// non preflight packet has a patch blob for a **PatchTarget**
+} NetBootInternetHeader;