Hi Mark, Just tried amd64 snapshot (1st Nov) on Intel NUC5i7RYH and building world from source (updated around 4PM UTC, 1st Nov). While I do not get any kernel panic or crash as others may have faced, the behavior of some programs such as firefox, dillo under X (startx with default install) will give some strange rendering: Firefox/Dillo window will stay gray/black/blank. Still responsive but the display is not there. Moving the mouse over the window will un-hide some of the toolbar's button but that's all I managed to see. (this does not happen on 5.8-release and not sure if its related to that diff)
Below full dmesg with some "error" lines displayed: error: [drm:pid20852:intel_dp_set_idle_link_train] *ERROR* Timed out waiting for DP idle patterns OpenBSD 5.8-current (GENERIC.MP) #1: Sun Nov 1 23:58:23 SGT 2015 r...@nuc.none:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 16036732928 (15293MB) avail mem = 15546572800 (14826MB) mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.8 @ 0x36ee7000 (53 entries) bios0: vendor Intel Corporation version "RYBDWi35.86A.0350.2015.0812.1722" date 08/12/2015 bios0: Intel Corporation NUC5i7RYB acpi0 at bios0: rev 2 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP APIC FPDT FIDT MCFG HPET SSDT UEFI LPIT SSDT ASF! SSDT SSDT SSDT DMAR acpi0: wakeup devices PEGP(S4) PEG0(S4) PEGP(S4) PEG1(S4) PEGP(S4) PEG2(S4) PS2K(S3) PS2M(S3) PXSX(S4) RP01(S4) PXSX(S4) RP02(S4) PXSX(S4) RP03(S4) PXSX(S4) RP04(S4) [...] acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz, 3392.68 MHz 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,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,SENSOR,ARAT 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.2.4.1.1.1, IBE cpu1 at mainbus0: apid 2 (application processor) cpu1: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz, 3392.15 MHz 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,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,SENSOR,ARAT cpu1: 256KB 64b/line 8-way L2 cache cpu1: smt 0, core 1, package 0 cpu2 at mainbus0: apid 1 (application processor) cpu2: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz, 3392.15 MHz 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,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,SENSOR,ARAT cpu2: 256KB 64b/line 8-way L2 cache cpu2: smt 1, core 0, package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: Intel(R) Core(TM) i7-5557U CPU @ 3.10GHz, 3392.15 MHz 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,FMA3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,NXE,PAGE1GB,LONG,LAHF,ABM,3DNOWP,PERF,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,RDSEED,ADX,SMAP,SENSOR,ARAT cpu3: 256KB 64b/line 8-way L2 cache cpu3: smt 1, core 1, package 0 ioapic0 at mainbus0: apid 2 pa 0xfec00000, version 20, 40 pins acpimadt0: bogus nmi for apid 3 acpimcfg0 at acpi0 addr 0xf8000000, bus 0-63 acpihpet0 at acpi0: 14318179 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (PEG0) acpiprt2 at acpi0: bus -1 (PEG1) acpiprt3 at acpi0: bus -1 (PEG2) acpiprt4 at acpi0: bus 1 (RP01) acpiprt5 at acpi0: bus -1 (RP02) acpiprt6 at acpi0: bus -1 (RP03) acpiprt7 at acpi0: bus 2 (RP04) acpiprt8 at acpi0: bus -1 (RP05) acpiprt9 at acpi0: bus -1 (RP06) acpiprt10 at acpi0: bus -1 (RP07) acpiprt11 at acpi0: bus -1 (RP08) acpiec0 at acpi0: not present acpicpu0 at acpi0: C3(200@506 mwait.1@0x60), C2(200@230 mwait.1@0x31), C1(1000@1 mwait.1), PSS acpicpu1 at acpi0: C3(200@506 mwait.1@0x60), C2(200@230 mwait.1@0x31), C1(1000@1 mwait.1), PSS acpicpu2 at acpi0: C3(200@506 mwait.1@0x60), C2(200@230 mwait.1@0x31), C1(1000@1 mwait.1), PSS acpicpu3 at acpi0: C3(200@506 mwait.1@0x60), C2(200@230 mwait.1@0x31), C1(1000@1 mwait.1), PSS acpipwrres0 at acpi0: PG00, resource for PEG0 acpipwrres1 at acpi0: PG01, resource for PEG1 acpipwrres2 at acpi0: PG02, resource for PEG2 acpipwrres3 at acpi0: WRST acpipwrres4 at acpi0: WRST acpipwrres5 at acpi0: WRST acpipwrres6 at acpi0: WRST acpipwrres7 at acpi0: WRST acpipwrres8 at acpi0: WRST acpipwrres9 at acpi0: WRST acpipwrres10 at acpi0: WRST acpipwrres11 at acpi0: FN00, resource for FAN0 acpipwrres12 at acpi0: FN01, resource for FAN1 acpipwrres13 at acpi0: FN02, resource for FAN2 acpipwrres14 at acpi0: FN03, resource for FAN3 acpipwrres15 at acpi0: FN04, resource for FAN4 acpitz0 at acpi0: critical temperature is 110 degC acpitz1 at acpi0: critical temperature is 110 degC acpibat0 at acpi0: BAT0 not present acpibat1 at acpi0: BAT1 not present acpibat2 at acpi0: BAT2 not present acpibtn0 at acpi0: LID0 acpibtn1 at acpi0: SLPB acpibtn2 at acpi0: PWRB acpivideo0 at acpi0: GFX0 cpu0: Enhanced SpeedStep 3392 MHz: speeds: 3101, 3100, 3000, 2700, 2500, 2400, 2200, 2000, 1800, 1600, 1400, 1200, 1100, 900, 700, 500 MHz pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "Intel Core 5G Host" rev 0x09 inteldrm0 at pci0 dev 2 function 0 "Intel Iris Graphics 6100" rev 0x09 drm0 at inteldrm0 inteldrm0: msi inteldrm0: 2560x1440 error: [drm:pid0:intel_dp_set_idle_link_train] *ERROR* Timed out waiting for DP idle patterns wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation) wsdisplay0: screen 1-5 added (std, vt100 emulation) azalia0 at pci0 dev 3 function 0 "Intel Core 5G HD Audio" rev 0x09: msi azalia0: No codecs found xhci0 at pci0 dev 20 function 0 "Intel 9 Series xHCI" rev 0x03: msi usb0 at xhci0: USB revision 3.0 uhub0 at usb0 "Intel xHCI root hub" rev 3.00/1.00 addr 1 "Intel 9 Series MEI" rev 0x03 at pci0 dev 22 function 0 not configured em0 at pci0 dev 25 function 0 "Intel I218-V" rev 0x03: msi, address b8:ae:ed:00:00:11 azalia1 at pci0 dev 27 function 0 "Intel 9 Series HD Audio" rev 0x03: msi azalia1: codecs: Realtek/0x0283 audio0 at azalia1 ppb0 at pci0 dev 28 function 0 "Intel 9 Series PCIE" rev 0xe3 pci1 at ppb0 bus 1 ppb1 at pci0 dev 28 function 3 "Intel 9 Series PCIE" rev 0xe3: msi pci2 at ppb1 bus 2 iwm0 at pci2 dev 0 function 0 "Intel Dual Band Wireless AC 7265" rev 0x59, msi ehci0 at pci0 dev 29 function 0 "Intel 9 Series USB" rev 0x03: apic 2 int 23 usb1 at ehci0: USB revision 2.0 uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1 pcib0 at pci0 dev 31 function 0 "Intel 9 Series LPC" rev 0x03 ahci0 at pci0 dev 31 function 2 "Intel 9 Series AHCI" rev 0x03: msi, AHCI 1.3 ahci0: port 0: 3.0Gb/s scsibus1 at ahci0: 32 targets sd0 at scsibus1 targ 0 lun 0: <ATA, HITACHI HTS72323, EC2Z> SCSI3 0/direct fixed naa.5000cca61dddff6d sd0: 305245MB, 512 bytes/sector, 625142448 sectors ichiic0 at pci0 dev 31 function 3 "Intel 9 Series SMBus" rev 0x03: apic 2 int 18 iic0 at ichiic0 spdmem0 at iic0 addr 0x50: 8GB DDR3 SDRAM PC3-12800 SO-DIMM spdmem1 at iic0 addr 0x52: 8GB DDR3 SDRAM PC3-12800 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, using wsdisplay0 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 wbsio0 at isa0 port 0x4e/2: NCT6776F rev 0x33 lm1 at wbsio0 port 0xa00/8: NCT6776F uhidev0 at uhub0 port 2 configuration 1 interface 0 "Primax Electronics USB Optical Mouse" rev 2.00/2.00 addr 2 uhidev0: iclass 3/1 ums0 at uhidev0: 3 buttons, Z dir wsmouse0 at ums0 mux 0 uhub2 at uhub0 port 3 "Texas Instruments product 0x8043" rev 2.10/1.00 addr 3 uhub3 at uhub2 port 2 "Apple, Inc. Keyboard Hub" rev 2.00/96.15 addr 4 uhidev1 at uhub3 port 2 configuration 1 interface 0 "Apple, Inc Apple Keyboard" rev 2.00/0.69 addr 5 uhidev1: iclass 3/1 ukbd0 at uhidev1: 8 variable keys, 5 key codes, country code 33 wskbd1 at ukbd0 mux 1 wskbd1: connecting to wsdisplay0 uhidev2 at uhub3 port 2 configuration 1 interface 1 "Apple, Inc Apple Keyboard" rev 2.00/0.69 addr 5 uhidev2: iclass 3/0 uhid0 at uhidev2: input=1, output=0, feature=0 ugen0 at uhub0 port 7 "Intel product 0x0a2a" rev 2.01/0.01 addr 6 uhub4 at uhub0 port 14 "Texas Instruments product 0x8041" rev 3.00/1.00 addr 7 uhub5 at uhub1 port 1 "Intel Rate Matching Hub" rev 2.00/0.03 addr 2 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (9580f4224d61daae.a) swap on sd0b dump on sd0b iwm0: hw rev 0x210, fw ver 25.228 (API ver 9), address 94:65:9c:00:a0:a0 error: [drm:pid20852:intel_dp_set_idle_link_train] *ERROR* Timed out waiting for DP idle patterns Xorg.0.log: X.Org X Server 1.17.2 Release Date: 2015-06-16 [ 18.026] X Protocol Version 11, Revision 0 [ 18.026] Build Operating System: OpenBSD 5.8 amd64 [ 18.026] Current Operating System: OpenBSD nuc.none 5.8 GENERIC.MP#1 amd64 [ 18.027] Build Date: 01 November 2015 03:11:44PM [ 18.027] [ 18.034] Current version of pixman: 0.32.8 [ 18.034] Before reporting problems, check http://wiki.x.org to make sure that you have the latest version. [ 18.034] Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. [ 18.034] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Nov 2 00:23:59 2015 [ 18.066] (==) Using system config directory "/usr/X11R6/share/X11/xorg.conf.d" [ 18.080] (==) No Layout section. Using the first Screen section. [ 18.085] (==) No screen section available. Using defaults. [ 18.085] (**) |-->Screen "Default Screen Section" (0) [ 18.085] (**) | |-->Monitor "<default monitor>" [ 18.086] (==) No monitor specified for screen "Default Screen Section". Using a default monitor configuration. [ 18.087] (==) Disabling SIGIO handlers for input devices [ 18.087] (==) Automatically adding devices [ 18.087] (==) Automatically enabling devices [ 18.087] (==) Not automatically adding GPU devices [ 18.192] (==) FontPath set to: /usr/X11R6/lib/X11/fonts/misc/, /usr/X11R6/lib/X11/fonts/TTF/, /usr/X11R6/lib/X11/fonts/OTF/, /usr/X11R6/lib/X11/fonts/Type1/, /usr/X11R6/lib/X11/fonts/100dpi/, /usr/X11R6/lib/X11/fonts/75dpi/ [ 18.192] (==) ModulePath set to "/usr/X11R6/lib/modules" [ 18.192] (II) The server relies on wscons to provide the list of input devices. If no devices become available, reconfigure wscons or disable AutoAddDevices. [ 18.193] (II) Loader magic: 0x1857e8c31de0 [ 18.193] (II) Module ABI versions: [ 18.193] X.Org ANSI C Emulation: 0.4 [ 18.193] X.Org Video Driver: 19.0 [ 18.193] X.Org XInput driver : 21.0 [ 18.193] X.Org Server Extension : 9.0 [ 18.202] (--) PCI:*(0:0:2:0) 8086:162b:8086:2057 rev 9, Mem @ 0x79000000/16777216, 0x80000000/1073741824, I/O @ 0x00003000/64 [ 18.202] (II) LoadModule: "glx" [ 18.227] (II) Loading /usr/X11R6/lib/modules/extensions/libglx.so [ 18.379] (II) Module glx: vendor="X.Org Foundation" [ 18.379] compiled for 1.17.2, module version = 1.0.0 [ 18.379] ABI class: X.Org Server Extension, version 9.0 [ 18.379] (==) AIGLX enabled [ 18.379] (==) Matched intel as autoconfigured driver 0 [ 18.379] (==) Matched vesa as autoconfigured driver 1 [ 18.379] (==) Assigned the driver to the xf86ConfigLayout [ 18.379] (II) LoadModule: "intel" [ 18.380] (II) Loading /usr/X11R6/lib/modules/drivers/intel_drv.so [ 18.408] (II) Module intel: vendor="X.Org Foundation" [ 18.408] compiled for 1.17.2, module version = 2.99.916 [ 18.408] Module class: X.Org Video Driver [ 18.408] ABI class: X.Org Video Driver, version 19.0 [ 18.408] (II) LoadModule: "vesa" [ 18.409] (II) Loading /usr/X11R6/lib/modules/drivers/vesa_drv.so [ 18.418] (II) Module vesa: vendor="X.Org Foundation" [ 18.418] compiled for 1.17.2, module version = 2.3.3 [ 18.418] Module class: X.Org Video Driver [ 18.418] ABI class: X.Org Video Driver, version 19.0 [ 18.418] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets: i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45, 4 Series, G45/G43, Q45/Q43, G41, B43 [ 18.419] (II) intel: Driver for Intel(R) HD Graphics: 2000-6000 [ 18.419] (II) intel: Driver for Intel(R) Iris(TM) Graphics: 5100, 6100 [ 18.419] (II) intel: Driver for Intel(R) Iris(TM) Pro Graphics: 5200, 6200, P6300 [ 18.419] (II) VESA: driver for VESA chipsets: vesa [ 18.435] (II) intel(0): Using Kernel Mode Setting driver: i915, version 1.6.0 20080730 [ 18.436] (WW) Falling back to old probe method for vesa [ 18.438] (--) intel(0): Integrated Graphics Chipset: Intel(R) Iris graphics 6100 [ 18.439] (--) intel(0): CPU: x86-64, sse2, sse3, ssse3, sse4.1, sse4.2, avx, avx2 [ 18.439] (II) intel(0): Creating default Display subsection in Screen section "Default Screen Section" for depth/fbbpp 24/32 [ 18.439] (==) intel(0): Depth 24, (--) framebuffer bpp 32 [ 18.439] (==) intel(0): RGB weight 888 [ 18.439] (==) intel(0): Default visual is TrueColor [ 18.447] (II) intel(0): Output HDMI1 has no monitor section [ 18.447] (II) intel(0): Enabled output HDMI1 [ 18.447] (II) intel(0): Output DP1 has no monitor section [ 18.447] (II) intel(0): Enabled output DP1 [ 18.447] (II) intel(0): Output HDMI2 has no monitor section [ 18.447] (II) intel(0): Enabled output HDMI2 [ 18.447] (--) intel(0): Using a maximum size of 64x64 for hardware cursors [ 18.448] (II) intel(0): Output VIRTUAL1 has no monitor section [ 18.448] (II) intel(0): Enabled output VIRTUAL1 [ 18.448] (--) intel(0): Output DP1 using initial mode 2560x1440 on pipe 0 [ 18.448] (==) intel(0): TearFree disabled [ 18.448] (==) intel(0): DPI set to (96, 96) [ 18.448] (II) Loading sub module "dri2" [ 18.448] (II) LoadModule: "dri2" [ 18.448] (II) Module "dri2" already built-in [ 18.448] (II) Loading sub module "present" [ 18.448] (II) LoadModule: "present" [ 18.448] (II) Module "present" already built-in [ 18.448] (II) UnloadModule: "vesa" [ 18.448] (II) Unloading vesa [ 18.448] (==) Depth 24 pixmap format is 32 bpp [ 18.476] (II) intel(0): SNA initialized with Broadwell backend [ 18.476] (==) intel(0): Backing store enabled [ 18.477] (==) intel(0): Silken mouse disabled [ 18.478] (II) intel(0): HW Cursor enabled [ 18.479] (II) intel(0): RandR 1.2 enabled, ignore the following RandR disabled message. [ 18.485] (==) intel(0): DPMS enabled [ 18.487] (II) intel(0): [DRI2] Setup complete [ 18.487] (II) intel(0): [DRI2] DRI driver: i965 [ 18.487] (II) intel(0): [DRI2] VDPAU driver: i965 [ 18.487] (II) intel(0): direct rendering: DRI2 enabled [ 18.488] (II) intel(0): hardware support for Present enabled [ 18.488] (--) RandR disabled [ 18.675] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer [ 18.675] (II) AIGLX: enabled GLX_ARB_create_context [ 18.675] (II) AIGLX: enabled GLX_ARB_create_context_profile [ 18.675] (II) AIGLX: enabled GLX_EXT_create_context_es2_profile [ 18.675] (II) AIGLX: enabled GLX_INTEL_swap_event [ 18.675] (II) AIGLX: enabled GLX_SGI_swap_control and GLX_MESA_swap_control [ 18.675] (II) AIGLX: enabled GLX_EXT_framebuffer_sRGB [ 18.675] (II) AIGLX: enabled GLX_ARB_fbconfig_float [ 18.675] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects [ 18.675] (II) AIGLX: enabled GLX_ARB_create_context_robustness [ 18.675] (II) AIGLX: Loaded and initialized i965 [ 18.675] (II) GLX: Initialized DRI2 GL provider for screen 0 [ 18.691] (II) intel(0): switch to mode 2560x1440@60.0 on DP1 using pipe 0, position (0, 0), rotation normal, reflection none [ 18.710] (II) intel(0): Setting screen physical size to 677 x 381 [ 19.110] (II) config/wscons: checking input device /dev/wskbd [ 19.110] (II) wskbd: using layout us [ 19.120] (II) LoadModule: "kbd" [ 19.127] (II) Loading /usr/X11R6/lib/modules/input/kbd_drv.so [ 19.134] (II) Module kbd: vendor="X.Org Foundation" [ 19.134] compiled for 1.17.2, module version = 1.8.0 [ 19.134] Module class: X.Org XInput Driver [ 19.134] ABI class: X.Org XInput driver, version 21.0 [ 19.134] (II) Using input driver 'kbd' for '/dev/wskbd' [ 19.134] (**) /dev/wskbd: always reports core events [ 19.134] (**) /dev/wskbd: always reports core events [ 19.134] (**) Option "Protocol" "standard" [ 19.134] (**) Option "XkbRules" "base" [ 19.135] (**) Option "XkbModel" "pc105" [ 19.135] (**) Option "XkbLayout" "us" [ 19.135] (II) XINPUT: Adding extended input device "/dev/wskbd" (type: KEYBOARD, id 6) [ 19.328] (II) config/wscons: checking input device /dev/wsmouse [ 19.328] (II) LoadModule: "ws" [ 19.330] (II) Loading /usr/X11R6/lib/modules/input/ws_drv.so [ 19.331] (II) Module ws: vendor="X.Org Foundation" [ 19.331] compiled for 1.17.2, module version = 1.3.0 [ 19.331] Module class: X.Org XInput Driver [ 19.331] ABI class: X.Org XInput driver, version 21.0 [ 19.331] (II) Using input driver 'ws' for '/dev/wsmouse' [ 19.331] (**) /dev/wsmouse: always reports core events [ 19.331] (II) ws: /dev/wsmouse: debuglevel 0 [ 19.331] (**) Option "Device" "/dev/wsmouse" [ 19.331] (**) ws: /dev/wsmouse: ZAxisMapping: buttons 4 and 5 [ 19.331] (**) ws: /dev/wsmouse: WAxisMapping: buttons 6 and 7 [ 19.331] (**) ws: /dev/wsmouse: associated screen: 0 [ 19.332] (II) ws: /dev/wsmouse: minimum x position: 0 [ 19.332] (II) ws: /dev/wsmouse: maximum x position: 2559 [ 19.332] (II) ws: /dev/wsmouse: minimum y position: 0 [ 19.332] (II) ws: /dev/wsmouse: maximum y position: 1439 [ 19.332] (==) ws: /dev/wsmouse: Buttons: 7 [ 19.332] (**) ws: /dev/wsmouse: YAxisMapping: buttons 4 and 5 [ 19.332] (II) XINPUT: Adding extended input device "/dev/wsmouse" (type: MOUSE, id 7) [ 19.333] (**) /dev/wsmouse: (accel) keeping acceleration scheme 1 [ 19.333] (**) /dev/wsmouse: (accel) acceleration profile 0 [ 19.333] (**) /dev/wsmouse: (accel) acceleration factor: 2.000 [ 19.333] (**) /dev/wsmouse: (accel) acceleration threshold: 4 [ 38.832] (II) AIGLX: Suspending AIGLX clients for VT switch [ 862.908] (II) AIGLX: Resuming AIGLX clients after VT switch [ 862.908] (II) intel(0): switch to mode 2560x1440@60.0 on DP1 using pipe 0, position (0, 0), rotation normal, reflection none On Sun, Oct 25, 2015 at 5:48 AM, Mark Kettenis <mark.kette...@xs4all.nl> wrote: > The diff below makes inteldrm(4) attach directly to pci(4) instead of > vga(1). Because inteldrm(4) depends on intagp(4), this also make > intagp(4) a child of inteldrm(4). Ultimately I'd like to integrate > intagp(4) into inteldrm(4), but that's going to be a bit more work. > > This diff is needed to make inteldrm(4) work when OpenBSD gets booted > by UEFI firmware. It will also make inteldrm(4) work on machines with > discrete graphics. > > This diff needs to be tested on a wide range of hardware. So if you > have a machine with inteldrm(4), please give it a shot. I'm > particularly interested in testing on an x40. > > > Index: arch/amd64/conf/GENERIC > =================================================================== > RCS file: /cvs/src/sys/arch/amd64/conf/GENERIC,v > retrieving revision 1.398 > diff -u -p -r1.398 GENERIC > --- arch/amd64/conf/GENERIC 30 Sep 2015 12:24:44 -0000 1.398 > +++ arch/amd64/conf/GENERIC 9 Oct 2015 20:40:52 -0000 > @@ -300,15 +300,16 @@ wsdisplay0 at vga? console 1 > wskbd* at pckbd? mux 1 > wsmouse* at pms? mux 0 > > -intagp* at vga? # intel integrated graphics > #mmuagp* at pchb? # amd64 mmu agp. > - > -agp* at intagp? > #agp* at mmuagp? > > -inteldrm* at vga? # Intel i915, i945 DRM driver > +inteldrm* at pci? # Intel i915, i945 DRM driver > +intagp* at inteldrm? > +agp* at intagp? > drm0 at inteldrm? console 1 > drm* at inteldrm? > +wsdisplay0 at inteldrm? console 1 > +wsdisplay* at inteldrm? > radeondrm* at pci? # ATI Radeon DRM driver > drm0 at radeondrm? console 1 > drm* at radeondrm? > Index: arch/amd64/conf/files.amd64 > =================================================================== > RCS file: /cvs/src/sys/arch/amd64/conf/files.amd64,v > retrieving revision 1.81 > diff -u -p -r1.81 files.amd64 > --- arch/amd64/conf/files.amd64 4 Sep 2015 23:22:56 -0000 1.81 > +++ arch/amd64/conf/files.amd64 9 Oct 2015 16:36:41 -0000 > @@ -133,7 +133,7 @@ attach amas at pci > file dev/pci/amas.c amas > > # AGP bridge support. most attach at pchb > -file arch/amd64/pci/agp_machdep.c agp > +file arch/amd64/pci/agp_machdep.c agp | inteldrm > > # > # CARDBUS > Index: arch/i386/conf/GENERIC > =================================================================== > RCS file: /cvs/src/sys/arch/i386/conf/GENERIC,v > retrieving revision 1.806 > diff -u -p -r1.806 GENERIC > --- arch/i386/conf/GENERIC 30 Sep 2015 12:15:12 -0000 1.806 > +++ arch/i386/conf/GENERIC 10 Oct 2015 15:50:43 -0000 > @@ -358,7 +358,6 @@ wsdisplay0 at pcdisplay? console 1 > wskbd* at pckbd? mux 1 > wsmouse* at pms? mux 0 > > -intagp* at vga? # intel integrated graphics agp > aliagp* at pchb? > amdagp* at pchb? > intelagp* at pchb? > @@ -366,7 +365,6 @@ sisagp* at pchb? > viaagp* at pchb? > #mmuagp* at pchb? > > -agp* at intagp? # AGP bridges > agp* at aliagp? # AGP bridges > agp* at amdagp? # AGP bridges > agp* at intelagp? # AGP bridges > @@ -374,9 +372,13 @@ agp* at sisagp? # AGP bridges > agp* at viaagp? # AGP bridges > #agp* at mmuagp? > > -inteldrm* at vga? # Intel i915, i945 DRM driver > +inteldrm* at pci? # Intel i915, i945 DRM driver > +intagp* at inteldrm? > +agp* at intagp? > drm0 at inteldrm? console 1 > drm* at inteldrm? > +wsdisplay0 at inteldrm? console 1 > +wsdisplay* at inteldrm? > radeondrm* at pci? # ATI Radeon DRM driver > drm0 at radeondrm? console 1 > drm* at radeondrm? > Index: arch/i386/conf/files.i386 > =================================================================== > RCS file: /cvs/src/sys/arch/i386/conf/files.i386,v > retrieving revision 1.226 > diff -u -p -r1.226 files.i386 > --- arch/i386/conf/files.i386 20 Aug 2015 04:41:46 -0000 1.226 > +++ arch/i386/conf/files.i386 24 Oct 2015 21:28:00 -0000 > @@ -113,7 +113,7 @@ attach amas at pci > file dev/pci/amas.c amas > > # AGP bridge support. most attach at pchb > -file arch/i386/pci/agp_machdep.c agp > +file arch/i386/pci/agp_machdep.c agp | inteldrm > > # AMD Elan SC520 System Controller (PCI-Host bridge) > device elansc: gpiobus > Index: dev/pci/agp_i810.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/agp_i810.c,v > retrieving revision 1.91 > diff -u -p -r1.91 agp_i810.c > --- dev/pci/agp_i810.c 9 Oct 2015 13:22:54 -0000 1.91 > +++ dev/pci/agp_i810.c 24 Oct 2015 21:17:05 -0000 > @@ -43,11 +43,7 @@ > #include <dev/pci/pcidevs.h> > #include <dev/pci/agpvar.h> > #include <dev/pci/agpreg.h> > -#include <dev/ic/mc6845reg.h> > -#include <dev/ic/pcdisplayvar.h> > -#include <dev/ic/vgareg.h> > -#include <dev/ic/vgavar.h> > -#include <dev/pci/vga_pcivar.h> > +#include <dev/pci/drm/i915/i915_drv.h> > > #include <machine/bus.h> > > @@ -84,7 +80,9 @@ struct agp_i810_softc { > struct agp_softc *agpdev; > struct agp_gatt *gatt; > struct vga_pci_bar *map; > - struct vga_pci_bar *gtt_map; > + bus_space_tag_t gtt_bst; > + bus_space_handle_t gtt_bsh; > + bus_size_t gtt_size; > bus_dmamap_t scrib_dmamap; > bus_addr_t isc_apaddr; > bus_size_t isc_apsize; /* current aperture size */ > @@ -241,8 +239,9 @@ agp_i810_attach(struct device *parent, s > struct agp_i810_softc *isc = (struct agp_i810_softc *)self; > struct agp_gatt *gatt; > struct pci_attach_args *pa = aux, bpa; > - struct vga_pci_softc *vga = (struct vga_pci_softc *)parent; > + struct inteldrm_softc *psc = (struct inteldrm_softc > *)parent; > bus_addr_t mmaddr, gmaddr, tmp; > + bus_size_t gtt_off = 0; > pcireg_t memtype, reg; > u_int32_t stolen; > u_int16_t gcc1; > @@ -263,11 +262,16 @@ agp_i810_attach(struct device *parent, s > gmaddr = AGP_I965_GMADR; > mmaddr = AGP_I965_MMADR; > memtype = PCI_MAPREG_TYPE_MEM | PCI_MAPREG_MEM_TYPE_64BIT; > + if (isc->chiptype == CHIP_I965) > + gtt_off = AGP_I965_GTT; > + else > + gtt_off = AGP_G4X_GTT; > break; > default: > gmaddr = AGP_APBASE; > mmaddr = AGP_I810_MMADR; > memtype = PCI_MAPREG_TYPE_MEM; > + gtt_off = AGP_I810_GTT; > break; > } > > @@ -277,20 +281,31 @@ agp_i810_attach(struct device *parent, s > return; > } > > - isc->map = vga_pci_bar_map(vga, mmaddr, 0, BUS_SPACE_MAP_LINEAR); > - if (isc->map == NULL) { > + isc->map = psc->regs; > + if (pci_mapreg_map(pa, mmaddr, memtype, BUS_SPACE_MAP_LINEAR, > + &isc->map->bst, &isc->map->bsh, &isc->map->base, > + &isc->map->size, gtt_off)) { > printf("can't map mmadr registers\n"); > return; > } > > if (isc->chiptype == CHIP_I915 || isc->chiptype == CHIP_G33 || > isc->chiptype == CHIP_PINEVIEW) { > - isc->gtt_map = vga_pci_bar_map(vga, AGP_I915_GTTADR, 0, > - BUS_SPACE_MAP_LINEAR); > - if (isc->gtt_map == NULL) { > + if (pci_mapreg_map(pa, AGP_I915_GTTADR, memtype, > + BUS_SPACE_MAP_LINEAR, &isc->gtt_bst, &isc->gtt_bsh, > + NULL, &isc->gtt_size, 0)) { > printf("can't map gatt registers\n"); > goto out; > } > + } else { > + isc->gtt_bst = isc->map->bst; > + isc->gtt_size = (isc->isc_apsize >> AGP_PAGE_SHIFT) * 4; > + if (bus_space_map(isc->gtt_bst, isc->map->base + gtt_off, > + isc->gtt_size, BUS_SPACE_MAP_LINEAR, &isc->gtt_bsh)) { > + printf("can't map gatt registers\n"); > + isc->gtt_size = 0; > + goto out; > + } > } > > gatt = malloc(sizeof(*gatt), M_AGP, M_NOWAIT | M_ZERO); > @@ -512,6 +527,7 @@ agp_i810_attach(struct device *parent, s > isc->agpdev = (struct agp_softc *)agp_attach_bus(pa, > &agp_i810_methods, > isc->isc_apaddr, isc->isc_apsize, &isc->dev); > isc->agpdev->sc_stolen_entries = isc->stolen; > + bus_space_unmap(isc->map->bst, isc->map->bsh, isc->map->size); > return; > out: > > @@ -521,10 +537,10 @@ out: > isc->gatt->ag_dmamap, &isc->gatt->ag_dmaseg); > free(isc->gatt, M_AGP, sizeof (*isc->gatt)); > } > - if (isc->gtt_map != NULL) > - vga_pci_bar_unmap(isc->gtt_map); > - if (isc->map != NULL) > - vga_pci_bar_unmap(isc->map); > + if (isc->gtt_size != 0) > + bus_space_unmap(isc->gtt_bst, isc->gtt_bsh, isc->gtt_size); > + if (isc->map->size != 0) > + bus_space_unmap(isc->map->bst, isc->map->bsh, isc->map->size); > } > > int > @@ -777,7 +793,7 @@ void > intagp_write_gtt(struct agp_i810_softc *isc, bus_size_t off, paddr_t v) > { > u_int32_t pte = 0; > - bus_size_t baseoff, wroff; > + bus_size_t wroff; > > if (isc->chiptype != CHIP_I810 && > (off >> AGP_PAGE_SHIFT) < isc->stolen) { > @@ -800,25 +816,5 @@ intagp_write_gtt(struct agp_i810_softc * > } > > wroff = (off >> AGP_PAGE_SHIFT) * 4; > - > - switch(isc->chiptype) { > - case CHIP_I915: > - /* FALLTHROUGH */ > - case CHIP_G33: > - case CHIP_PINEVIEW: > - bus_space_write_4(isc->gtt_map->bst, isc->gtt_map->bsh, > - wroff, pte); > - return; > - case CHIP_I965: > - baseoff = AGP_I965_GTT; > - break; > - case CHIP_G4X: > - case CHIP_IRONLAKE: > - baseoff = AGP_G4X_GTT; > - break; > - default: > - baseoff = AGP_I810_GTT; > - break; > - } > - bus_space_write_4(isc->map->bst, isc->map->bsh, baseoff + wroff, pte); > + bus_space_write_4(isc->gtt_bst, isc->gtt_bsh, wroff, pte); > } > Index: dev/pci/drm/files.drm > =================================================================== > RCS file: /cvs/src/sys/dev/pci/drm/files.drm,v > retrieving revision 1.33 > diff -u -p -r1.33 files.drm > --- dev/pci/drm/files.drm 23 Sep 2015 23:12:11 -0000 1.33 > +++ dev/pci/drm/files.drm 9 Oct 2015 20:43:10 -0000 > @@ -35,8 +35,8 @@ file dev/pci/drm/ttm/ttm_object.c ttm > file dev/pci/drm/ttm/ttm_page_alloc.c ttm > file dev/pci/drm/ttm/ttm_tt.c ttm > > -device inteldrm: drmbase, wsemuldisplaydev, rasops32, i2cbus, i2c_bitbang > -attach inteldrm at drmdev > +device inteldrm: agpint, drmbase, wsemuldisplaydev, rasops32, i2cbus, > i2c_bitbang > +attach inteldrm at pci > file dev/pci/drm/i915/i915_dma.c inteldrm > file dev/pci/drm/i915/i915_drv.c inteldrm > file dev/pci/drm/i915/i915_gem.c inteldrm > Index: dev/pci/drm/i915/i915_drv.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_drv.c,v > retrieving revision 1.94 > diff -u -p -r1.94 i915_drv.c > --- dev/pci/drm/i915/i915_drv.c 17 Oct 2015 21:41:12 -0000 1.94 > +++ dev/pci/drm/i915/i915_drv.c 24 Oct 2015 21:19:51 -0000 > @@ -497,7 +497,9 @@ i915_get_device_id(int device) > int > inteldrm_probe(struct device *parent, void *match, void *aux) > { > - return (drm_pciprobe((struct pci_attach_args *)aux, pciidlist)); > + if (drm_pciprobe(aux, pciidlist)) > + return 20; > + return 0; > } > > static int > @@ -954,6 +956,12 @@ int i915_reset(struct drm_device *dev) > return 0; > } > > +#include "intagp.h" > + > +#if NINTAGP > 0 > +int intagpsubmatch(struct device *, void *, void *); > +int intagp_print(void *, const char *); > +#endif > > int inteldrm_wsioctl(void *, u_long, caddr_t, int, struct proc *); > paddr_t inteldrm_wsmmap(void *, off_t, int); > @@ -1183,18 +1191,27 @@ void > inteldrm_attach(struct device *parent, struct device *self, void *aux) > { > struct inteldrm_softc *dev_priv = (struct inteldrm_softc *)self; > - struct vga_pci_softc *vga_sc = (struct vga_pci_softc *)parent; > struct pci_attach_args *pa = aux; > struct rasops_info *ri = &dev_priv->ro; > struct wsemuldisplaydev_attach_args aa; > - extern int wsdisplay_console_initted; > - struct vga_pci_bar *bar; > + extern int vga_console_attached; > struct drm_device *dev; > const struct intel_device_info *info; > int ret = 0, mmio_bar, mmio_size; > + pcireg_t mmio_type; > uint32_t aperture_size; > + int console = 0; > int i; > > + if (PCI_CLASS(pa->pa_class) == PCI_CLASS_DISPLAY && > + PCI_SUBCLASS(pa->pa_class) == PCI_SUBCLASS_DISPLAY_VGA && > + (pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_COMMAND_STATUS_REG) > + & (PCI_COMMAND_IO_ENABLE | PCI_COMMAND_MEM_ENABLE)) > + == (PCI_COMMAND_IO_ENABLE | PCI_COMMAND_MEM_ENABLE)) { > + console = 1; > + vga_console_attached = 1; > + } > + > info = i915_get_device_id(PCI_PRODUCT(pa->pa_id)); > KASSERT(info->gen != 0); > > @@ -1205,17 +1222,23 @@ inteldrm_attach(struct device *parent, s > dev_priv->dmat = pa->pa_dmat; > dev_priv->bst = pa->pa_memt; > dev_priv->memex = pa->pa_memex; > + dev_priv->regs = &dev_priv->bar; > > printf("\n"); > > if (dev_priv->info->gen >= 6) > inteldrm_driver.flags &= ~(DRIVER_AGP | DRIVER_AGP_REQUIRE); > +#if NINTAGP > 0 > + else { > + config_found_sm(self, aux, intagp_print, intagpsubmatch); > + } > +#endif > > inteldrm_driver.num_ioctls = i915_max_ioctl; > > /* All intel chipsets need to be treated as agp, so just pass one */ > dev = dev_priv->dev = (struct drm_device *) > - drm_attach_pci(&inteldrm_driver, pa, 1, 1, self); > + drm_attach_pci(&inteldrm_driver, pa, 1, console, self); > > intel_gtt_chipset_setup(dev); > mtx_init(&mchdev_lock, IPL_TTY); > @@ -1262,16 +1285,11 @@ inteldrm_attach(struct device *parent, s > else > mmio_size = 2*1024*1024; > > - /* we need to use this api for now due to sharing with intagp */ > - bar = vga_pci_bar_info(vga_sc, mmio_bar); > - if (bar == NULL) { > - printf("%s: can't get BAR info\n", > - dev_priv->sc_dev.dv_xname); > - goto free_priv; > - } > - > - dev_priv->regs = vga_pci_bar_map(vga_sc, bar->addr, mmio_size, 0); > - if (dev_priv->regs == NULL) { > + mmio_bar = 0x10 + mmio_bar * 0x04; > + mmio_type = pci_mapreg_type(pa->pa_pc, pa->pa_tag, mmio_bar); > + if (pci_mapreg_map(pa, mmio_bar, mmio_type, 0, &dev_priv->regs->bst, > + &dev_priv->regs->bsh, &dev_priv->regs->base, > + &dev_priv->regs->size, mmio_size)) { > printf("%s: can't map mmio space\n", > dev_priv->sc_dev.dv_xname); > goto free_priv; > @@ -1473,23 +1491,22 @@ inteldrm_attach(struct device *parent, s > inteldrm_stdscreen.fontwidth = ri->ri_font->fontwidth; > inteldrm_stdscreen.fontheight = ri->ri_font->fontheight; > > - aa.console = 0; > + aa.console = console; > aa.scrdata = &inteldrm_screenlist; > aa.accessops = &inteldrm_accessops; > aa.accesscookie = dev_priv; > aa.defaultscreens = 0; > > - if (wsdisplay_console_initted) { > + if (console) { > long defattr; > > ri->ri_ops.alloc_attr(ri->ri_active, 0, 0, 0, &defattr); > wsdisplay_cnattach(&inteldrm_stdscreen, ri->ri_active, > 0, 0, defattr); > - aa.console = 1; > } > > - vga_sc->sc_type = -1; > - config_found(parent, &aa, wsemuldisplaydevprint); > + config_found_sm(self, &aa, wsemuldisplaydevprint, > + wsemuldisplaydevsubmatch); > return; > > out_power_well: > @@ -1524,7 +1541,8 @@ out_regs: > #ifdef __linux__ > pci_iounmap(dev->pdev, dev_priv->regs); > #else > - vga_pci_bar_unmap(dev_priv->regs); > + bus_space_unmap(dev_priv->regs->bst, dev_priv->regs->bsh, > + dev_priv->regs->size); > #endif > free_priv: > dev->dev_private = NULL; > @@ -1556,7 +1574,8 @@ inteldrm_detach(struct device *self, int > pci_intr_disestablish(dev_priv->pc, dev_priv->irqh); > > if (dev_priv->regs != NULL) > - vga_pci_bar_unmap(dev_priv->regs); > + bus_space_unmap(dev_priv->regs->bst, dev_priv->regs->bsh, > + dev_priv->regs->size); > > return (0); > } > Index: dev/pci/drm/i915/i915_drv.h > =================================================================== > RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_drv.h,v > retrieving revision 1.70 > diff -u -p -r1.70 i915_drv.h > --- dev/pci/drm/i915/i915_drv.h 17 Oct 2015 21:41:12 -0000 1.70 > +++ dev/pci/drm/i915/i915_drv.h 24 Oct 2015 20:42:44 -0000 > @@ -1457,6 +1457,7 @@ typedef struct inteldrm_softc { > pci_intr_handle_t ih; > void *irqh; > > + struct vga_pci_bar bar; > struct vga_pci_bar *regs; > > int nscreens; >