[Bug 211746] [Hyper-V] UEFI VM can't boot from the iso installation disk

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Feb 14 16:56:06 UTC 2017


--- Comment #10 from Marcel Moolenaar <marcel at 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.


You are receiving this mail because:
You are the assignee for the bug.

More information about the freebsd-virtualization mailing list