DMA ring test failure on Radeon HD 8970M

Alex Deucher alexdeucher at gmail.com
Wed Dec 4 09:08:59 PST 2013


On Wed, Dec 4, 2013 at 12:41 AM, Joe Julian <joe at julianfamily.org> wrote:
> On Tue, 2013-12-03 at 09:28 -0500, Alex Deucher wrote:
>> On Tue, Dec 3, 2013 at 8:20 AM, Joe Julian <joe at julianfamily.org> wrote:
>> >
>> >
>> > Alex Deucher <alexdeucher at gmail.com> wrote:
>> >>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?
>> >
>> > According to Windows, 2GB:
>> > Name    AMD Radeon(TM) HD8970M
>> > PNP Device ID    PCI\VEN_1002&DEV_6801&SUBSYS_10F11462&REV_00\4&99EBB28&0&0018
>> > Adapter Type    AMD Radeon Graphics Processor (0x6801), Advanced Micro Devices, Inc. compatible
>> > Adapter Description    AMD Radeon(TM) HD8970M
>> > Adapter RAM    (2,147,483,648) bytes
>> > Installed Drivers    aticfx64.dll,aticfx64.dll,aticfx64.dll,aticfx32,aticfx32,aticfx32,atiumd64.dll,atidxx64.dll,atidxx64.dll,atiumdag,atidxx32,atidxx32,atiumdva,atiumd6a.cap,atitmm64.dll
>> > Driver Version    13.200.11.0
>> > INF File    oem17.inf (ati2mtag_R576B section)
>> > Color Planes    Not Available
>> > Color Table Entries    4294967296
>> > Resolution    1920 x 1080 x 60 hertz
>> > Bits/Pixel    32
>> > Memory Address    0xD0000000-0xDFFFFFFF
>> > Memory Address    0xFEAC0000-0xFEAFFFFF
>> > I/O Port    0x0000EF00-0x0000EFFF
>> > IRQ Channel    IRQ 4294967283
>> >>
>> >>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);
>> >>
>> >>
>> > CONFIG_MEMSIZE=0X03800800
>>
>> Does this patch fix the issues?
>>
>> Alex
>>
>>
>> >>>
>> >>> 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?
>> >>>
>> >>>
>
> No, that patch does not completely solve the problem. The memsize is
> right, now, but the dma test still fails the same way.
>
> dmesg: http://paste.fedoraproject.org/58848/86134088
>

Something still seems problematic with the rom.  Does this help?

diff --git a/drivers/gpu/drm/radeon/radeon_bios.c
b/drivers/gpu/drm/radeon/radeon_bios.c
index b3633d9..b2983f2 100644
--- a/drivers/gpu/drm/radeon/radeon_bios.c
+++ b/drivers/gpu/drm/radeon/radeon_bios.c
@@ -173,7 +173,7 @@ static int radeon_atrm_call(acpi_handle
atrm_handle, uint8_t *bios,
 static bool radeon_atrm_get_bios(struct radeon_device *rdev)
 {
        int ret;
-       int size = 256 * 1024;
+       int size = 128 * 1024;
        int i;
        struct pci_dev *pdev = NULL;
        acpi_handle dhandle, atrm_handle;

You might also try 64 rather than 128 if 128 doesn't work.

Alex


More information about the xorg-driver-ati mailing list