Radeon X700 BUS_CNTL register problem

Euan Kirkohope euank at mindless.com
Tue Apr 11 13:46:00 PDT 2006

Sorry for the intrusion, I'm looking for some help with code ported from X
to BeOS.  I have an X800 that works absolutely great, but many users can’t
get their X300 / X600 / X700 hardware running at all.  I’ve been my pulling
hair out for several weeks trying to find inconsistencies between X and the
BeOS / Haiku (open BeOS) code.  They just a garbled screen, with working
cursor and the odd Icon that occasionally redraws.

Below are two partial reg dumps that are produced immediately after a CP
start. AGP X800 on the left, AGP X700 on the right:

rbbm_status  =140       =140     
bus_cntl     =5133a2a0  =a0      
mem_cntl     =62        =69      
cp_stat      =80000004  =80000004
host_p_cntl  =40800000  =40800000
tlb_cntl     =1         =ffffffff
tlb_stat     =4         =ffffffff
tlb_pt_base  =1ea8000   =ffffffff
tlb_address  =0         =ffffffff
tlb_data     =0         =ffffffff
cp_rb_base   =cdcdcdcc  =cdcdcdcc
cp_rb_cntl   =0         =0       
cp_rb_raddr  =0         =0       
cp_rb_rptr   =0         =0       
cp_rb_wptr   =0         =0       

Both logs are from the same PC.  Nforce2 mobo, Xp2500, 512Mb DDR ram.  As
you can see the Bus control regs for the X700 are not right.  The code path
for the two cards are identical (both cards are treated as R420).  Any ideas
why the card is not initializing?

In the end the logs just end up with:

Radeon - Radeon_WaitForIdle: Engine didn't become idle
Radeon - Radeon_ResetEngine:
Radeon - Radeon_DiscardAllIndirectBuffers: 1
Radeon - SYNC_TO_TOKEN: Failed waiting for token 2 (active token: 0)

Full log for the X700:

Full log for the X800:

Source code if anyone wants it (it's very like X, but readable! Credits to
the author Thomas Kurschel).


More information about the xorg mailing list