diff --git a/boot/freeldr/freeldr/arch/uefi/arm64/uefiasm.S b/boot/freeldr/freeldr/arch/uefi/arm64/uefiasm.S new file mode 100644 index 00000000000..7ba4c0796a8 --- /dev/null +++ b/boot/freeldr/freeldr/arch/uefi/arm64/uefiasm.S @@ -0,0 +1,20 @@ + #include + + EXTERN BasicStack + EXTERN UefiExitBootServices + EXTERN ExecuteLoaderCleanly + + NESTED_ENTRY _changestack + PROLOG_END _changestack + ldr x1, =BasicStack + mov sp, x1 + b ExecuteLoaderCleanly + NESTED_END _changestack + + NESTED_ENTRY _exituefi + PROLOG_END _exituefi + b UefiExitBootServices + ret + NESTED_END _exituefi + + END \ No newline at end of file diff --git a/boot/freeldr/freeldr/arch/uefi/uefihw.c b/boot/freeldr/freeldr/arch/uefi/uefihw.c index 8dcf9602274..76a2c30f34b 100644 --- a/boot/freeldr/freeldr/arch/uefi/uefihw.c +++ b/boot/freeldr/freeldr/arch/uefi/uefihw.c @@ -23,7 +23,7 @@ extern UINT32 FreeldrDescCount; BOOLEAN AcpiPresent = FALSE; /* FUNCTIONS *****************************************************************/ - +#if 0 static PRSDP_DESCRIPTOR FindAcpiBios(VOID) @@ -122,11 +122,13 @@ DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) } } +#endif + PCONFIGURATION_COMPONENT_DATA UefiHwDetect(VOID) { PCONFIGURATION_COMPONENT_DATA SystemKey; - ULONG BusNumber = 0; + //ULONG BusNumber = 0; TRACE("DetectHardware()\n"); @@ -142,7 +144,7 @@ UefiHwDetect(VOID) #endif /* Detect ACPI */ - DetectAcpiBios(SystemKey, &BusNumber); + // DetectAcpiBios(SystemKey, &BusNumber); TRACE("DetectHardware() Done\n"); return SystemKey; diff --git a/boot/freeldr/freeldr/arch/uefi/uefildr.c b/boot/freeldr/freeldr/arch/uefi/uefildr.c index 9f801d978a8..726e81bde24 100644 --- a/boot/freeldr/freeldr/arch/uefi/uefildr.c +++ b/boot/freeldr/freeldr/arch/uefi/uefildr.c @@ -18,6 +18,7 @@ PVOID UefiServiceStack; PVOID BasicStack; void _changestack(VOID); +VOID __cdecl Reboot(VOID); /* FUNCTIONS ******************************************************************/ diff --git a/boot/freeldr/freeldr/uefi.cmake b/boot/freeldr/freeldr/uefi.cmake index 6586838bb7b..82cb1aedc7c 100644 --- a/boot/freeldr/freeldr/uefi.cmake +++ b/boot/freeldr/freeldr/uefi.cmake @@ -40,6 +40,8 @@ elseif(ARCH STREQUAL "arm") elseif(ARCH STREQUAL "arm64") list(APPEND UEFILDR_ARC_SOURCE arch/arm64/mach.c) + list(APPEND UEFILDR_COMMON_ASM_SOURCE + arch/uefi/arm64/uefiasm.S) #TBD else() #TBD