On Thu, 12 Oct 2017 00:46:20 -0400
Ken Withee <[email protected]> wrote:
> I had something similar and had to change to legacy in bios or something like 
> that.
> 
> Sent from ProtonMail Mobile
> 
> On Wed, Oct 11, 2017 at 4:51 PM, Pedro Ramos <[email protected]> wrote:
> 
>> Hello, I am having troubles installing OpenBSD 6.2 on a white label laptop 
>> with an Intel N3350 CPU and AMI UEFI BIOS. When the kernel start booting, 
>> the system hangs with a blank screen. I also tried the installation with 
>> OpenBSD 6.1 and the same behaviour happens. Any idea how to find and fix 
>> this issue? Thanks. Best regards, Pedro Ramos

Similar problem happens on bhyve + uefi.  The diff below is fix the
problem on bhyve.  Can you try this?

diff --git a/sys/arch/amd64/amd64/machdep.c b/sys/arch/amd64/amd64/machdep.c
index 150d2d43112..5f7828b3e4e 100644
--- a/sys/arch/amd64/amd64/machdep.c
+++ b/sys/arch/amd64/amd64/machdep.c
@@ -1254,16 +1254,6 @@ init_x86_64(paddr_t first_avail)
 
        x86_bus_space_init();
 
-       /*
-        * Attach the glass console early in case we need to display a panic.
-        */
-       cninit();
-
-       /*
-        * Initialize PAGE_SIZE-dependent variables.
-        */
-       uvm_setpagesize();
-
        /*
         * Boot arguments are in a single page specified by /boot.
         *
@@ -1272,14 +1262,23 @@ init_x86_64(paddr_t first_avail)
         *
         * locore copies the data into bootinfo[] for us.
         */
-       if ((bootapiver & (BAPIV_VECTOR | BAPIV_BMEMMAP)) ==
-           (BAPIV_VECTOR | BAPIV_BMEMMAP)) {
-               if (bootinfo_size >= sizeof(bootinfo))
-                       panic("boot args too big");
-
-               getbootinfo(bootinfo, bootinfo_size);
-       } else
+       if ((bootapiver & (BAPIV_VECTOR | BAPIV_BMEMMAP)) !=
+           (BAPIV_VECTOR | BAPIV_BMEMMAP) ||
+           bootinfo_size >= sizeof(bootinfo)){
+               cninit();
                panic("invalid /boot");
+       }
+       getbootinfo(bootinfo, bootinfo_size);
+
+       /*
+        * Attach the glass console early in case we need to display a panic.
+        */
+       cninit();
+
+       /*
+        * Initialize PAGE_SIZE-dependent variables.
+        */
+       uvm_setpagesize();
 
 /*
  * Memory on the AMD64 port is described by three different things.
@@ -1783,10 +1782,10 @@ getbootinfo(char *bootinfo, int bootinfo_size)
        bios_ddb_t *bios_ddb;
        bios_bootduid_t *bios_bootduid;
        bios_bootsr_t *bios_bootsr;
-       int docninit = 0;
 
 #undef BOOTINFO_DEBUG
 #ifdef BOOTINFO_DEBUG
+       cninit();
        printf("bootargv:");
 #endif
 
@@ -1839,9 +1838,6 @@ getbootinfo(char *bootinfo, int bootinfo_size)
                                        comconsaddr = consaddr;
                                        comconsrate = cdp->conspeed;
                                        comconsiot = X86_BUS_SPACE_IO;
-
-                                       /* Probe the serial port this time. */
-                                       docninit++;
                                }
 #endif
 #ifdef BOOTINFO_DEBUG
@@ -1879,8 +1875,6 @@ getbootinfo(char *bootinfo, int bootinfo_size)
 
                case BOOTARG_EFIINFO:
                        bios_efiinfo = (bios_efiinfo_t *)q->ba_arg;
-                       if (bios_efiinfo->fb_addr != 0)
-                               docninit++;
                        break;
 
                default:
@@ -1891,8 +1885,6 @@ getbootinfo(char *bootinfo, int bootinfo_size)
                        break;
                }
        }
-       if (docninit > 0)
-               cninit();
 #ifdef BOOTINFO_DEBUG
        printf("\n");
 #endif

Reply via email to