From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?C=E9dric_Cano?= Subject: [PATCH] Big endian support for RV730 Date: Fri, 11 Feb 2011 10:52:14 +0100 Message-ID: <4D5506CE.1080501@ic.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from smtp-out04.msg.oleane.net (smtp-out04.msg.oleane.net [62.161.7.2]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E6A69E70A for ; Fri, 11 Feb 2011 02:32:57 -0800 (PST) Received: from smtp07.msg.oleane.net (smtp07.mail.priv [172.17.20.116]) by smtp-out04.msg.oleane.net with ESMTP id p1BACZtS016473 for ; Fri, 11 Feb 2011 11:12:36 +0100 Received: from ic.fr (iconcept-gw.rain.fr [194.2.96.216]) by smtp07.msg.oleane.net (MTA) with ESMTP id p1B9qF1l014944 for ; Fri, 11 Feb 2011 10:52:16 +0100 Received: from [192.168.1.33] (unknown [192.168.1.33]) by ic.fr (Postfix) with ESMTPA id D73AE22B61 for ; Fri, 11 Feb 2011 10:52:14 +0100 (CET) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Hi Here are a couple of patches that enable support for RV730 on big endian architectures. The following items will work : * KMS - correct color in framebuffer - interrupts - kms blit - power management * DDX - 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 2.6.35.6 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 ? Regards, Cedric Cano