From cc01166a24f62e4660d050544ff4b4b39f0392fc Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 11 Sep 2018 16:31:25 +0100 Subject: [PATCH] builder: templates: Make UEFI code arch-independent. Previously it only worked for aarch64. --- builder/templates/make-template.ml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/builder/templates/make-template.ml b/builder/templates/make-template.ml index 5c776e377..160f33180 100755 --- a/builder/templates/make-template.ml +++ b/builder/templates/make-template.ml @@ -126,13 +126,21 @@ let rec main () = (* Some architectures need EFI boot. *) let tmpefivars = if needs_uefi os arch then ( - let vars = Sys.getcwd () // sprintf "%s.vars" tmpname in - unlink_on_exit vars; - let cmd = - sprintf "cp /usr/share/edk2/aarch64/vars-template-pflash.raw %s" - (quote vars) in + let code, vars = + match arch with + | X86_64 -> + "/usr/share/edk2/ovmf/OVMF_CODE.fd", + "/usr/share/edk2/ovmf/OVMF_VARS.fd" + | Aarch64 -> + "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw", + "/usr/share/edk2/aarch64/vars-template-pflash.raw" + | _ -> assert false in + + let vars_out = Sys.getcwd () // sprintf "%s.vars" tmpname in + unlink_on_exit vars_out; + let cmd = sprintf "cp %s %s" (quote vars) (quote vars_out) in if Sys.command cmd <> 0 then exit 1; - Some ("/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw", vars) + Some (code, vars_out) ) else None in