Hello Alexei, The diff is committed, Thanks.
One thing, > I've also made the system panic in case no GOP instances are found. I didn't commit that parts of the diff. Because I don't think this is necessary for the workaround. Was it ok? On the conversation with Kettenis at tech@, https://marc.info/?t=165148177900005&r=1&w=2 he mentioned about headless. I'm not sure whether there is such a x86 machine. Please let me know if you have any idea. On Mon, 25 Apr 2022 12:39:57 +0300 "Alexei K." <[email protected]> wrote: > Hi, > > When booting OpenBSD on a Lenovo B470e laptop (dmesg below), the > screen becomes garbled once the boot prompt disappears and the kernel > starts. The system remains responsive, however. > > For context, this is the output of the `machine gop` command: > ---- > Mode 0: 1024 x 768 (stride = 1024) > Mode 1: 640 x 480 (stride = 640) > Mode 2: 800 x 600 (stride = 800) > > Current Mode = 0 > ---- > > If I start from a fresh boot and...: > - Set the mode to 1: The screen flickers quickly and the resolution > changes appropriately. No display issues when booting the kernel > afterwards. > - Set the mode to 2: No visible changes (flicker/resolution change). > No display issues afterwards as well. This indicates that the machine > is actually in mode 2 but it's reporting that it's in mode 0. > - Set the mode to 0: No visible changes. Display issues remain. > - Set the mode to 1 or 2 and back to 0: The resolution actually > changes to 1024x768. No display issues afterwards. > > If I remove the text mode setting code in efi_video_init() and boot... > - From the Boot Menu (F12): Machine reports that it's in mode 1 but > it's actually in mode 0. Display issues persist. > - Directly: Machine starts with mode 0 properly. No issues. > > I've thought about calculating the framebuffer size (height * stride * > 4) and comparing that with the one reported by the firmware to see if > there's an inconsistency (and switch the mode accordingly), but the > FrameBufferSize reported by the firmware seems to be a fixed, large > value. Not feasible. > > While poking around with the dh command in the UEFI shell, I > discovered that there are two GOP instances in the system. The first > one (which LocateProtocol() locates) is virtual, and the other is > "physical" (as indicated by the presence of a device path in its > handle). The physical one, according to my tests, gives correct > information all the time. Here are their handles: > ---- > Handle C0 (78C02798) > Txtout (75A95BE0) Attrib 7 > mode 0: col 80 row 25 > mode 1: error Unsupported > > * mode 2: col 128 row 40 > mode 3: col 80 row 25 > mode 4: col 100 row 31 > GraphicsOutput (7A2BB588) > HorizontalReslution 1024 > VerticalReslution 768 > PixelFormat PixelBlueGreenRedReserved8BitPerColor > PixelsPerScanLine 1024 > FrameBufferBase 0x80000000 > FrameBufferSize 0x3FF0000 > 62BDF38A-E3D5-492C-950C-23A7F66E672E (00000000) > F42F7782-012E-4C12-9956-49F94304F721 (7A2BB5D0) > ---- > > ---- > Handle 16F (77F00D18) > Dpath (77F00C98) > ACPI Device Path for Acpi > HID PNP0A03, UID 0 > Hardware Device Path for PCI > Function (0) Device (2) > ACPI Device Path for AcpiAdr > Adr 4C4DB74 > AsStr: 'PciRoot(0x0)/Pci(0x2,0x0)/AcpiAdr(0x4C4DB74)' > Txtout (77F28D28) Attrib 7 > mode 0: col 80 row 25 > mode 1: error Unsupported > > * mode 2: col 128 row 40 > mode 3: col 80 row 25 > mode 4: col 100 row 31 > GraphicsOutput (77F02C38) > HorizontalReslution 1024 > VerticalReslution 768 > PixelFormat PixelBlueGreenRedReserved8BitPerColor > PixelsPerScanLine 1024 > FrameBufferBase 0x80000000 > FrameBufferSize 0x3FF0000 > EdidDiscovered (77F02C58) > EdidActive (77F02C68) > ConOut (0) > StdErr (0) > B79F5BEE-2727-48D3-8906-E5FB1F4B3329 (77F02C78) > ---- > > From what I've read, it seems that the virtual instance is set up by > ConSplitter and it's known to be buggy in certain implementations. > Linux (EFISTUB) and recently, FreeBSD, both use the non-standard > "ConOut Protocol" to determine if a GOP instance is physical or not. > They use the first physical one available. Both run fine with no > issues on my laptop. > https://github.com/freebsd/freebsd-src/blob/221376db0cb77035e325baf8b54d6224925b41f8/stand/efi/loader/framebuffer.c#L567 > https://github.com/torvalds/linux/blob/af2d861d4cd2a4da5137f795ee3509e6f944a25b/drivers/firmware/efi/libstub/gop.c#L464 > > More information: > https://edk2-devel.narkive.com/6Sv2VpKH/edk2-conout-protocol > https://edk2.groups.io/g/discuss/topic/88946975?p=,,,20,0,0,0::recentpostdate/sticky,,,20,0,0,88946975 > https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.uni > > In addition to Linux and FreeBSD, here's how the other major EFI-aware > projects fare when run on my laptop: > - GRUB 2 (commit a4666d31babc3fd06e52f7bb9b4c871e685da9b9) works fine > when run directly but the screen remains blank if run through the Boot > Menu (graphical issue, remains responsive to commands like 'halt'). > grub.cfg: > ---- > insmod efi_gop > loadfont "unicode" > insmod gfxterm > terminal_output gfxterm > ---- > - iPXE (commit 70995397e5bdfd3431e12971aa40630c7014785f with > CONSOLE_FRAMEBUFFER): Display is fine when run directly, garbled when > run through the Boot Menu. > - NetBSD 9.2: Likewise. > - rEFInd (commit 0d46f46ed7a2d453c9320469f211c5348120a1cd): Display is > fine when run directly, but when run through the Boot Menu, the screen > remains mostly blank with two icons and a small square thrown around. > Not sure what's going on here to be honest. > > > I'd like to emphasize that this issue is not unique to my specific > laptop model. Many users have experienced similar issues across > different OSes on different models/OEMs. > Some examples: > https://old.reddit.com/r/slackware/comments/i88d57/screen_garbled_need_to_change_eufi_gop_mode/ > https://old.reddit.com/r/freebsd/comments/77ajtm/garbled_text_for_bsd_installer_on_lenovo_laptop/ > (Likewise) > https://old.reddit.com/r/openbsd/comments/cidx7g/weird_output_on_booting_from_install_media_usb/ > https://redmine.pfsense.org/issues/8253 > etc... > > The below diff adopts a similar approach to Linux/FreeBSD, but uses > the standard device path protocol instead. This is not a novel > approach. Insyde's CTO, Tim Lewis, used it in his UEFI maze game: > https://uefi.blogspot.com/2017/02/the-uefi-maze-game-part-4.html > > I've also made the system panic in case no GOP instances are found. > > One thing I'm not sure about is what would happen to the boot console > in a scenario where you have a virtual GOP and the output is being > redirected to multiple physical ones and the user does a modeset > (which would affect the first physical GOP that we selected earlier). > > Further testing and investigation is very welcome. > > Thanks. > > diff --git sys/arch/amd64/stand/efiboot/efiboot.c > sys/arch/amd64/stand/efiboot/efiboot.c > index a8d8c762197..7ece8137575 100644 > --- sys/arch/amd64/stand/efiboot/efiboot.c > +++ sys/arch/amd64/stand/efiboot/efiboot.c > @@ -426,6 +426,7 @@ efi_memprobe_internal(void) > ***********************************************************************/ > static SIMPLE_TEXT_OUTPUT_INTERFACE *conout = NULL; > static SIMPLE_INPUT_INTERFACE *conin; > +static EFI_GRAPHICS_OUTPUT *gop = NULL; > static EFI_GUID con_guid > = EFI_CONSOLE_CONTROL_PROTOCOL_GUID; > static EFI_GUID gop_guid > @@ -444,6 +445,31 @@ efi_video_init(void) > int i, mode80x25, mode100x31; > UINTN cols, rows; > EFI_STATUS status; > + EFI_HANDLE *handles; > + UINTN nhandles; > + EFI_GRAPHICS_OUTPUT *first_gop = NULL; > + EFI_DEVICE_PATH *devp_test = NULL; > + > + status = BS->LocateHandleBuffer(ByProtocol, &gop_guid, NULL, &nhandles, > + &handles); > + if (status != EFI_SUCCESS) > + panic("BS->LocateHandleBuffer() returns %d", status); > + for (i = 0; i < nhandles; i++) { > + status = BS->HandleProtocol(handles[i], &gop_guid, (void **)&gop); > + if (!first_gop) { > + first_gop = gop; > + } > + status = BS->HandleProtocol(handles[i], &devp_guid, > + (void **)&devp_test); > + if (status == EFI_SUCCESS) { > + break; > + } > + } > + if (status != EFI_SUCCESS) > + gop = first_gop; > + if (!gop) > + panic("no gop found"); > + BS->FreePool(handles); > > conout = ST->ConOut; > status = BS->LocateProtocol(&con_guid, NULL, (void **)&conctrl); > @@ -808,7 +834,6 @@ efi_com_putc(dev_t dev, int c) > */ > static EFI_GUID acpi_guid = ACPI_20_TABLE_GUID; > static EFI_GUID smbios_guid = SMBIOS_TABLE_GUID; > -static EFI_GRAPHICS_OUTPUT *gop; > static int gopmode = -1; > > #define efi_guidcmp(_a, _b) memcmp((_a), (_b), sizeof(EFI_GUID)) > @@ -853,57 +878,54 @@ efi_makebootargs(void) > /* > * Frame buffer > */ > - status = BS->LocateProtocol(&gop_guid, NULL, (void **)&gop); > - if (!EFI_ERROR(status)) { > - if (gopmode < 0) { > - for (i = 0; i < gop->Mode->MaxMode; i++) { > - status = gop->QueryMode(gop, i, &sz, &gopi); > - if (EFI_ERROR(status)) > - continue; > - gopsiz = gopi->HorizontalResolution * > - gopi->VerticalResolution; > - if (gopsiz > bestsiz) { > - gopmode = i; > - bestsiz = gopsiz; > - } > + if (gopmode < 0) { > + for (i = 0; i < gop->Mode->MaxMode; i++) { > + status = gop->QueryMode(gop, i, &sz, &gopi); > + if (EFI_ERROR(status)) > + continue; > + gopsiz = gopi->HorizontalResolution * > + gopi->VerticalResolution; > + if (gopsiz > bestsiz) { > + gopmode = i; > + bestsiz = gopsiz; > } > } > - if (gopmode >= 0 && gopmode != gop->Mode->Mode) { > - curmode = gop->Mode->Mode; > - if (efi_gop_setmode(gopmode) != EFI_SUCCESS) > - (void)efi_gop_setmode(curmode); > - } > + } > + if (gopmode >= 0 && gopmode != gop->Mode->Mode) { > + curmode = gop->Mode->Mode; > + if (efi_gop_setmode(gopmode) != EFI_SUCCESS) > + (void)efi_gop_setmode(curmode); > + } > > - gopi = gop->Mode->Info; > - switch (gopi->PixelFormat) { > - case PixelBlueGreenRedReserved8BitPerColor: > - ei->fb_red_mask = 0x00ff0000; > - ei->fb_green_mask = 0x0000ff00; > - ei->fb_blue_mask = 0x000000ff; > - ei->fb_reserved_mask = 0xff000000; > - break; > - case PixelRedGreenBlueReserved8BitPerColor: > - ei->fb_red_mask = 0x000000ff; > - ei->fb_green_mask = 0x0000ff00; > - ei->fb_blue_mask = 0x00ff0000; > - ei->fb_reserved_mask = 0xff000000; > - break; > - case PixelBitMask: > - ei->fb_red_mask = gopi->PixelInformation.RedMask; > - ei->fb_green_mask = gopi->PixelInformation.GreenMask; > - ei->fb_blue_mask = gopi->PixelInformation.BlueMask; > - ei->fb_reserved_mask = > - gopi->PixelInformation.ReservedMask; > - break; > - default: > - break; > - } > - ei->fb_addr = gop->Mode->FrameBufferBase; > - ei->fb_size = gop->Mode->FrameBufferSize; > - ei->fb_height = gopi->VerticalResolution; > - ei->fb_width = gopi->HorizontalResolution; > - ei->fb_pixpsl = gopi->PixelsPerScanLine; > + gopi = gop->Mode->Info; > + switch (gopi->PixelFormat) { > + case PixelBlueGreenRedReserved8BitPerColor: > + ei->fb_red_mask = 0x00ff0000; > + ei->fb_green_mask = 0x0000ff00; > + ei->fb_blue_mask = 0x000000ff; > + ei->fb_reserved_mask = 0xff000000; > + break; > + case PixelRedGreenBlueReserved8BitPerColor: > + ei->fb_red_mask = 0x000000ff; > + ei->fb_green_mask = 0x0000ff00; > + ei->fb_blue_mask = 0x00ff0000; > + ei->fb_reserved_mask = 0xff000000; > + break; > + case PixelBitMask: > + ei->fb_red_mask = gopi->PixelInformation.RedMask; > + ei->fb_green_mask = gopi->PixelInformation.GreenMask; > + ei->fb_blue_mask = gopi->PixelInformation.BlueMask; > + ei->fb_reserved_mask = > + gopi->PixelInformation.ReservedMask; > + break; > + default: > + break; > } > + ei->fb_addr = gop->Mode->FrameBufferBase; > + ei->fb_size = gop->Mode->FrameBufferSize; > + ei->fb_height = gopi->VerticalResolution; > + ei->fb_width = gopi->HorizontalResolution; > + ei->fb_pixpsl = gopi->PixelsPerScanLine; > > /* > * EFI system table > @@ -1030,10 +1052,6 @@ Xgop_efi(void) > EFI_GRAPHICS_OUTPUT_MODE_INFORMATION > *gopi; > > - status = BS->LocateProtocol(&gop_guid, NULL, (void **)&gop); > - if (EFI_ERROR(status)) > - return (0); > - > if (cmd.argc >= 2) { > mode = strtol(cmd.argv[1], NULL, 10); > if (0 <= mode && mode < gop->Mode->MaxMode) { > > ----- > dmesg (using inteldrm(4)): > > OpenBSD 7.1 (GENERIC.MP) #465: Mon Apr 11 18:03:57 MDT 2022 > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 2034790400 (1940MB) > avail mem = 1955889152 (1865MB) > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xf9e10 (66 entries) > bios0: vendor LENOVO version "43CN45WW" date 02/16/2012 > bios0: LENOVO HuronRiver Platform > acpi0 at bios0: ACPI 3.0 > acpi0: sleep states S0 S1 S3 S4 S5 > acpi0: tables DSDT FACP SLIC SSDT ASF! HPET APIC MCFG SSDT SSDT UEFI UEFI UEFI > acpi0: wakeup devices P0P1(S4) GLAN(S4) EHC1(S3) EHC2(S3) HDEF(S4) > RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) > PXSX(S4) RP05(S4) PXSX(S4) RP06(S4) [...] > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpihpet0 at acpi0: 14318179 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.90 MHz, 06-2a-07 > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu0: 256KB 64b/line 8-way L2 cache > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 99MHz > cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE > cpu1 at mainbus0: apid 1 (application processor) > cpu1: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.57 MHz, 06-2a-07 > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu1: 256KB 64b/line 8-way L2 cache > cpu1: smt 1, core 0, package 0 > cpu2 at mainbus0: apid 2 (application processor) > cpu2: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.58 MHz, 06-2a-07 > cpu2: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu2: 256KB 64b/line 8-way L2 cache > cpu2: smt 0, core 1, package 0 > cpu3 at mainbus0: apid 3 (application processor) > cpu3: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.57 MHz, 06-2a-07 > cpu3: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu3: 256KB 64b/line 8-way L2 cache > cpu3: smt 1, core 1, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins > acpimcfg0 at acpi0 > acpimcfg0: addr 0xf8000000, bus 0-63 > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (P0P1) > acpiprt2 at acpi0: bus 1 (RP01) > acpiprt3 at acpi0: bus 2 (RP02) > acpiprt4 at acpi0: bus -1 (RP03) > acpiprt5 at acpi0: bus 3 (RP04) > acpiprt6 at acpi0: bus -1 (RP05) > acpiprt7 at acpi0: bus -1 (RP06) > acpiprt8 at acpi0: bus -1 (RP07) > acpiprt9 at acpi0: bus -1 (RP08) > acpiprt10 at acpi0: bus -1 (PEG0) > acpiprt11 at acpi0: bus -1 (PEG1) > acpiprt12 at acpi0: bus -1 (PEG2) > acpiprt13 at acpi0: bus -1 (PEG3) > acpiec0 at acpi0 > acpipci0 at acpi0 PCI0: 0x00000004 0x00000011 0x00000001 > acpicmos0 at acpi0 > acpiac0 at acpi0: AC unit offline > acpibat0 at acpi0: BAT0 model "L09S6Y02" serial 21212 type LION oem > "3131004f594e4153" > "VPC2004" at acpi0 not configured > "SYN032A" at acpi0 not configured > acpibtn0 at acpi0: LID0 > acpibtn1 at acpi0: SLPB > "PNP0C14" at acpi0 not configured > acpicpu0 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpicpu1 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpicpu2 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpicpu3 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpitz0 at acpi0: critical temperature is 83 degC > acpitz1 at acpi0: critical temperature is 126 degC > acpivideo0 at acpi0: PEGP > acpivideo1 at acpi0: GFX0 > acpivout0 at acpivideo1: DD02 > cpu0: using VERW MDS workaround (except on vmm entry) > cpu0: Enhanced SpeedStep 2394 MHz: speeds: 2400, 2000, 1800, 1600, > 1400, 1200, 1000, 800 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "Intel Core 2G Host" rev 0x09 > inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 3000" rev 0x09 > drm0 at inteldrm0 > inteldrm0: msi, SANDYBRIDGE, gen 6 > "Intel 6 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured > ehci0 at pci0 dev 26 function 0 "Intel 6 Series USB" rev 0x05: apic 2 int 16 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev > 2.00/1.00 addr 1 > azalia0 at pci0 dev 27 function 0 "Intel 6 Series HD Audio" rev 0x05: msi > azalia0: codecs: Realtek ALC272, Intel/0x2805, using Realtek ALC272 > audio0 at azalia0 > ppb0 at pci0 dev 28 function 0 "Intel 6 Series PCIE" rev 0xb5: msi > pci1 at ppb0 bus 1 > ppb1 at pci0 dev 28 function 1 "Intel 6 Series PCIE" rev 0xb5: msi > pci2 at ppb1 bus 2 > athn0 at pci2 dev 0 function 0 "Atheros AR9285" rev 0x01: apic 2 int 17 > athn0: AR9285 rev 2 (1T1R), ROM rev 14, address 44:6d:57:df:09:ea > ppb2 at pci0 dev 28 function 3 "Intel 6 Series PCIE" rev 0xb5: msi > pci3 at ppb2 bus 3 > re0 at pci3 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E > (0x2c00), msi, address f0:de:f1:fa:d6:2a > rgephy0 at re0 phy 7: RTL8169S/8110S/8211 PHY, rev. 4 > ehci1 at pci0 dev 29 function 0 "Intel 6 Series USB" rev 0x05: apic 2 int 23 > usb1 at ehci1: USB revision 2.0 > uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev > 2.00/1.00 addr 1 > pcib0 at pci0 dev 31 function 0 "Intel HM65 LPC" rev 0x05 > ahci0 at pci0 dev 31 function 2 "Intel 6 Series AHCI" rev 0x05: msi, AHCI 1.3 > ahci0: port 0: 3.0Gb/s > ahci0: port 4: 1.5Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 0 lun 0: <ATA, TOSHIBA MK3265GS, GJ20> > naa.50000393f3d080d2 > sd0: 305245MB, 512 bytes/sector, 625142448 sectors > cd0 at scsibus1 targ 4 lun 0: <PLDS, DVD-RW DS8A8SH, KL31> removable > ichiic0 at pci0 dev 31 function 3 "Intel 6 Series SMBus" rev 0x05: apic 2 int > 18 > iic0 at ichiic0 > spdmem0 at iic0 addr 0x50: 2GB DDR3 SDRAM PC3-10600 SO-DIMM > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard > pms0 at pckbc0 (aux slot) > wsmouse0 at pms0 mux 0 > pms0: Synaptics touchpad, firmware 7.2, 0x1c0b1 0xa40000 0x0 0xd04731 0xa0000 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT > efifb at mainbus0 not configured > uhub2 at uhub0 port 1 configuration 1 interface 0 "Intel Rate Matching > Hub" rev 2.00/0.00 addr 2 > uvideo0 at uhub2 port 5 configuration 1 interface 0 "Chicony Corp. > Lenovo EasyCamera" rev 2.00/11.56 addr 3 > video0 at uvideo0 > uhub3 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching > Hub" rev 2.00/0.00 addr 2 > ugen0 at uhub3 port 6 "Generic USB2.0-CRW" rev 2.00/39.60 addr 3 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > root on sd0a (98c15e4e4f72c3b7.a) swap on sd0b dump on sd0b > inteldrm0: 1366x768, 32bpp > wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0 > wsdisplay0: screen 1-5 added (std, vt100 emulation) > > ---- > dmesg (using efifb(4), mode 0): > > OpenBSD 7.1 (GENERIC.MP) #465: Mon Apr 11 18:03:57 MDT 2022 > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP > real mem = 2034790400 (1940MB) > avail mem = 1955885056 (1865MB) > User Kernel Config > UKC> disable inteldrm > 238 inteldrm* disabled > UKC> quit > Continuing... > random: good seed from bootblocks > mpath0 at root > scsibus0 at mpath0: 256 targets > mainbus0 at root > bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xf9e10 (66 entries) > bios0: vendor LENOVO version "43CN45WW" date 02/16/2012 > bios0: LENOVO HuronRiver Platform > acpi0 at bios0: ACPI 3.0 > acpi0: sleep states S0 S1 S3 S4 S5 > acpi0: tables DSDT FACP SLIC SSDT ASF! HPET APIC MCFG SSDT SSDT UEFI UEFI UEFI > acpi0: wakeup devices P0P1(S4) GLAN(S4) EHC1(S3) EHC2(S3) HDEF(S4) > RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) > PXSX(S4) RP05(S4) PXSX(S4) RP06(S4) [...] > acpitimer0 at acpi0: 3579545 Hz, 24 bits > acpihpet0 at acpi0: 14318179 Hz > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.96 MHz, 06-2a-07 > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu0: 256KB 64b/line 8-way L2 cache > cpu0: smt 0, core 0, package 0 > mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges > cpu0: apic clock running at 99MHz > cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE > cpu1 at mainbus0: apid 1 (application processor) > cpu1: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.57 MHz, 06-2a-07 > cpu1: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu1: 256KB 64b/line 8-way L2 cache > cpu1: smt 1, core 0, package 0 > cpu2 at mainbus0: apid 2 (application processor) > cpu2: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.57 MHz, 06-2a-07 > cpu2: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu2: 256KB 64b/line 8-way L2 cache > cpu2: smt 0, core 1, package 0 > cpu3 at mainbus0: apid 3 (application processor) > cpu3: Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz, 2394.57 MHz, 06-2a-07 > cpu3: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN > cpu3: 256KB 64b/line 8-way L2 cache > cpu3: smt 1, core 1, package 0 > ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 24 pins > acpimcfg0 at acpi0 > acpimcfg0: addr 0xf8000000, bus 0-63 > acpiprt0 at acpi0: bus 0 (PCI0) > acpiprt1 at acpi0: bus -1 (P0P1) > acpiprt2 at acpi0: bus 1 (RP01) > acpiprt3 at acpi0: bus 2 (RP02) > acpiprt4 at acpi0: bus -1 (RP03) > acpiprt5 at acpi0: bus 3 (RP04) > acpiprt6 at acpi0: bus -1 (RP05) > acpiprt7 at acpi0: bus -1 (RP06) > acpiprt8 at acpi0: bus -1 (RP07) > acpiprt9 at acpi0: bus -1 (RP08) > acpiprt10 at acpi0: bus -1 (PEG0) > acpiprt11 at acpi0: bus -1 (PEG1) > acpiprt12 at acpi0: bus -1 (PEG2) > acpiprt13 at acpi0: bus -1 (PEG3) > acpiec0 at acpi0 > acpipci0 at acpi0 PCI0: 0x00000004 0x00000011 0x00000001 > acpicmos0 at acpi0 > acpiac0 at acpi0: AC unit offline > acpibat0 at acpi0: BAT0 model "L09S6Y02" serial 21212 type LION oem > "3131004f594e4153" > "VPC2004" at acpi0 not configured > "SYN032A" at acpi0 not configured > acpibtn0 at acpi0: LID0 > acpibtn1 at acpi0: SLPB > "PNP0C14" at acpi0 not configured > acpicpu0 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpicpu1 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpicpu2 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpicpu3 at acpi0: C3(200@109 io@0x416), C2(500@80 io@0x414), > C1(1000@1 halt), PSS > acpitz0 at acpi0: critical temperature is 83 degC > acpitz1 at acpi0: critical temperature is 126 degC > acpivideo0 at acpi0: PEGP > acpivideo1 at acpi0: GFX0 > acpivout0 at acpivideo1: DD02 > cpu0: using VERW MDS workaround (except on vmm entry) > cpu0: Enhanced SpeedStep 2394 MHz: speeds: 2400, 2000, 1800, 1600, > 1400, 1200, 1000, 800 MHz > pci0 at mainbus0 bus 0 > pchb0 at pci0 dev 0 function 0 "Intel Core 2G Host" rev 0x09 > "Intel HD Graphics 3000" rev 0x09 at pci0 dev 2 function 0 not configured > "Intel 6 Series MEI" rev 0x04 at pci0 dev 22 function 0 not configured > ehci0 at pci0 dev 26 function 0 "Intel 6 Series USB" rev 0x05: apic 2 int 16 > usb0 at ehci0: USB revision 2.0 > uhub0 at usb0 configuration 1 interface 0 "Intel EHCI root hub" rev > 2.00/1.00 addr 1 > azalia0 at pci0 dev 27 function 0 "Intel 6 Series HD Audio" rev 0x05: msi > azalia0: codecs: Realtek ALC272, Intel/0x2805, using Realtek ALC272 > audio0 at azalia0 > ppb0 at pci0 dev 28 function 0 "Intel 6 Series PCIE" rev 0xb5: msi > pci1 at ppb0 bus 1 > ppb1 at pci0 dev 28 function 1 "Intel 6 Series PCIE" rev 0xb5: msi > pci2 at ppb1 bus 2 > athn0 at pci2 dev 0 function 0 "Atheros AR9285" rev 0x01: apic 2 int 17 > athn0: AR9285 rev 2 (1T1R), ROM rev 14, address 44:6d:57:df:09:ea > ppb2 at pci0 dev 28 function 3 "Intel 6 Series PCIE" rev 0xb5: msi > pci3 at ppb2 bus 3 > re0 at pci3 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E > (0x2c00), msi, address f0:de:f1:fa:d6:2a > rgephy0 at re0 phy 7: RTL8169S/8110S/8211 PHY, rev. 4 > ehci1 at pci0 dev 29 function 0 "Intel 6 Series USB" rev 0x05: apic 2 int 23 > usb1 at ehci1: USB revision 2.0 > uhub1 at usb1 configuration 1 interface 0 "Intel EHCI root hub" rev > 2.00/1.00 addr 1 > pcib0 at pci0 dev 31 function 0 "Intel HM65 LPC" rev 0x05 > ahci0 at pci0 dev 31 function 2 "Intel 6 Series AHCI" rev 0x05: msi, AHCI 1.3 > ahci0: port 0: 3.0Gb/s > ahci0: port 4: 1.5Gb/s > scsibus1 at ahci0: 32 targets > sd0 at scsibus1 targ 0 lun 0: <ATA, TOSHIBA MK3265GS, GJ20> > naa.50000393f3d080d2 > sd0: 305245MB, 512 bytes/sector, 625142448 sectors > cd0 at scsibus1 targ 4 lun 0: <PLDS, DVD-RW DS8A8SH, KL31> removable > ichiic0 at pci0 dev 31 function 3 "Intel 6 Series SMBus" rev 0x05: apic 2 int > 18 > iic0 at ichiic0 > spdmem0 at iic0 addr 0x50: 2GB DDR3 SDRAM PC3-10600 SO-DIMM > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > pckbd0 at pckbc0 (kbd slot) > wskbd0 at pckbd0: console keyboard > pms0 at pckbc0 (aux slot) > wsmouse0 at pms0 mux 0 > pms0: Synaptics touchpad, firmware 7.2, 0x1c0b1 0xa40000 0x0 0xd04731 0xa0000 > pcppi0 at isa0 port 0x61 > spkr0 at pcppi0 > vmm0 at mainbus0: VMX/EPT > efifb0 at mainbus0: 1024x768, 32bpp > wsdisplay0 at efifb0 mux 1: console (std, vt100 emulation), using wskbd0 > wsdisplay0: screen 1-5 added (std, vt100 emulation) > uhub2 at uhub0 port 1 configuration 1 interface 0 "Intel Rate Matching > Hub" rev 2.00/0.00 addr 2 > uvideo0 at uhub2 port 5 configuration 1 interface 0 "Chicony Corp. > Lenovo EasyCamera" rev 2.00/11.56 addr 3 > video0 at uvideo0 > uhub3 at uhub1 port 1 configuration 1 interface 0 "Intel Rate Matching > Hub" rev 2.00/0.00 addr 2 > ugen0 at uhub3 port 6 "Generic USB2.0-CRW" rev 2.00/39.60 addr 3 > vscsi0 at root > scsibus2 at vscsi0: 256 targets > softraid0 at root > scsibus3 at softraid0: 256 targets > root on sd0a (98c15e4e4f72c3b7.a) swap on sd0b dump on sd0b >
