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