[PATCH] Big endian support for RV730

Cédric Cano ccano at interfaceconcept.com
Fri Feb 11 01:52:14 PST 2011


Here are a couple of patches that enable support for RV730 on big endian architectures. The following items will work :
   - correct color in framebuffer
   - interrupts
   - kms blit
   - power management
   - kms enabled
   - exa
   - video textures
   - hardware cursor

For the BE modifications, the AMD Linux Engineering team advised me to focus on :
- make sure all the atombios data table accesses are endian safe
- set the display controller swappers properly(http://lists.freedesktop.org/archives/dri-devel/2011-January/007486.html)
- make sure the appropriate endian swapper is enabled in the texture and vertex fetch constants (see SQ_TEX_RESOURCE_WORD* and SQ_VTX_RESOURCE_WORD* regs)
- make sure the shaders are stored in LE order
- make sure shader constant buffers are stored in LE order
- endian swap IH (interrupt handler) packets
- endian swap the CP command buffers
- endian swap WB (write back) buffers

That's what I tried to do and so far, I have KMS and DDX (with EXA) drivers working. Drivers have been tested on a MPC8640 custom design, with a custom graphics board based on E4690 (RV730). I'm using a custom linux distribution with Xorg 7.6 (xf86-video-ati 6.13.2). The latest kernel available for my board is so I haven't tested with upstream kernel.

I'd also like to test more the ddx driver in order to check the EXA functions do a correct rendering. Is there a driver framework testing, or some kind of unit test you, ddx driver writers, are using ?

Cedric Cano

More information about the dri-devel mailing list