blob: 7e4a09e19410c978c3db81eee6f6ee06514d25b8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org)
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/ne-foss-org/nekernel
#ifndef FIRMWAREKIT_NEBOOT_H
#define FIRMWAREKIT_NEBOOT_H
#include <NeKit/Config.h>
namespace Firmware::Detail::NeBoot {
using namespace Kernel;
struct NEBOOT_LINEAR_EXEC;
/// @brief Linear Executable Header
/// @author Amlal El Mahrouss
struct ATTRIBUTE(aligned(4)) NEBOOT_LINEAR_EXEC {
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 NE_IS_EXTENDED_COREBOOT
UIntPtr fMasterStructure; // master structure for MP/PM and device tree and such. (ARM)
UIntPtr fMasterStructureVersion; // master structure version.
#endif
#ifdef NE_IS_MBCI_COREBOOT
UIntPtr fMBCIStructure; // MBCI structure for MBCI (ARM)
UIntPtr fMBCIStructureVersion; // MBCI structure version.
#endif
};
} // namespace Firmware::Detail::NeBoot
#endif
|