On Tue, Apr 10, 2012 at 3:19 PM, Steven Newbury <steve@xxxxxxxxxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 10/04/12 21:45, Yinghai Lu wrote: >> On Tue, Apr 10, 2012 at 1:26 PM, Steven Newbury >> <steve@xxxxxxxxxxxxxxx> wrote: >>>> >>> So far I'm concluding the BIOS isn't sane. Is it possible to >>> define a custom memory map from the linux boot cmdline to set >>> TOP_OF_LOW_MEM? >> >> The BIOS have MMIO and memory overlapping... >> >>> > Another thought, normally the integrated graphics has an "AGP" > aperture of 256M @0xe0000000, which is detected by agpgart-intel, this > will need to be moved up above 4G to free up 0xe0000000 for the > radeon, assuming the "agp_bridge" has a 64bit base register... I > noticed in my docked dmesg, "AGP aperture is 256M @ 0x20000000", but > the PCI base: "120000000-12fffffff : 0000:00:02.0" so only 32bits have > been set in agpgart-intel. Explains why i915 wasn't initialised. > >>> Obviously, I'd prefer getting everything allocated into the >>> address space available, and working, but if it comes down to it >>> I'd accept a hack like the above if there's no other way. >> >> Could try to reduce carbus preallocated size.... boot with >> pci=cbmemsize=16M >> >> Please apply attached patch in addtition to allocate_high_at_first >> > I'll try first thing tomorrow. I'm away from the docking station now. Why are we messing around with resources above 4G? The host bridge _CRS reports no apertures above 4G, and you can't just try random things and hope they work. If the host bridge has a _PRS with settings above 4G that we could enable, that might be worthwhile. I haven't seen _PRS on a host bridge yet, and Linux would ignore it if it existed, but that would be a plausible approach. (Turn on CONFIG_PNP_DEBUG_MESSAGES and boot with pnp.debug=1 to see if you have any _PRS.) I think it would be helpful to break this down and look at one issue at a time, e.g., by removing the dock/undock hotplug issues. In https://bugzilla.kernel.org/show_bug.cgi?id=10461#c12, I think the problem you're seeing is that when you boot while docked, the integrated i915 works, but the radeon in the dock does not. That makes sense to me because they each want 256M of space, and according to your _CRS info, there's only one possible location with that much space (0xe0000000). Do you happen to know what Windows does in that situation? Does the radeon work and the i915 not, or does it somehow make both work? Is there any way you could collect the device info under Windows, using AIDA64 (http://www.aida64.com/) or similar? Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html