On Sat, 18 Jun 2005, Johannes Berg wrote:
> I just tried the latest r300 cvs code (with current mesa cvs, latest
> Xorg snapshot) but all I get is a lockup as soon as the X server starts.
> If I have debugging enabled, I get a loop of radeon_do_cp_idle calls.
> Hardware is:
> 0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10] (prog-if 00 [VGA])
> Subsystem: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
> Latency: 255 (2000ns min), Cache Line Size: 0x08 (32 bytes)
> Interrupt: pin A routed to IRQ 48
> Region 0: Memory at b8000000 (32-bit, prefetchable) [size=128M]
> Region 1: I/O ports at 802400 [size=256]
> Region 2: Memory at b0000000 (32-bit, non-prefetchable) [size=64K]
> Expansion ROM at f1000000 [disabled] [size=128K]
> Capabilities:  AGP version 2.0
> Status: RQ=80 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4
> Command: RQ=1 ArqSz=0 Cal=0 SBA+ AGP- GART64- 64bit- FW- Rate=<none>
> Capabilities:  Power Management version 2
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> Any idea where I should start looking for the source of the lockups or what else to do?
The problem is likely either due to the radeon memory controller - in
particular registers like MC_FB_LOCATION MC_AGP_LOCATION - or some sort of
AGP issue with ring buffer not working properly.
The 2d support should work - the fact that it does not indicates a screw
up someplace "obvious".
Check that the registers mentioned above are programmed to what Xserver
and drm driver think they are. In particular look for endianness errors,
though this might not be it..
To avoid lockups you can modify Xserver code to put exit(0) just after
those are set - you will need a separate box to ssh in as the monitor
will not be in a usable state.