PCI Radeon RV100 detection hang on sparc64

Adam Jackson ajax at redhat.com
Thu Sep 6 09:51:17 PDT 2012


On Thu, 2012-09-06 at 17:41 +0300, Meelis Roos wrote:

> [drm] radeon defaulting to kernel modesetting.
> [drm] radeon kernel modesetting enabled.
> PCI: Enabling device: (0000:02:02.0), cmd 82
> [drm] initializing kernel modesetting (RV100 0x1002:0x5159 0x1002:0x0908).
> [drm] register mmio base: 0x10000000
> [drm] register mmio size: 32768
> [drm:radeon_device_init] *ERROR* Unable to find PCI I/O BAR

This particular message looks like it might actually be harmless, all
the code paths that use the I/O BAR can use the MMIO mirror of it
instead.  No idea how well tested that is, but at any rate it's not
what's breaking your setup.

> And here the machine hangs. Debugging printk-s reveal that it does not 
> find any active I/O port resources and then continues into initializing 
> the card. Down in igp_read_bios_from_vram() it successfully ioremaps 
> memory region 0 (vram_base=1ff08000000 and size=40000) and tries to read 
> 2 bytes from there and hangs on reading bios[0].

This is probably because...

> 02:02.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RV100 QY [Radeon 7000/VE] (prog-if 00 [VGA controller])
>         Subsystem: Advanced Micro Devices [AMD] nee ATI XVR-100 (supplied by Sun)
>         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- DisINTx-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
>         Latency: 0 (2000ns min)
>         Interrupt: pin A routed to IRQ 16
>         Region 0: Memory at 08000000 (32-bit, prefetchable) [size=64M]
>         Region 1: I/O ports at 0400 [disabled] [size=256]
>         Region 2: Memory at 10000000 (32-bit, non-prefetchable) [size=32K]
>         Region 3: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1]
>         Region 4: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1]
>         Region 5: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1]
>         Expansion ROM at 10020000 [disabled] [size=128K]

... the ROM BAR looks like it's not routed.

On x86 you could fix this by booting with 'pci=rom' to force the ROM BAR
to be routed regardless of firmware setup, no idea how that's meant to
work on sparc though.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20120906/9fada6d8/attachment.pgp>


More information about the dri-devel mailing list