Hi, On Thu, 26 Nov 2015 09:57:12 -0500 "Joe Gidi" <j...@entropicblur.com> wrote: > On Thu, November 26, 2015 5:20 am, YASUOKA Masahiko wrote: >> On Wed, 11 Nov 2015 15:33:06 -0500 >> "Joe Gidi" <j...@entropicblur.com> wrote: >>> I recently installed a UEFI-capable Asus M5A97 LE R2.0 motherboard in >>> one >>> of my systems and tried to boot the November 11th amd64 miniroot58.fs >>> image to test UEFI booting. I get to the bootloader, but it appears to >>> fail while loading the kernel and goes into a reboot loop. Here's >>> everything I see on screen before it reboots: >>> >>> probing: pc0 mem[640K 2984M 4M 48K 5103M] >>> disk: hd0 hd1 hd2* >>>>> OpenBSD/amd64 EFIBOOT 3.29 >>> boot> >>> cannot open hd0a:/etc/random.seed: No such file or directory >>> booting hd0a:/bsd:3273216+1394144+2409472+0+569344=0x74d238 >> >> I'd like to figure out where the efiboot is stopping. Can you replace >> the BOOTX64.EFI in the miniroot58.fs and check the output? > > Sure, I now get these two lines after the 'booting' line: > > GOP setmode failed(7) > Hit any key to reboot
The bootloader changs the video resolution before start the kernel. It seems to fail. "GOP", Graphic Output Protocol, returns an error. 7 means EFI_DEVICE_ERROR. > Please let me know if I can do any further testing, and thank you for > looking into this. Can you provide the result of "machine video" and try to change the video mode to the best and some others. And also please try the diff below. compiled: http://yasuoka.net/~yasuoka/BOOTX64.EFI (updated) diff: Index: efiboot/efiboot.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/stand/efiboot/efiboot.c,v retrieving revision 1.9 diff -u -p -r1.9 efiboot.c --- efiboot/efiboot.c 8 Nov 2015 00:17:29 -0000 1.9 +++ efiboot/efiboot.c 26 Nov 2015 15:57:56 -0000 @@ -528,8 +528,10 @@ efi_makebootargs(void) } if (bestmode >= 0) { status = EFI_CALL(gop->SetMode, gop, bestmode); +#if 0 if (EFI_ERROR(status)) panic("GOP setmode failed(%d)", status); +#endif } gopi = gop->Mode->Info; @@ -569,7 +571,7 @@ efi_makebootargs(void) void _rtt(void) { -#ifdef EFI_DEBUG +#if defined(EFI_DEBUG) || 1 printf("Hit any key to reboot\n"); efi_cons_getc(0); #endif Index: libsa/exec_i386.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/stand/libsa/exec_i386.c,v retrieving revision 1.16 diff -u -p -r1.16 exec_i386.c --- libsa/exec_i386.c 26 Nov 2015 10:52:40 -0000 1.16 +++ libsa/exec_i386.c 26 Nov 2015 15:57:56 -0000 @@ -123,6 +123,7 @@ run_loadfile(u_long *marks, int howto) * This code may be used both for 64bit and 32bit. Make sure the * bootarg is 32bit always on even on amd64. */ + printf("%s() calling makebootargs32()\n", __func__); #ifdef __amd64__ makebootargs32(av, &ac); #else @@ -134,6 +135,10 @@ run_loadfile(u_long *marks, int howto) printf("entry point at 0x%lx [%x, %x, %x, %x]\n", entry, ((int *)entry)[0], ((int *)entry)[1], ((int *)entry)[2], ((int *)entry)[3]); + + printf("Hit any key to continue\n"); + efi_cons_getc(0); + #ifndef EFIBOOT /* stack and the gung is ok at this point, so, no need for asm setup */ (*(startfuncp)entry)(howto, bootdev, BOOTARG_APIVER, marks[MARK_END],