Sorry for the delay in response.

On 10/30/06, Phillip Ezolt <[EMAIL PROTECTED]> wrote:
> Alex,
>
>
> > >
> > > (II) resource ranges after probing:
> > > DRI broken:
> > >        [33] 0  0       0x000003b0 - 0x000003bb (0xc) IS[B]
> > >        [34] 0  0       0x000003c0 - 0x000003df (0x20) IS[B]
> > > ...
> > > fglrx:
> > >        [34] 0  0       0xb01203b0 - 0xb01203bb (0xc) IS[B]
> > >        [35] 0  0       0xb01203c0 - 0xb01203df (0x20) IS[B]
> > >
> > > 1) What are these mappings used for?
> >
> > Not sure.  Possibly something for PCIE GART?  What apertures does the
> > XPRESS chip expose?
>
> How do I check that?  Here's what lspci exposes:
>
>  01:05.0 VGA compatible controller: ATI Technologies Inc ATI Radeon XPRESS
> 200M 5955 (PCIE) (prog-if 00 [VGA])
>         Subsystem: Hewlett-Packard Company Unknown device 30a4
>         Flags: bus master, 66MHz, medium devsel, latency 66, IRQ 201
>         Memory at c0000000 (32-bit, prefetchable) [size=256M]
>         I/O ports at 9000 [size=256]
>         Memory at b0100000 (32-bit, non-prefetchable) [size=64K]
>         [virtual] Expansion ROM at b0120000 [disabled] [size=128K]
>         Capabilities: [50] Power Management version 2

that looks pretty standard.

> >
> > > 3) What part of radeon probe would be responsible for adding these?
> > >
> >
> > RADEONMapMMIO() and RADEONMapFB() set up the register and FB maps and
> > RADEONInitMemoryMap() and friends handle chip side stuff for the
> > memory controller, etc.
>
> Ok.  I'll check those out.  I'm having a little difficultly figuring out
> what exactly these mappings mean.   (So, this is just basic stuff..)
>
> Does it indicate where the various components of the graphics card are
> mapped into the Xorg server address space?
>
> (I've read
> http://ftp.x.org/pub/X11R6.9.0/doc/html/DESIGN9.html. It
> has details, but the not a high-level overview.)
>

mapMMIO maps the register access aperture, mapFB maps the framebuffer
access aperture.

>
> > Sorry I can't be more helpful.
> >
> > Alex
>
> As an aside, I figured out why the CPU time jumps to 100%.
>
> RADEONLoadCursorImage calls RADEONWaitForIdleCP and we loop infinitely in
> it.  Since this calls into the kernel DRM module, I turned on debugging.
>
> The X server calls: drmCommandNone(info->drmFD, DRM_RADEON_CP_IDLE);
>
> Which then calls -> [drm:radeon_cp_idle] -> [drm:radeon_do_cp_idle] ->
> [drm:radeon_do_wait_for_idle]
>
> This fails, returns back up the stack, and then the call happens again.
> ...
>
> So, the CPU is spinning waiting for the card to be idle.  I turned on
> debugging so that I can see the status register.
>
> messages:Oct 26 23:53:57 localhost kernel: RBBM_STATUS = 0x80010140
> [Repeated 10 more times.]
> messages:Oct 26 23:54:03 localhost kernel: RBBM_STATUS = 0x88030140
> messages:Oct 26 23:54:03 localhost kernel: RBBM_STATUS = 0x8803613f
> messages:Oct 26 23:54:04 localhost kernel: RBBM_STATUS = 0x88036139
> messages:Oct 26 23:54:04 localhost kernel: RBBM_STATUS = 0x88036133
> messages:Oct 26 23:54:04 localhost kernel: RBBM_STATUS = 0x8803612d
> messages:Oct 26 23:54:04 localhost kernel: RBBM_STATUS = 0x88036127
> messages:Oct 26 23:54:05 localhost kernel: RBBM_STATUS = 0x88036121
> messages:Oct 26 23:54:05 localhost kernel: RBBM_STATUS = 0x8803611b
> messages:Oct 26 23:54:05 localhost kernel: RBBM_STATUS = 0x88036115
> messages:Oct 26 23:54:06 localhost kernel: RBBM_STATUS = 0x8803610f
> messages:Oct 26 23:54:06 localhost kernel: RBBM_STATUS = 0x88036109
> messages:Oct 26 23:54:06 localhost kernel: RBBM_STATUS = 0x88036103
> messages:Oct 26 23:54:06 localhost kernel: RBBM_STATUS = 0x8001c100
> [Repeated forever..]
>  I can see from the include that the 1<<31 bit being set means that the card
> is active.
>
> I found a reference on the net which said that the other bits of the
> register actually tell WHAT part of the card is busy.  However, I can't find
> any place that actually defines what they mean.  What does a status of
> "0x8001c100" mean? (ie, what parts are busy?  That might help me figure out
> what is misconfigured... )
>
> (On the plus side, it actually looks like DRM is reading the proper memory
> for the status register. I can see the number of free FIFO entries
> decreasing...)
>

These are what the bits in the RBBM_STATUS register mean for r300
(XPRESS may differ slightly)

6:0  Available slots in the FIFO
 8    Host Interface active
 9    CP request active
10   FIFO request active
11   Host Interface retry active
12   CP retry active
13   FIFO retry active
14   FIFO pipeline busy
15   Event engine busy
16   CP command stream busy
17   2D engine busy
18   2D portion of render backend busy
20   3D setup engine busy
26   GA engine busy
27   CBA 2D engine busy
31   2D engine busy or 3D engine busy or FIFO not empty or CP busy or
        command stream queue not empty or Ring Buffer not empty


Based on this information (which could be different for XPRESS),
"0x8001c100" means:
host interface is active
FIFO pipeline busy
Event engine busy
CP command stream busy
bit 31 - something is busy

Good luck!

Alex

> Thanks,
> --Phil
>
> FWIW: Here's a full debug state when it gets stuck (These repeat, but the
> CP_RB_WTPR  increases by 6. ):
>
> [drm:drm_ioctl] pid=2392, cmd=0x6444, nr=0x44, dev 0xe200, auth=1
> [drm:radeon_cp_idle]
> [drm:radeon_do_cp_idle]
> [drm:radeon_do_wait_for_fifo] *ERROR* failed!
> radeon_status:
> RBBM_STATUS = 0x8001c100
>  CP_RB_RTPR = 0x000000f7
> CP_RB_WTPR = 0x0000a895
> AIC_CNTL = 0x000007e1
> AIC_STAT = 0x00000000
> AIC_PT_BASE = 0x35428000
> TLB_ADDR = 0x00000000
> TLB_DATA = 0x00000000
> [drm:drm_ioctl] ret = fffffff0
>
>  [drm:drm_ioctl] pid=2392, cmd=0x6444, nr=0x44, dev 0xe200, auth=1
> [drm:radeon_cp_idle]
> [drm:radeon_do_cp_idle]
> [drm:radeon_do_wait_for_fifo] *ERROR* failed!
> radeon_status:
> RBBM_STATUS = 0x8001c100
> CP_RB_RTPR = 0x000000f7
> CP_RB_WTPR = 0x0000a89b
> AIC_CNTL = 0x000007e1
> AIC_STAT = 0x00000000
> AIC_PT_BASE = 0x35428000
> TLB_ADDR = 0x00000000
> TLB_DATA = 0x00000000
> [drm:drm_ioctl] ret = fffffff0
>
> [drm:drm_ioctl] pid=2392, cmd=0x6444, nr=0x44, dev 0xe200, auth=1
> [drm:radeon_cp_idle]
> [drm:radeon_do_cp_idle]
> [drm:radeon_do_wait_for_fifo] *ERROR* failed!
> radeon_status:
> RBBM_STATUS = 0x8001c100
> CP_RB_RTPR = 0x000000f7
> CP_RB_WTPR = 0x0000a8a1
> AIC_CNTL = 0x000007e1
> AIC_STAT = 0x00000000
> AIC_PT_BASE = 0x35428000
> TLB_ADDR = 0x00000000
> TLB_DATA = 0x00000000
> [drm:drm_ioctl] ret = fffffff0
> ....

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to