[Bug 211746] [Hyper-V] UEFI VM can't boot from the iso installation disk
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Feb 13 13:36:30 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211746
--- Comment #4 from Dexuan Cui <decui at microsoft.com> ---
(In reply to Marcel Moolenaar from comment #3)
Hi Marcel,
Thank you for the quick help!
Yes, I checked all the AllocatePages() calls and they all succeeded, i.e.
returning 0.
I found the crash happened in
elf64_exec() -> trampoline() -> efi_copy_finish -> *dst++ = *src++;
In efi_copy_finish(), I added some printf's to dump the values of the
varilables:
/boot/kernel/kernel text=0xfe3048 data=0x128b68+0x207fa0
syms=[0x8+0x146f88+0x8+
Booting...
Start @ 0xffffffff802e2640 ...
EFI framebuffer information:
addr, size 0xf8000000, 0x800000
dimensions 1024 x 768
stride 1024
masks 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
efi_copy_finish : staging=0xf37cb000
efi_copy_finish : staging_end=0xf67cb000
efi_copy_finish : staging_offset=0xf35cb000
efi_copy_finish : src=0xf37cb000, dst=0x200000, last=0xf67cb000
If I change the line
last = (uint64_t *)staging_end;
to
last = (uint64_t *)staging + (1024*1024*45);
The crash won't happen and the kernel can boot fine.
I'm using the releng/10.3 branch, where EFI_STAGING_SIZE is 48MB.
This is to say, the kernel can boot fine if I use EFI_STAGING_SIZE=45MB.
Any idea?
Why do you think is it a Hyper-V firmware bug in AllocatePages()? I'm not
familar with UEFI Boot Services. :-)
I'll check the memory map before/after the call to AllocatePages().
I'm going to use sys/boot/efi/loader/main.c: command_memmap() as an example to
call GetMemoryMap.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-virtualization
mailing list