Re: AGP cards in PCI mode (fake slots like AGPro, AGP Express, AGI, AGX, XGP)

From: Ondrej Zary
Date: Tue Sep 15 2015 - 08:43:19 EST


On Monday 14 September 2015 04:31:43 Alex Deucher wrote:
> On Sun, Sep 13, 2015 at 2:57 PM, Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx> wrote:
> > Hello,
> > I have a PC Chips A31G board with AGPro slot and found that nouveau does
> > not work properly with it. Console works but reverts to software mode,
> > X11 hangs with mouse cursor only.
> >
> > The slot is physically AGP 1.5V but is wired to PCI bus as the chipset
> > (SiS 761) does not support AGP cards. To further complicate things, the
> > chipset has AGP capability - but only for the integrated video. You can
> > see that in the lspci output below - the AGP card is on bus 0 and SiS
> > card on bus 1 (AGP bus behind the AGP bridge). The SiS card is not used
> > (can be disabled in BIOS but it does not improve things - as the AGP
> > capability of the host bridge remains active).
> >
> > As seen in dmesg below, kernel tries to set AGP 8x mode for all AGP
> > devices, including the AGP 4x TNT2 card which is not even connected to
> > the AGP bridge.
> >
> > Setting nouveau.agpmode=0 makes it work but how can we make this case
> > work automatically?
> >
> > Radeon driver does some "ring test" and if it fails, it disables AGP mode
> > and retries. That seems to work a bit (with R7000 but not with R7200).
>
> You can boot with radeon.agpmode=-1 to force pci mode.

Found out that the autoswitch to PCI mode works correctly. Radeon 7000 works
without any parameters (first ring test fails, then the driver disables AGP
and the second ring test succeeds).

Radeon 7200 does not work even with agpmode=-1 - ring test fails (both ring
test fail if booted without the agpmode=-1 parameter):

[ 13.111087] [drm] radeon kernel modesetting enabled.
[ 13.679593] [drm] initializing kernel modesetting (R100 0x1002:0x5144 0x1002:0x02AA).
[ 13.679669] [drm] Forcing AGP to PCI mode
[ 13.679737] [drm] register mmio base: 0xFEA00000
[ 13.679790] [drm] register mmio size: 524288
[ 13.683710] radeon 0000:00:05.0: VRAM: 128M 0x00000000D0000000 - 0x00000000D7FFFFFF (32M used)
[ 13.683782] radeon 0000:00:05.0: GTT: 512M 0x00000000B0000000 - 0x00000000CFFFFFFF
[ 13.684802] [drm] Detected VRAM RAM=128M, BAR=128M
[ 13.684856] [drm] RAM width 128bits DDR
[ 13.687628] [TTM] Zone kernel: Available graphics memory: 240180 kiB
[ 13.687686] [TTM] Initializing pool allocator
[ 13.687778] [drm] radeon: 32M of VRAM memory ready
[ 13.687831] [drm] radeon: 512M of GTT memory ready.
[ 13.687904] [drm] GART: num cpu pages 131072, num gpu pages 131072
[ 13.690406] [drm] PCI GART of 512M enabled (table at 0x000000001A680000).
[ 13.690510] radeon 0000:00:05.0: WB disabled
[ 13.690566] radeon 0000:00:05.0: fence driver on ring 0 use gpu addr 0x00000000b0000000 and cpu addr 0xc0051000
[ 13.690638] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 13.690693] [drm] Driver supports precise vblank timestamp query.
[ 13.690780] [drm] radeon: irq initialized.
[ 13.690844] [drm] Loading R100 Microcode
[ 14.575464] [drm] radeon: ring at 0x00000000B0001000
[ 14.750114] [drm:r100_ring_test [radeon]] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD)
[ 14.750423] [drm:r100_cp_init [radeon]] *ERROR* radeon: cp isn't working (-22).
[ 14.750631] radeon 0000:00:05.0: failed initializing CP (-22).
[ 14.750770] radeon 0000:00:05.0: Disabling GPU acceleration
[ 14.925219] [drm:r100_cp_fini [radeon]] *ERROR* Wait for CP idle timeout, shutting down CP.
[ 14.927652] [drm] radeon: cp finalized
[ 14.933949] [drm] Radeon Display Connectors
[ 14.934079] [drm] Connector 0:
[ 14.934196] [drm] DVI-I-1
[ 14.934310] [drm] HPD1
[ 14.934424] [drm] DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
[ 14.934563] [drm] Encoders:
[ 14.934679] [drm] CRT1: INTERNAL_DAC1
[ 14.934804] [drm] DFP1: INTERNAL_TMDS1
[ 14.991877] [drm] fb mappable at 0xD0040000
[ 14.992023] [drm] vram apper at 0xD0000000
[ 14.992147] [drm] size 1310720
[ 14.992264] [drm] fb depth is 8
[ 14.992381] [drm] pitch is 1280
[ 14.993653] fbcon: radeondrmfb (fb0) is primary device
[ 15.072448] Console: switching to colour frame buffer device 160x64
[ 15.096165] radeon 0000:00:05.0: fb0: radeondrmfb frame buffer device
[ 15.096581] [drm] Initialized radeon 2.43.0 20080528 for 0000:00:05.0 on minor 0

--
Ondrej Zary
--
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/