Date: Tue, 14 Feb 2017 16:56:04 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-virtualization@FreeBSD.org Subject: [Bug 211746] [Hyper-V] UEFI VM can't boot from the iso installation disk Message-ID: <bug-211746-27103-emioviHAFd@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-211746-27103@https.bugs.freebsd.org/bugzilla/> References: <bug-211746-27103@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D211746 --- Comment #10 from Marcel Moolenaar <marcel@FreeBSD.org> --- I just realized that efi_copy_finish() is called via trampoline(). I presume that this means that it runs with the temporary mapping that was created in elf64_exec(). We only map the 1GB of physical memory (using 2MB pages). This means that the EFI allocation must be placed below 0x40000000. However, it = is placed at 0xf37cb000. Maybe the problem is that for smaller allocations, EFI assigns low memory (= i.e. under 1GB), but for larger allocations it favors high memory? To test this theory, change efi_copy_init() and instead of passing AllocateAnyPages as the first argument, pass AllocateMaxAddress as the first argument and put a maximum address of 1GB in the staging variable before the call to AllocatePages (see also elf64_exec). Either the allocation fails, or we're guaranteed to have memory below 1GB. HTH, --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-211746-27103-emioviHAFd>