All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jochen Rollwagen <joro-2013@t-online.de>
To: dri-devel@lists.freedesktop.org
Subject: possible regression Radeon RV280 (R3xx/R4xx ?) card freeze, re-apply old patch ?
Date: Fri, 08 Nov 2013 08:35:32 +0100	[thread overview]
Message-ID: <527C9444.4010505@t-online.de> (raw)
In-Reply-To: <526A6C61.1030405@t-online.de>


[-- Attachment #1.1: Type: text/plain, Size: 7111 bytes --]

Hello there,

i *think* i found a regression (card/system freeze in AGP mode) that 
must have been in the drm code for quite some time (since the switch to 
kms drivers) and possibly also the potential solution (re-apply an old 
patch from pre-kms-days). Affected seem to be older cards (actually, 
very old cards :-) before R600. I mailed this to the ati driver mailing 
list, but was told that this is a kernel/drm subject now, so i forward 
the mail interchange to this list. Details below, one has to start 
reading from the end upwards to get the chronological order, of course.

Could somebody give me a hint on how to re-apply the old patch or 
whether the info i found is valid ? The next step i would take is to 
insert some diagnostic messages in radeon_vram_location (see below) and 
build a new kernel.

Cheers

Jochen


-------- Original-Nachricht --------
Betreff: 	Fwd: Fwd: Fwd: Re: regression on RV280 card freeze, patch not 
applicable any more
Datum: 	Fri, 25 Oct 2013 15:04:33 +0200
Von: 	Jochen Rollwagen <joro-2013@t-online.de>
An: 	xorg-driver-ati@lists.x.org


more info (and possible solution):

void radeon_vram_location in radeon_device.c says

  * Note: GTT start, end, size should be initialized before calling this
  * function on AGP platform.
  *
  * Note: We don't explicitly enforce VRAM start to be aligned on VRAM size,
  * this shouldn't be a problem as we are using the PCI aperture as a 
reference.
  * Otherwise this would be needed for rv280, all r3xx, and all r4xx, but
  * not IGP.
  *

so does this mean i just have to re-apply the old patch i found ? struct 
radeon_mc in radeon.h contains aper_base as a member which could be 
set/aligned to VRAM size using the code snippet below.

Cheers

Jochen


-------- Original-Nachricht --------
Betreff: 	Fwd: Fwd: Re: regression on RV280 card freeze, patch not 
applicable any more
Datum: 	Fri, 25 Oct 2013 11:31:32 +0200
Von: 	Jochen Rollwagen <joro-2013@t-online.de>
An: 	xorg-driver-ati@lists.x.org


I've done some more researching and found the following:

- There's another follow-on-patch ("Extend the alignment workaround to 
post-rv280 chips as well") to the one indicated below 
(http://cgit.freedesktop.org/~agd5f/xf86-video-ati/commit/?id=b2145aea36bb035bff048366c607b967d70fff49) 
that applies to not only RV280 but "rv280, all r3xx, and all r4xx, but 
not IGP".

- the piece of code affected seems to be (IMHO) in 
drivers/gpu/drm/radeon/: The (Radeon ?) Register 
RADEON_CONFIG_APER_0_BASE is defined in radeon_reg.h but never used in 
the driver:

radeon_reg.h:#define RADEON_CONFIG_APER_0_BASE 0x0100

in r100.c there's

static u32 r100_get_accessible_vram(struct radeon_device *rdev)
{
     u32 aper_size;
     u8 byte;

     aper_size = RREG32(RADEON_CONFIG_APER_SIZE);

     /* Set HDP_APER_CNTL only on cards that are known not to be broken,
      * that is has the 2nd generation multifunction PCI interface
      */
     if (rdev->family == CHIP_RV280 ||
         rdev->family >= CHIP_RV350) {
         WREG32_P(RADEON_HOST_PATH_CNTL, RADEON_HDP_APER_CNTL,
                ~RADEON_HDP_APER_CNTL);
         DRM_INFO("Generation 2 PCI interface, using max accessible 
memory\n");
         return aper_size * 2;
     }

That's the code executed on my machine according to dmesg. Missing (from 
the original patch, not applicable any more because of driver 
reorganization) seems to be

CARD32 aper0_base = INREG(RADEON_CONFIG_APER_0_BASE);
aper0_base &= ~(mem_size - 1);
info->mc_fb_location = (aper0_base >> 16);

The patch that seems to have removed/overridden this code is:

http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg41307.html

According to that patch, it was "booted on PCI r100, PCIE rv370, IGP 
rs400". So IMHO this could be a classical regression for an AGP RV280 
card (like mine) and might explain why PCI mode works. this is 
Additionally corroborated by this post 
(http://comments.gmane.org/gmane.comp.freedesktop.xorg/5429):/
//
//* The above doesn't necessarily work. For example, I've seen machines 
* with 128Mb configured as 2x64Mb apertures. I'm now _//_always_//_ 
setting * RADEON_HOST_PATH_CNTL. OUTREGP (RADEON_HOST_PATH_CNTL, 
RADEON_HDP_APER_CNTL, ~RADEON_HDP_APER_CNTL); (which was previously done 
only on some chip families).

*_I __*/*_/think/_**_/_ this is not correct on all cards as the 
apertures may not be configured correctly (and X doesn't set them up 
neither, if those correspond to the RADEON_CONFIG_APER registers)/_**_/"/_*

Could a Radeon guru confirm this or am i totally lost?

Cheers

Jochen
-------- Original-Nachricht --------
Betreff: 	Fwd: Re: regression on RV280 card freeze, patch not applicable 
any more
Datum: 	Fri, 18 Oct 2013 15:32:18 +0200
Von: 	Jochen Rollwagen <joro-2013@t-online.de>
An: 	xorg-driver-ati@lists.x.org



sorry about that.

Anyway, i checked drivers/gpu/drm/radeon and
drivers/char/agp/uninorth-agp.c and can't seem to find the patch
indicated below. Might it have gone missing :-) ?


Am 08.10.2013 18:41, schrieb Michel Dänzer:
> [ Please always follow up to the mailing list ]
>
> On Die, 2013-10-08 at 14:53 +0200, Jochen Rollwagen wrote:
>> Am 08.10.2013 10:03, schrieb Michel Dänzer:
>>> On Sam, 2013-10-05 at 15:13 +0200, Jochen Rollwagen wrote:
>>>> I’m running a RV280 based Radeon 9200 card (I know, an ancient card)
>>>> in a Mac Mini G4 (powerpc-architecture) with Ubuntu Precise and the
>>>> latest 3.4.64-kernel/ati driver and get lockups when trying to run the
>>>> card in AGP mode (KMS enabled). The lockups happen when resetting the
>>>> card (that’s what I can infer from the oops-screen).
>>> It's the other way around: The kernel radeon driver resets the card to
>>> try and get it running again after a lockup.
>>>
>>>> PCI mode works. After researching I found a old bug that was fixed
>>>> back in 2006 (https://bugs.freedesktop.org/show_bug.cgi?id=6011) that
>>>> looks like the freeze I experience (since PCI mode – which allocates
>>>> 64 MB of memory - works and AGP mode which by default allocates 256 MB
>>>> doesn’t). The card has 64 mb memory.
>>>>
>>>> So the first question is, could this be the problem that causes the
>>>> lockups ?
>>> Not really. The GART and VRAM memory apertures aren't directly related,
>>> and the fix for the bug above should still be incorporated in the
>>> current radeon KMS code.
>>>
>>> Does radeon.agpmode=1 or radeon.agpmode=4 work?
>>>
>> Thank you for your reply. First, none of the agpmodes work, they just
>> take more or less time to lockup the card (1 - slowest, 4 fastest).
>> Secondly, if you write that the fix "should be incorporated in the
>> current code", i'm somewhat lost because it definitely isn't there.
> It's in the kernel now.
>
Well........no. I checked the 3.4.64 kernel sources after my last Mail
and the code isn't in the drivers/gpu/drm/radeon sources. But of course
i might have overlooked something.










[-- Attachment #1.2: Type: text/html, Size: 13078 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

       reply	other threads:[~2013-11-08  8:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <526A6C61.1030405@t-online.de>
2013-11-08  7:35 ` Jochen Rollwagen [this message]
2013-11-11 20:35   ` possible regression Radeon RV280 (R3xx/R4xx ?) card freeze, re-apply old patch ? Alex Deucher
2013-11-13 18:07     ` Jochen Rollwagen
2013-11-14  1:37       ` Michel Dänzer
2013-11-15  7:49         ` Jochen Rollwagen
2013-11-15  8:27           ` Michel Dänzer
2013-11-17 10:02             ` Jochen Rollwagen
2013-11-22 13:21             ` Jochen Rollwagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=527C9444.4010505@t-online.de \
    --to=joro-2013@t-online.de \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.