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