On 2014-03-23, at 6:06 PM, David H. Gutteridge wrote: > On 2014-03-20, at 6:27 PM, David H. Gutteridge wrote: >> On Tue, 18 Mar 2014 at 19:17:01, Taylor R Campbell wrote: >>> I merged the riastradh-drm2 branch to HEAD today. This shouldn't >>> cause any problems for anyone, because it touched very little outside >>> sys/external/bsd/drm2 -- it's not hooked into any kernels other than >>> the new amd64/DRMKMS one. But let me know if you observe any fallout. >>> >>> Update to userland X.org should be coming soon, so that userlands can >>> take advantage of the new DRM/KMS drivers. >> >> Hello, >> >> I doubt I'm telling you anything you don't already know, but I tried >> compiling a DRMKMS kernel for both amd64 and i386 to test, and >> neither compiled. > >> With i386, I hit this first: >> >> In file included from >> /usr/builds/netbsd-current/src/sys/external/bsd/drm2/dist/include/drm/drmP.h:52:0, >> from >> /usr/builds/netbsd-current/src/sys/external/bsd/drm2/dist/drm/drm_agpsupport.c:34: >> /usr/builds/netbsd-current/src/sys/external/bsd/drm2/include/linux/pci.h: In >> function 'pci_bus_alloc_resource': >> /usr/builds/netbsd-current/src/sys/external/bsd/drm2/include/linux/pci.h:255:6: >> error: large integer implicitly truncated to unsigned type >> *** [drm_agpsupport.o] Error code 1 >> >> I realize you only provided an amd64 kernel, the implication being >> i386 might not yet be supported, but I tried it anyway, as the machine >> I'd test with isn't capable of running 64-bit code. >> >> From looking at the code, it's clear you're already aware of the >> issue, given your "XXX" notation. >> >> error = bus_space_alloc(bst, start, 0xffffffffffffffffULL /* XXX */, >> size, align, 0, 0, &resource->start, &resource->r_bsh); >> > > If this is of interest to anyone, I opened a PR detailing some issues > that prevent this code from being used on i386. (The PR is 48676.) > > Dave
Recent changes by riastradh@ have made i386 kernels with drm2 enabled buildable, so I've now tested on my somewhat aged machine with an i945GME chipset. Details follow for the curious. With is_console=1 set in src/sys/external/bsd/drm2/i915drm/i915_pci.c the kernel tries to probe/attach to the graphics chipset (I'm not sure exactly how far it gets, the messages flash by too fast) and then fails, causing an apparent kernel panic (or at least a freeze). I'm not able to get any dmesg output saved from it, and the screen simply goes black. The machine doesn't respond to network activity. With is_console=0 set, the kernel boots successfully, but the console is unusable. (A small, fixed white cursor appears in the top left of the screen, and I cannot switch VTs to other text consoles.) The machine does boot multi-user, though, and responds to network activity, so I've gleaned the following dmesg details. Regards, Dave : vendor 0x8086 product 0x27ac (rev. 0x03) agp0 at pchb0: detected 7932k stolen memory agp0: aperture at 0xc0000000, size 0x10000000 i915drmkms0 at pci0 dev 2 function 0 : vendor 0x8086 product 0x27ae (rev. 0x03) drmkms0 at i915drmkms0 drm: Memory usable by graphics device = 256M drm: MTRR allocation failed. Graphics performance may suffer. drm: Supports vblank timestamp caching Rev 1 (10.10.2010). drm: Driver supports precise vblank timestamp query. i915drmkms0: unable to map ROM drm: failed to find VBIOS tables i915drmkms0: unable to map VGA registersdrm kern warning: composite sync not supported drm: initialized overlay support drmkms0: interrupting at ioapic0 pin 16 (i915) <snip> drm kern warning: composite sync not supported render error detected, EIR: 0x00000010 page table error PGTBL_ER: 0x00000100 DRM error in i915_report_and_clear_eir: EIR stuck: 0x00000010, masking render error detected, EIR: 0x00000010 page table error PGTBL_ER: 0x00000100 i915drmkms0: framebuffer at 0xda82b000, size 1024x600, depth 32, stride 4096 wsdisplay1 at i915drmkms0 kbdmux 1 wsmux1: connecting to wsdisplay1 fixme: max PWM is zero drmkms0: info: registered panic notifier