Re: (Re)assignment of PCI BARs

From: Beng Tan
Date: Fri Aug 28 2009 - 03:13:20 EST


Hi,

I've found a satisfactory fix for myself ... not quite sure if I've
got the full picture correct, but for those who are interested in
reading ...

Using the boot parameter pci=resource_alignment=26@00:1c.3; I was able
to get the kernel to reassign the intervening bridge. My iomem was
then (excerpt only) ...

88000000-9fffffff : PCI Bus 0000:0d
88000000-8801ffff : 0000:0d:00.0
90000000-9fffffff : 0000:0d:00.0
a0000000-a00fffff : PCI Bus 0000:0d
a0000000-a000ffff : 0000:0d:00.0
a0010000-a0013fff : 0000:0d:00.1
a0100000-a0100fff : Intel Flush Page
d0000000-dfffffff : 0000:00:02.0

Forcing a resource_alignment reallocated the bridge's windows and
freed up space for the graphics card, which is now like so:

0d:00.0 VGA compatible controller: ATI Technologies Inc Unknown device
9540 (prog-if 00 [VGA controller])
Subsystem: Giga-byte Technology Unknown device 21ae
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: Memory at 90000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at a0000000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at de00 [size=256]
Expansion ROM at 88000000 [disabled] [size=128K]

(I'm not sure if an align order of 26 is too much. A lesser number may
work just as well, but I haven't tested this)

>From here on, the card and everything else just worked, including X
(albeit with some xorg.conf tweaking).

So, all I have to do is go buy two monitors :( and I can have 3
external monitors on my old crappy laptop :)

For those who are also interested in hooking external PCIe cards to
their laptop's Expresscard port, the PE2L hardware does work. However,
you may encounter BIOS-induced PCI resource allocation issues, and
whether your distribution is recent enough to fix this is an open
question.

Thanks all for reading.

Beng
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/