Skip site navigation (1)Skip section navigation (2)
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>