(resending the email since I forgot to include bugs@)

Hello Yasuoka,

Thank you for committing the diff.

> I didn't commit that parts of the diff.  Because I don't think this is
necessary for the workaround.  Was it ok?

Yes, that's alright.

> Please let me know if you have any idea.

I haven't encountered a physical machine with no GOP instances, but
I've tested it in QEMU (by manually hardcoding gop = NULL, in the case
of v1.39 of efiboot.c), and the system panicked after a few seconds
anyway, so I thought that panicking early with an error message would
be nice.

On Mon, Jun 20, 2022 at 5:37 AM YASUOKA Masahiko <[email protected]> wrote:
>
> 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
> >

Reply via email to