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