From: Alex D. <ale...@gm...> - 2006-10-19 03:53:30
|
On 10/18/06, Phillip Ezolt <phi...@gm...> wrote: > Hi All, > I know that this topic has come up many times in the past, but here goes. > I'm one of the poor schleps with a XPRESS 200M in my Compaq laptop. The > open-source driver doesn't support it, and the latest fglrx driver just > hangs upon X startup. The open source driver supports modesetting and basic 2D accel. > > So... I want to try to fix this. From the DRI mail threads/bug reports that > I've read so far, it appears as if the memory controller is radically > different than the other ATI cards. > > There was a post in early September ( > http://marc.theaimsgroup.com/?l=dri-devel&m=115713477422878&w=2 > ), describing how to support this with the opensource driver. > > 1) Get an ATI proprietary driver running on the machine. (DONE: fglrx: > 8.24.8 & FC5) > 2) Dump MC registers/record initialization sequence (Working on it.) > 3) Build a custom Xorg webserver with intialization matching the ATI > proprietary driver (and will allow DRM to be installed) > 4) Fixs bugs & goto 3 > 5) Profit. > > Questions > 1) (I'm a complete Xorg/DRI/Mesa developer newbie.) > > What specific parts of the system have to be changed? Is this a DRM driver > issue? Is it something in Mesa? Is it something in the X.org server? (Even > better, which files should I look at? ) (radeon_display.c from > xf86-video-ati/src looks promising.) You'd probably want to configure the MC in the DDX (xf86-video-ati) although you may have to coordinate with the drm if things like the memory maps change. You shouldn't need to mess with the 3D driver (mesa). The DDX sets up the card, sets modes and handles 2D accel and overlays. The drm provides secure access to the card in the kernel for things like DMA and command submission. The 3D mesa driver translates OpenGL to card specific commands and then feeds the commands to the drm. > > 2) What tools are best to dump the radeon register information? > > I've used radeon_dump to get things after I started up, but it only gives me > the final state of the registers. I stumbled upon another dumper here: " > http://people.freedesktop.org/~glisse/". (I think that this > will track register initialization through-out the startup process). > > Are these the best tools to use? > Unfortunately, I don't know of any reg dumper that handles the MC regs. Some are directly accessed via MMIO, others are indexed and accessed similarly to the radeon PLL regs (or vga regs if you are familiar with vga). Adding the direct access MC regs to radeontool should be pretty easy. you'd basically just add new names and offsets. Most of the MC regs are prefixed with MC in their symbolic names. some of them may already be in radeon_reg.h in the radeon DDX. I can help you fill in any missing ones. There may be some PCIE related regs that you will need to look at as well, but unfortunately, I don't know much about those. I shouldn't be too hard to add support for the indirect MC regs to radeontool or another dumper. The indirect MC regs are accessed via the MC index reg at MMIO offset 0x01F8 and the MC data reg at MMIO offset 0x01FC. You specify the MC reg you want in the MC index reg and then you can read/write to that reg via the MC data reg. bits 5:0 of the MC index reg specify the MC reg. bit 8 is the write enable bit. You should be able to use the INPLL/OUTPLL code in the radeon DDX as a model. the only difference is the PLL write enable bit is 7 rather than 8. The PCIE regs are indexed as well IIRC, but once again, I'm not too familiar with them. > 3) Finally, where is the best place to discuss the ATI development/ask > questions? this list or the xorg list. > > Is there an overview of how radeons are laid out? I've looks through some > of the DRI documentation ( > http://dri.freedesktop.org/wiki/Documentation), but none > seem to reference the radeon specifically. what do you mean by "laid out"? :) most of the configuration is done via MMIO and things like 2D and 3D are done via the command processor which is basically a buffer you feed commands to. > > NOTE: I don't know if this is typical of most graphics cards, but the > "hyper-memory" on the XPress cards seems to be more than just a software > manager. According to ( > http://www.ati.com/technology/HyperMemory_Whitepaper.pdf), > there is also a PCI express auxilary channel that can shuffle things back > and forth from the VPU to memory. As I understand it hypermemory is just a marketing term. with the exception of the IGP chips there is no difference between the regular cards and the hypermemory cards. They just put less vram on the cards to keep costs down and then use pcie gart to use system memory same as a non-hypermemory card. Alex > > Cheers & Thanks, > --Phil > |