drm/radeon: "ring test failed" on PA-RISC Linux

Alex Ivanov gnidorah at p0n4ik.tk
Mon Sep 9 09:44:49 PDT 2013


Folks,

We (people at linux-parisc @ vger.kernel.org mail list) are trying to make
native video options of the latest PA-RISC servers and workstations
(these are ATIs, most of which are based on R100/R300/R420 chips) work
correctly on this platform (big endian pa-risc).

However, we hadn't much success. DRM fails every time with 
"ring test failed" for both AGP & PCI.

Maybe you would give us some suggestions that we could check?

Topic started here:
http://www.spinics.net/lists/linux-parisc/msg04908.html
And continued there:
http://www.spinics.net/lists/linux-parisc/msg04995.html
http://www.spinics.net/lists/linux-parisc/msg05006.html

Problems we've already resolved without any signs of progress:
- Checked the successful microcode load
"parisc AGP GART code writes IOMMU entries in the wrong byte order and
 doesn't add the coherency information SBA code adds"
"our PCI BAR setup doesn't really work very well together with the Radeon
 DRM address setup. DRM will generate addresses, which are even outside
 of the connected LBA"

Things planned for a check:
"The drivers/video/aty uses
an endian config bit DRM doesn't use, but I haven't tested whether
this makes a difference and how it is connected to the overall picture."

"The Rage128 product revealed a weakness in some motherboard 
chipsets in that there is no mechanism to guarantee
that data written by the CPU to memory is actually in a readable 
state before the Graphics Controller receives an
update to its copy of the Write Pointer. In an effort to alleviate this 
problem, we‟ve introduced a mechanism into the
Graphics Controller that will delay the actual write to the Write Pointer 
for some programmable amount of time, in
order to give the chipset time to flush its internal write buffers to 
memory.
There are two register fields that control this mechanism: 
PRE_WRITE_TIMER and PRE_WRITE_LIMIT.

In the radeon DRM codebase I didn't found anyone using/setting
those registers. Maybe PA-RISC has some problem here?..."

Thanks.

-------- Пересылаемое сообщение  --------
04.08.2013, 15:06, "Alex Ivanov" <gnidorah at p0n4ik.tk>:

11.07.2013, 23:48, "Helge Deller" <deller at gmx.de>:

>  adding linux parisc mailing list...:
>
>  On 07/11/2013 09:46 PM, Helge Deller wrote:
>>   On 07/10/2013 11:29 PM, Alex Ivanov wrote:
>>>   11.07.2013, 01:14, "Matt Turner" <mattst88 at gmail.com>:
>>>>   On Wed, Jul 10, 2013 at 1:19 PM, Alex Ivanov <gnidorah at p0n4ik.tk> wrote:
>>>>>    Thank you so much! Your guess looks to be right. After applying of your
>>>>>    patch there was no more KP and X just worked.
>>>>   Nice! Does DRI work?
>>>   Not on my side. Plus i can't visually jump over 8bit depth, although Xorg
>>>   states 24bit in it's log.
>>>   As for DRI, i'm experiencing
>>>   "ring test failed (scratch(0x15E4)=0xCAFEDEAD)" with a firegl x3.
>>   FWIW, I'm seeing the same failure on my FireGL X1:
>>   80:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Radeon R300 NG [FireGL X1] (rev 80)
>>
>>   [drm] radeon: irq initialized.
>>   [drm] Loading R300 Microcode
>>   [drm] radeon: ring at 0x0000000060001000
>>   [drm:r100_ring_test] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD)
>>   [drm:r100_cp_init] *ERROR* radeon: cp isn't working (-22).
>>   radeon 0000:80:00.0: failed initializing CP (-22).
>>   radeon 0000:80:00.0: Disabling GPU acceleration
>>   [drm:r100_cp_fini] *ERROR* Wait for CP idle timeout, shutting down CP.
>>   [drm] radeon: cp finalized
>>   [drm] radeon: cp finalized

I still have no clue why this happens. Broken SBA IOMMU / DRM code? Missing syncing primitives?
Should we forward this to dri-devel mail list?
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
-------- Завершение пересылаемого сообщения --------


More information about the dri-devel mailing list