tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xorg pci probing



> On Tue, Jan 18, 2011 at 09:47:29AM +0100, Christoph Egger wrote:
> > In /var/log/X.org both Radeon devices are enlisted but none
> > has been selected as the primary one. X then quits with the
> > message "Primary device is not PCI"
> 
> I still don't understand what this means, and why it doesn't
> choose one of them arbitrarily.

The function xf86PciProbe() in

external/mit/xorg-server/dist/hw/xfree86/common/xf86pciBus.c

has two methods to find the primary one. The first requires
was never used on NetBSD due to lack of pci_device_is_boot_vga()
and the second method doesn't choose one arbitrarily per implementation.

> If you edit your config file to select a primary one, it would
> work?

No.

> If you select the other one as primary, would it still work?

No.

If the config file worked then there would be no reason to develop the patches.

> > Per discussion with macallen@ I implemented pci_device_is_boot_vga()
> > and that works.
> 
> Can you please explain why the OS console device is relevant
> here? You said it is not about initialization - I don't quite
> get it.

The function pci_device_is_boot_vga() is supposed to return 
'true' for the pci vga device the firmware uses which is not
neccessarily the OS console device (it can be a serial console).

 
> > > What happens if you boot your machine with a serial console (assuming
> for
> > > the sake of argument it would have a serial port)?
> > 
> > That machine is a laptop and has no serial console.
> 
> Yes, but the same situation could happen on a desktop. Assume I would
> have such a machine and boot it with serial console. According to your
> logic (as far as I understood it so far), I wouldn't be able to use X.

Right. The error message "Primary device is not PCI" comes from

external/mit/xorg-server/dist/hw/xfree86/common/xf86pciBus.c

function xf86PciMatchDriver().


Christoph


Home | Main Index | Thread Index | Old Index