DMA ring test failure on Radeon HD 8970M

Alex Deucher alexdeucher at gmail.com
Mon Dec 2 16:49:43 PST 2013


On Fri, Nov 29, 2013 at 7:30 PM, Joe Julian <joe at julianfamily.org> wrote:
>
> This MSI laptop has two crossfire connected video processors in it,
> 00:01.0 has a HD 8650G that seems to initialize properly, and at 01:00.0
> an HD 8970M that fails the ring 3 test, "radeon: ring 3 test failed (0xDFCFFBFF)".

It looks like there's a problem with the rom for the dGPU:

[   61.008250] ACPI Error: Field [TEMP] at 524288 exceeds Buffer
[TVGA] size 512000 (bits) (20130927/dsopcode-236)
[   61.008749] ACPI Error: Method parse/execution failed
[\_SB_.PCI0.VGA_.ATRM] (Node ffff880233ad1e30), AE_AML_BUFFER_LIMIT
(20130927/psparse-536)
[   61.009991] failed to evaluate ATRM got AE_AML_BUFFER_LIMIT
[   61.010204] ATOM BIOS: MSI
[   61.010270] [drm] GPU not posted. posting now...
[   61.018737] radeon 0000:01:00.0: limiting VRAM
[   61.018765] radeon 0000:01:00.0: VRAM: 1047552M 0x0000000000000000
- 0x000000FFBFFFFFFF (1047552M used)
[   61.018814] radeon 0000:01:00.0: GTT: 1024M 0x000000FFC0000000 -
0x000000FFFFFFFFFF
[   61.018853] [drm] Detected VRAM RAM=1047552M, BAR=256M

1047552M of vram is obviously wrong.  How much vram is supposed to be
on the card?

Can you send me the output from this patch?

diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index 6a64cca..84a7e26 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -3884,6 +3884,7 @@ static int si_mc_init(struct radeon_device *rdev)
        /* size in MB on si */
        rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL;
        rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+       DRM_INFO("CONFIG_MEMSIZE: 0x%08x\n", RREG32(CONFIG_MEMSIZE));
        rdev->mc.visible_vram_size = rdev->mc.aper_size;
        si_vram_gtt_location(rdev, &rdev->mc);
        radeon_update_bandwidth_info(rdev);


>
> Throwing in some writel and readl tests before even trying the dma test,
> I see that the memory isn't being changed with writel in the first
> place.
>
> ----
>         tmp = 0xDEADBEEF;
>         writel(tmp, ptr);
>         tmp = readl(ptr);
>         if (tmp != 0xDEADBEEF)
>                 DRM_ERROR("radeon: ring %d memory write failed (0x%
> 08X)\n", ring->idx, tmp);
> ----
>
> radeon: ring 3 memory write failed (0xDFCFFBFF)
>
> Looks to me like we're trying to write to a rom address, but I'm a
> complete novice at this so I could be completely off.
>
>
> I'm using kernel 3.13.0-0.rc1.git3
>
> What else could I look at?
>
>
> _______________________________________________
> xorg-driver-ati mailing list
> xorg-driver-ati at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-driver-ati
>


More information about the xorg-driver-ati mailing list