Linux 2.6.39-rc3
Ingo Molnar
mingo at elte.hu
Thu Apr 14 02:11:37 PDT 2011
* Joerg Roedel <joro at 8bytes.org> wrote:
> On Wed, Apr 13, 2011 at 06:58:46PM -0700, H. Peter Anvin wrote:
> > On 04/13/2011 12:14 PM, Yinghai Lu wrote:
> > >
> > > so looks bios program wrong address to the radon card?
> > >
> >
> > Okay, staring at this, it definitely seems toxic to overlay the GART
> > over memory areas reserved by the BIOS. If I were to guess, I would say
> > that the problem here seems to be that the kernel thinks it is
> > overlaying 64 MiB of memory, but the actual GART is in fact 512 MiB in
> > size -- 131072 CPU pages -- which now overlaps the BIOS reserved areas.
> >
> > Alex D., could you comment on the "num cpu pages" bit?
>
> Okay, I tried the debug-patch from Yinghai (posted to the bugzilla):
>
> --- a/drivers/gpu/drm/radeon/radeon_device.c
> +++ b/drivers/gpu/drm/radeon/radeon_device.c
> @@ -325,6 +325,8 @@ void radeon_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc)
> mc->gtt_size = size_bf;
> }
> mc->gtt_start = (mc->vram_start & ~mc->gtt_base_align) - mc->gtt_size;
> + if (mc->gtt_start == 0xa0000000)
> + mc->gtt_start = 0x80000000;
> } else {
> if (mc->gtt_size > size_af) {
> dev_warn(rdev->dev, "limiting GTT\n");
>
> And this makes a difference, with this change on-top of -rc3 the box boots
> fine. So there seems to be some dependency between the GART base and the GTT
> base even when they are in different address spaces.
>
> Alex, can you comment on this?
I'd strongly suggest we revert back to the old and proven allocation order, as
long as it results in valid layouts. Even if we figure out this particular
GART/GTT assumption there might be a dozen others in other types of hardware.
Thanks,
Ingo
More information about the dri-devel
mailing list