aboutsummaryrefslogtreecommitdiff
path: root/sys/boot/efi/loader/arch/arm64/exec.c
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2016-06-04 08:47:45 +0000
committerAndrew Turner <andrew@FreeBSD.org>2016-06-04 08:47:45 +0000
commitd15667174d69b1a3c3c35b78cd3e13b4e0b55c8a (patch)
treeeffb212e85ec6d8f6a7bb5ad0a2de66832332f87 /sys/boot/efi/loader/arch/arm64/exec.c
parent8cfcd74fa1ae85b48a9fde3b7c7ea19121a69915 (diff)
downloadsrc-d15667174d69b1a3c3c35b78cd3e13b4e0b55c8a.tar.gz
src-d15667174d69b1a3c3c35b78cd3e13b4e0b55c8a.zip
Use the UEFI event timer to update the time on arm and arm64. The current
code uses the GetTime function from the Runtime Service, however this has been shown to not return a useable time on many arm64 UEFI implementations. Reviewed by: jhb, smh Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D6709
Notes
Notes: svn path=/head/; revision=301306
Diffstat (limited to 'sys/boot/efi/loader/arch/arm64/exec.c')
-rw-r--r--sys/boot/efi/loader/arch/arm64/exec.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/boot/efi/loader/arch/arm64/exec.c b/sys/boot/efi/loader/arch/arm64/exec.c
index eb1830c548a4..45321261def0 100644
--- a/sys/boot/efi/loader/arch/arm64/exec.c
+++ b/sys/boot/efi/loader/arch/arm64/exec.c
@@ -113,9 +113,12 @@ elf64_exec(struct preloaded_file *fp)
ehdr = (Elf_Ehdr *)&(md->md_data);
entry = efi_translate(ehdr->e_entry);
+ efi_time_fini();
err = bi_load(fp->f_args, &modulep, &kernendp);
- if (err != 0)
+ if (err != 0) {
+ efi_time_init();
return (err);
+ }
dev_cleanup();