Date: Thu, 4 Feb 2016 21:33:31 +0300 From: Alexander Mishurov <alexander.m.mishurov@gmail.com> To: freebsd-x11@freebsd.org Subject: Re: ValleyView Message-ID: <56B3997B.70703@gmail.com> In-Reply-To: <56B30869.6000109@gmail.com> References: <56B30869.6000109@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is kinda weird, but it works. When I started using device itself instead of parent bus: return device from "agp_i810_find_bridge" instead of pci_find_dbsf(0, 0, 0, 0), all devices attached: agp0: <Valleyview (mobile)> on vgapci0 agp0: aperture size is 256M, detected 65532k stolen memory agp0: AGP_SNB_GFX_MODE: 00000000 agp0: AGP_SNB_GCC1: 0x0211 agp0: Mappable GTT entries: 65536 agp0: Total GTT entries: 524288 info: [drm] Initialized drm 1.1.0 20060810 [drm:pid1326:drm_probe_helper] drmn0 desc: Intel Valleyview (mobile) drmn0: <Intel Valleyview (mobile)> on vgapci0 [drm:pid1326:drm_get_pci_dev] Now it's *ERROR* eDP powered off while attempting aux channel communication. Working on dev/drm2/i915/intel_dp.c There's lot of code to get from Linux. On 04/02/2016 11:14, Alexander Mishurov wrote: > Hi! > > I started enabling ValleyView in drm2 and faced some problems. > > Target device: Acer E3-112 laptop. Celeron N2840. > > VGA: pci0:0:2:0, 0x0f318086 > HOST-PCI: pci0:0:0:0, 0x0f008086 > > I use these docs as reference: > https://01.org/linuxgraphics/documentation/hardware-specification-prms > > Particularly these two documents: > 1. This one for ValleyView PCI configurations space registers > https://01.org/sites/default/files/documentation/intel_os_gfx_prm_vol11_-_gfx_interface.pdf > 2. And this one for Haswell PCI configurations space registers to > compare because Haswell already exist > https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-hsw-pcie-config-registers.pdf > > I enabled my device id in > dev/drm2/drm_pciids.h > dev/drm2/i915/i915_drv.c > > And turned on "i915_enable_unsupported" variable. > > And faced kernel crash with following problem: > Fatal trap 12: page fault while in kernel mode > device_get_softc() at device_get_softc+0x4/frame 0xfffffe023131c3c0 > intel_gtt_get_bridge_device() at > intel_gtt_get_bridge_device+0x11/frame 0xfffffe023131c3d0 > i915_driver_load() at i915_driver_load+0x3ac/frame 0xfffffe023131c550 > drm_get_pci_dev() at drm_get_pci_dev+0x436/frame 0xfffffe023131c5b0 > drm_attach_helper() at drm_attach_helper+0x13f/frame 0xfffffe023131c600 > i915_attach() at i915_attach+0x53/frame 0xfffffe023131c610 > device_attach() at device_attach+0x41d/frame 0xfffffe023131c670 > > So I figured out I need to get agp working. I added device id to > dev/agp/agp_i810.c > > Nothing happens, some debugging revealed that all functions: > agp_sb_check_active() > agp_sb_get_stolen_size() > agp_sb_get_gtt_total_entries() > and others that in order call > pci_read_config() > and read pci registers from bridge device, always return zeros. > I checked constants in > dev/agp/agpreg.h > All Sandy Bridge constants for config registers match those in > documents for HSW and VLV mentioned above. > > So I don't know what's causing the problem. I'm running dev kernel on > EFI booted machine with xorg and xf86-video-scfb. > > > > > > > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56B3997B.70703>