Setup processor context (GDT, PCR, TSS) and kernel startup stack before booting XTOS
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
2023-01-25 18:39:07 +01:00
parent 3ad3149f80
commit 3b08bcaa4f
5 changed files with 573 additions and 1 deletions

View File

@@ -12,6 +12,9 @@
#include <blmod.h>
/* EFI XT Loader Protocol */
EXTERN PXT_BOOT_LOADER_PROTOCOL XtLdrProtocol;
/* XTOS kernel entry point */
typedef VOID (XTAPI *PXT_ENTRY_POINT)(IN PKERNEL_INITIALIZATION_BLOCK BootParameters);
@@ -25,6 +28,22 @@ EFI_STATUS
XtpBootSequence(IN PEFI_FILE_HANDLE BootDir,
IN PXT_BOOT_PROTOCOL_PARAMETERS Parameters);
XTCDECL
VOID
XtpInitializeGdtEntry(IN PKGDTENTRY Gdt,
IN USHORT Selector,
IN ULONGLONG Base,
IN ULONG Limit,
IN UCHAR Type,
IN UCHAR Dpl,
IN UCHAR SegmentMode);
XTCDECL
EFI_STATUS
XtpInitializeDescriptors(IN PLIST_ENTRY MemoryMappings,
IN PVOID *VirtualAddress,
OUT PKGDTENTRY *Gdt);
XTCDECL
EFI_STATUS
XtpInitializeLoaderBlock(IN PLIST_ENTRY MemoryMappings,
@@ -38,6 +57,16 @@ XtpLoadModule(IN PEFI_FILE_HANDLE BootDir,
IN LOADER_MEMORY_TYPE MemoryType,
OUT PPECOFF_IMAGE_CONTEXT *ImageContext);
XTCDECL
VOID
XtpLoadProcessorContext(IN PKGDTENTRY Gdt);
XTCDECL
EFI_STATUS
XtpSetProcessorContext(IN PLIST_ENTRY MemoryMappings,
IN PVOID *VirtualAddress,
OUT PKGDTENTRY *Gdt);
XTCDECL
EFI_STATUS
BlXtLdrModuleMain(IN EFI_HANDLE ImageHandle,