summaryrefslogtreecommitdiffhomepage
path: root/Private/FirmwareKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-04-06 01:45:03 +0200
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-04-06 01:45:10 +0200
commite47a33d7d4f70c54a27e96df437e6d9ac4e829cf (patch)
tree51a9f9f5019006e705444aa5f628fdae0d8dfb66 /Private/FirmwareKit
parent5152c2282a1a680a272322f0bd3275fdf43e1530 (diff)
Add boot_write_epm_partition for PowerPC, update start location for AMD64 EPM.
Remove HCFS support, fully focusing on NewFS. Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Private/FirmwareKit')
-rw-r--r--Private/FirmwareKit/EFI/API.hxx2
-rw-r--r--Private/FirmwareKit/EPM.hxx6
2 files changed, 6 insertions, 2 deletions
diff --git a/Private/FirmwareKit/EFI/API.hxx b/Private/FirmwareKit/EFI/API.hxx
index 4431facb..90503384 100644
--- a/Private/FirmwareKit/EFI/API.hxx
+++ b/Private/FirmwareKit/EFI/API.hxx
@@ -34,7 +34,7 @@ Bascially frees everything we have in the EFI side.
inline void ExitBootServices(UInt64 MapKey, EfiHandlePtr ImageHandle) noexcept {
if (!ST) return;
- ST->BootServices->ExitBootServices(ImageHandle, MapKey);
+ while (ST->BootServices->ExitBootServices(ImageHandle, MapKey) != kEfiOk);
}
enum {
diff --git a/Private/FirmwareKit/EPM.hxx b/Private/FirmwareKit/EPM.hxx
index 6b1d2f49..048324f5 100644
--- a/Private/FirmwareKit/EPM.hxx
+++ b/Private/FirmwareKit/EPM.hxx
@@ -52,7 +52,7 @@ struct PACKED PartitionBlock {
NewOS::Int64 LbaStart;
NewOS::Int16 Kind;
NewOS::Int32 FsVersion;
- NewOS::Char Fs[kEPMFilesystemLength]; /* NewFS, HCFS... */
+ NewOS::Char Fs[kEPMFilesystemLength]; /* NewFS, ffs2... */
};
/* @brief AMD64 magic for EPM */
@@ -97,8 +97,12 @@ typedef struct PartitionBlock PartitionBlockType;
#ifdef __x86_64__
#define kEPMMagic kEPMMagic86
#else
+#ifdef __powerpc
+#define kEPMMagic kEPMMagicPPC
+#else
#define kEPMMagic kEPMMagicError
#endif
+#endif
///! @brief partition must start after this address.
#define kEPMStartPartitionBlk 0