On Wed, 11 Nov 2015 15:33:06 -0500
"Joe Gidi" <[email protected]> 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?

compiled version:

  http://yasuoka.net/~yasuoka/BOOTX64.EFI

diff:

Index: efiboot/efiboot.c
===================================================================
RCS file: /disk/cvs/openbsd/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 09:15:17 -0000
@@ -569,7 +569,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: /disk/cvs/openbsd/src/sys/arch/amd64/stand/libsa/exec_i386.c,v
retrieving revision 1.15
diff -u -p -r1.15 exec_i386.c
--- libsa/exec_i386.c   5 Oct 2015 22:59:39 -0000       1.15
+++ libsa/exec_i386.c   26 Nov 2015 09:15:17 -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],

Reply via email to