On Tue, Dec 3, 2013 at 8:20 AM, Joe Julian <[email protected]> wrote:
>
>
> Alex Deucher <[email protected]> wrote:
>>On Fri, Nov 29, 2013 at 7:30 PM, Joe Julian <[email protected]>
>>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?
>>>
>>>
>>> _______________________________________________
>>> xorg-driver-ati mailing list
>>> [email protected]
>>> http://lists.x.org/mailman/listinfo/xorg-driver-ati
>>>
>
From 33e26424e1f708e20e275d0a8beef563bd1972ed Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Tue, 3 Dec 2013 09:24:30 -0500
Subject: [PATCH] drm/radeon: fixup bad vram size on SI
Some boards seem to have garbage in the upper
16 bits of the vram size register. Check for
this and clamp the size properly. Fixes
boards reporting bogus amounts of vram.
Signed-off-by: Alex Deucher <[email protected]>
Cc: [email protected]
---
drivers/gpu/drm/radeon/si.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index 6a64cca..a36736d 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -3882,8 +3882,15 @@ static int si_mc_init(struct radeon_device *rdev)
rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0);
rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0);
/* 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;
+ tmp = RREG32(CONFIG_MEMSIZE);
+ /* some boards may have garbage in the upper 16 bits */
+ if (tmp & 0xffff0000) {
+ DRM_INFO("Probable bad vram size: 0x%08x\n", tmp);
+ if (tmp & 0xffff)
+ tmp &= 0xffff;
+ }
+ rdev->mc.mc_vram_size = tmp * 1024ULL * 1024ULL;
+ rdev->mc.real_vram_size = rdev->mc.mc_vram_size;
rdev->mc.visible_vram_size = rdev->mc.aper_size;
si_vram_gtt_location(rdev, &rdev->mc);
radeon_update_bandwidth_info(rdev);
--
1.8.3.1
_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati