From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jochen Rollwagen Subject: Re: possible regression Radeon RV280 (R3xx/R4xx ?) card freeze, re-apply old patch ? Date: Sun, 17 Nov 2013 11:02:51 +0100 Message-ID: <5288944B.7030405@t-online.de> References: <526A6C61.1030405@t-online.de> <527C9444.4010505@t-online.de> <5283BFE9.5060208@t-online.de> <1384393062.18541.25.camel@thor.local> <5285D1FE.7080908@t-online.de> <1384504050.20465.9.camel@thor.local> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0028352406==" Return-path: Received: from mailout09.t-online.de (mailout09.t-online.de [194.25.134.84]) by gabe.freedesktop.org (Postfix) with ESMTP id 5279AFC0CD for ; Sun, 17 Nov 2013 02:03:14 -0800 (PST) In-Reply-To: <1384504050.20465.9.camel@thor.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces@lists.freedesktop.org Errors-To: dri-devel-bounces@lists.freedesktop.org To: =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= Cc: Maling list - DRI developers List-Id: dri-devel@lists.freedesktop.org This is a multi-part message in MIME format. --===============0028352406== Content-Type: multipart/alternative; boundary="------------020801050805000608010302" This is a multi-part message in MIME format. --------------020801050805000608010302 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Am 15.11.2013 09:27, schrieb Michel D=C3=A4nzer: > On Fre, 2013-11-15 at 08:49 +0100, Jochen Rollwagen wrote: >> I think there are two issues here: the first is the missing alignment >> workaround, since i'll be upgrading to 3.4.69 anyway i'll insert some >> diagnostic messages in radeon_device.c and see what happens. > Yes, please do that before speculating more about the problem. > > >> But i'm pretty certain now that this isn't the cause for the lockups. >> They are probably (quite certainly) caused by the dynamic >> binding/unbinding of AGP memory which the Uninorth chipset used in >> 32-bit powermacs obviously doesn't support. > "doesn't support" is too strong; it's working fine on this PowerBook5,8= . > But the older the revision of UniNorth, the more quirks. > >> All it supports seems to be statically allocating a 256 MB contigouous >> non-cacheable AGP aperture and using that (since the chipset doesn't >> do any address mapping via the GART as indicated in the OpenBSD code). > It does address mapping for the GPU, that's the whole point of the GART= . > What UniNorth doesn't do in contrast to most AGP bridges is provide a > linear aperture to the CPU as well. But that shouldn't be an issue per > se. > >> So to get AGP mode working again on those machines one would have to >> disable the dynamic memory stuff. Question: Would that require changes >> in the driver only or also in the DRM ? > It's not really possible with radeon KMS. > > Here are the dmesg output for PCI and AGP mode with kernel 3.4.69: PCI mode: [ 0.852172] Linux agpgart interface v0.103 [ 0.852198] agpgart-uninorth 0000:00:0b.0: Apple UniNorth 2 chipset [ 0.853260] agpgart-uninorth 0000:00:0b.0: configuring for size idx: 6= 4 [ 0.853339] agpgart-uninorth 0000:00:0b.0: AGP aperture is 256M @ 0x0 ... [ 2.542722] [drm] Initialized drm 1.1.0 20060810 ... [ 2.747123] [drm] radeon kernel modesetting enabled. [ 2.747234] radeon 0000:00:10.0: enabling device (0006 -> 0007) [ 2.748887] [drm] initializing kernel modesetting (RV280=20 0x1002:0x5962 0x1002:0x5962). [ 2.748898] [drm] Forcing AGP to PCI mode [ 2.748913] [drm] register mmio base: 0x90000000 [ 2.748916] [drm] register mmio size: 65536 [ 2.748966] radeon 0000:00:10.0: Invalid ROM contents [ 2.748991] radeon 0000:00:10.0: Invalid ROM contents [ 2.749002] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM [ 2.749022] [drm] Using device-tree clock info [ 2.749028] [drm] Generation 2 PCI interface, using max accessible mem= ory [ 2.749035] radeon 0000:00:10.0: RADEON_CONFIG_APER_0_BASE:=20 0x9800000098000000 (my message) [ 2.749041] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000 -=20 0x000000009FFFFFFF (64M used) [ 2.749046] radeon 0000:00:10.0: GTT in radeon_vram_location: 512M=20 0x0000000000000000 - 0x0000000000000000 (my message) [ 2.749053] radeon 0000:00:10.0: GTT: 512M 0x0000000078000000 -=20 0x0000000097FFFFFF [ 2.749066] [drm] Detected VRAM RAM=3D128M, BAR=3D128M [ 2.749070] [drm] RAM width 64bits DDR [ 2.752299] [TTM] Zone kernel: Available graphics memory: 381972 kiB [ 2.752305] [TTM] Zone highmem: Available graphics memory: 513044 kiB [ 2.752309] [TTM] Initializing pool allocator [ 2.752318] [TTM] Initializing DMA pool allocator [ 2.752391] [drm] radeon: 64M of VRAM memory ready [ 2.752396] [drm] radeon: 512M of GTT memory ready. [ 2.752438] [drm] GART: num cpu pages 131072, num gpu pages 131072 [ 2.762558] [drm] radeon: ib pool ready. [ 2.855566] [drm] PCIE GART of 512M enabled (table at=20 0x0000000002880000). ... [ 2.874349] radeon 0000:00:10.0: WB disabled [ 2.874367] [drm] fence driver on ring 0 use gpu addr 0x78000000 and=20 cpu addr 0xc256e000 [ 2.875151] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010)= . [ 2.875158] [drm] Driver supports precise vblank timestamp query. [ 2.875194] [drm] radeon: irq initialized. [ 2.876030] [drm] Loading R200 Microcode [ 2.895607] [drm] radeon: ring at 0x0000000078001000 [ 2.895634] [drm] ring test succeeded in 0 usecs AGP mode 1: [ 0.852235] Linux agpgart interface v0.103 [ 0.852262] agpgart-uninorth 0000:00:0b.0: Apple UniNorth 2 chipset [ 0.853324] agpgart-uninorth 0000:00:0b.0: configuring for size idx: 6= 4 [ 0.853404] agpgart-uninorth 0000:00:0b.0: AGP aperture is 256M @ 0x0 ... [ 2.548750] [drm] Initialized drm 1.1.0 20060810 ... [ 2.751298] [drm] radeon kernel modesetting enabled. [ 2.751414] radeon 0000:00:10.0: enabling device (0006 -> 0007) [ 2.760316] [drm] initializing kernel modesetting (RV280=20 0x1002:0x5962 0x1002:0x5962). [ 2.760667] [drm] register mmio base: 0x90000000 [ 2.760671] [drm] register mmio size: 65536 [ 2.761003] radeon 0000:00:10.0: Invalid ROM contents [ 2.761331] radeon 0000:00:10.0: Invalid ROM contents [ 2.761347] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM [ 2.761368] [drm] Using device-tree clock info [ 2.761398] [drm] AGP mode requested: 1 [ 2.761502] agpgart-uninorth 0000:00:0b.0: putting AGP V2 device into=20 1x mode [ 2.761510] radeon 0000:00:10.0: putting AGP V2 device into 1x mode [ 2.763545] radeon 0000:00:10.0: GTT: 256M 0x00000000 - 0x0FFFFFFF [ 2.763576] [drm] Generation 2 PCI interface, using max accessible mem= ory [ 2.763583] radeon 0000:00:10.0: RADEON_CONFIG_APER_0_BASE:=20 0x9800000098000000 (my message) [ 2.763590] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000 -=20 0x000000009FFFFFFF (64M used) [ 2.763595] radeon 0000:00:10.0: GTT in radeon_vram_location: 256M=20 0x0000000000000000 - 0x000000000FFFFFFF (my message) [ 2.763697] [drm] Detected VRAM RAM=3D128M, BAR=3D128M [ 2.763702] [drm] RAM width 64bits DDR [ 2.766293] [TTM] Zone kernel: Available graphics memory: 381972 kiB [ 2.766299] [TTM] Zone highmem: Available graphics memory: 513044 kiB [ 2.766303] [TTM] Initializing pool allocator [ 2.766313] [TTM] Initializing DMA pool allocator [ 2.766405] [drm] radeon: 64M of VRAM memory ready [ 2.766499] [drm] radeon: 256M of GTT memory ready. [ 2.766655] [drm] radeon: ib pool ready. ... [ 2.876427] [drm] fence driver on ring 0 use gpu addr 0x00000000 and=20 cpu addr 0xf137c000 [ 2.876435] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010)= . [ 2.876439] [drm] Driver supports precise vblank timestamp query. [ 2.876472] [drm] radeon: irq initialized. [ 2.877451] [drm] Loading R200 Microcode [ 2.884498] [drm] radeon: ring at 0x0000000000001000 [ 2.884572] [drm] ring test succeeded in 1 usecs [ 2.885156] [drm] ib test succeeded in 0 usecs i'm not certain whether gpu addr 0 is okay for the fence driver or=20 whether the gtt location is okay (according to the comment in=20 radeon_gtt_location it should be placed before or after VRAM) In PCI=20 mode it ends at 0x0000000097FFFFFF and VRAM starts directly after at=20 0x0000000098000000. In AGP mode GTT and VRAM are completely unrelated. Other than that it looks like the alignment thing isn't the problem. Cheers Jochen --------------020801050805000608010302 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Am 15.11.2013 09:27, schrieb Michel D=C3=A4nzer:
On Fre, 2013-11-15 at 08:49 +0100, Jochen Rollwagen =
wrote:
I think there are two issues here: the first is th=
e missing alignment=20
workaround, since i'll be upgrading to 3.4.69 anyway i'll insert some=20
diagnostic messages in radeon_device.c and see what happens.
Yes, please do that before speculating more about the problem.


But i'm pretty certain now that this isn't the cau=
se for the lockups.
They are probably (quite certainly) caused by the dynamic
binding/unbinding of AGP memory which the Uninorth chipset used in
32-bit powermacs obviously doesn't support.
"doesn't support" is too strong; it's working fine on this PowerBook5,8.
But the older the revision of UniNorth, the more quirks.

All it supports seems to be statically allocating =
a 256 MB contigouous
non-cacheable AGP aperture and using that (since the chipset doesn't
do any address mapping via the GART as indicated in the OpenBSD code).
It does address mapping for the GPU, that's the whole point of the GART.
What UniNorth doesn't do in contrast to most AGP bridges is provide a
linear aperture to the CPU as well. But that shouldn't be an issue per
se.

So to get AGP mode working again on those machines=
 one would have to
disable the dynamic memory stuff. Question: Would that require changes
in the driver only or also in the DRM ?
It's not really possible with radeon KMS.


Here are the dmesg output for PCI and AGP mode with kernel 3.4.69:

PCI mode:
[=C2=A0=C2=A0=C2=A0 0.852172] Linux agpgart interface v0.103
[=C2=A0=C2=A0=C2=A0 0.852198] agpgart-uninorth 0000:00:0b.0: Apple = UniNorth 2 chipset
[=C2=A0=C2=A0=C2=A0 0.853260] agpgart-uninorth 0000:00:0b.0: config= uring for size idx: 64
[=C2=A0=C2=A0=C2=A0 0.853339] agpgart-uninorth 0000:00:0b.0: AGP ap= erture is 256M @ 0x0
...
[=C2=A0=C2=A0=C2=A0 2.542722] [drm] Initialized drm 1.1.0 20060810<= br> ...
[=C2=A0=C2=A0=C2=A0 2.747123] [drm] radeon kernel modesetting enabl= ed.
[=C2=A0=C2=A0=C2=A0 2.747234] radeon 0000:00:10.0: enabling device = (0006 -> 0007)
[=C2=A0=C2=A0=C2=A0 2.748887] [drm] initializing kernel modesetting= (RV280 0x1002:0x5962 0x1002:0x5962).
[=C2=A0=C2=A0=C2=A0 2.748898] [drm] Forcing AGP to PCI mode
[=C2=A0=C2=A0=C2=A0 2.748913] [drm] register mmio base: 0x90000000<= br> [=C2=A0=C2=A0=C2=A0 2.748916] [drm] register mmio size: 65536
[=C2=A0=C2=A0=C2=A0 2.748966] radeon 0000:00:10.0: Invalid ROM cont= ents
[=C2=A0=C2=A0=C2=A0 2.748991] radeon 0000:00:10.0: Invalid ROM cont= ents
[=C2=A0=C2=A0=C2=A0 2.749002] [drm:radeon_get_bios] *ERROR* Unable = to locate a BIOS ROM
[=C2=A0=C2=A0=C2=A0 2.749022] [drm] Using device-tree clock info [=C2=A0=C2=A0=C2=A0 2.749028] [drm] Generation 2 PCI interface, usi= ng max accessible memory
[=C2=A0=C2=A0=C2=A0 2.749035] radeon 0000:00:10.0: RADEON_CONFIG_AP= ER_0_BASE: 0x9800000098000000 (my message)
[=C2=A0=C2=A0=C2=A0 2.749041] radeon 0000:00:10.0: VRAM: 128M 0x000= 0000098000000 - 0x000000009FFFFFFF (64M used)
[=C2=A0=C2=A0=C2=A0 2.749046] radeon 0000:00:10.0: GTT in radeon_vr= am_location: 512M 0x0000000000000000 - 0x0000000000000000 (my message)
[=C2=A0=C2=A0=C2=A0 2.749053] radeon 0000:00:10.0: GTT: 512M 0x0000= 000078000000 - 0x0000000097FFFFFF
[=C2=A0=C2=A0=C2=A0 2.749066] [drm] Detected VRAM RAM=3D128M, BAR=3D= 128M
[=C2=A0=C2=A0=C2=A0 2.749070] [drm] RAM width 64bits DDR
[=C2=A0=C2=A0=C2=A0 2.752299] [TTM] Zone=C2=A0 kernel: Available gr= aphics memory: 381972 kiB
[=C2=A0=C2=A0=C2=A0 2.752305] [TTM] Zone highmem: Available graphic= s memory: 513044 kiB
[=C2=A0=C2=A0=C2=A0 2.752309] [TTM] Initializing pool allocator
[=C2=A0=C2=A0=C2=A0 2.752318] [TTM] Initializing DMA pool allocator=
[=C2=A0=C2=A0=C2=A0 2.752391] [drm] radeon: 64M of VRAM memory read= y
[=C2=A0=C2=A0=C2=A0 2.752396] [drm] radeon: 512M of GTT memory read= y.
[=C2=A0=C2=A0=C2=A0 2.752438] [drm] GART: num cpu pages 131072, num= gpu pages 131072
[=C2=A0=C2=A0=C2=A0 2.762558] [drm] radeon: ib pool ready.
[=C2=A0=C2=A0=C2=A0 2.855566] [drm] PCIE GART of 512M enabled (tabl= e at 0x0000000002880000).
...
[=C2=A0=C2=A0=C2=A0 2.874349] radeon 0000:00:10.0: WB disabled
[=C2=A0=C2=A0=C2=A0 2.874367] [drm] fence driver on ring 0 use gpu = addr 0x78000000 and cpu addr 0xc256e000
[=C2=A0=C2=A0=C2=A0 2.875151] [drm] Supports vblank timestamp cachi= ng Rev 1 (10.10.2010).
[=C2=A0=C2=A0=C2=A0 2.875158] [drm] Driver supports precise vblank = timestamp query.
[=C2=A0=C2=A0=C2=A0 2.875194] [drm] radeon: irq initialized.
[=C2=A0=C2=A0=C2=A0 2.876030] [drm] Loading R200 Microcode
[=C2=A0=C2=A0=C2=A0 2.895607] [drm] radeon: ring at 0x0000000078001= 000
[=C2=A0=C2=A0=C2=A0 2.895634] [drm] ring test succeeded in 0 usecs<= br>
AGP mode 1:
[=C2=A0=C2=A0=C2=A0 0.852235] Linux agpgart interface v0.103
[=C2=A0=C2=A0=C2=A0 0.852262] agpgart-uninorth 0000:00:0b.0: Apple = UniNorth 2 chipset
[=C2=A0=C2=A0=C2=A0 0.853324] agpgart-uninorth 0000:00:0b.0: config= uring for size idx: 64
[=C2=A0=C2=A0=C2=A0 0.853404] agpgart-uninorth 0000:00:0b.0: AGP ap= erture is 256M @ 0x0
...
[=C2=A0=C2=A0=C2=A0 2.548750] [drm] Initialized drm 1.1.0 20060810<= br> ...
[=C2=A0=C2=A0=C2=A0 2.751298] [drm] radeon kernel modesetting enabl= ed.
[=C2=A0=C2=A0=C2=A0 2.751414] radeon 0000:00:10.0: enabling device = (0006 -> 0007)
[=C2=A0=C2=A0=C2=A0 2.760316] [drm] initializing kernel modesetting= (RV280 0x1002:0x5962 0x1002:0x5962).
[=C2=A0=C2=A0=C2=A0 2.760667] [drm] register mmio base: 0x90000000<= br> [=C2=A0=C2=A0=C2=A0 2.760671] [drm] register mmio size: 65536
[=C2=A0=C2=A0=C2=A0 2.761003] radeon 0000:00:10.0: Invalid ROM cont= ents
[=C2=A0=C2=A0=C2=A0 2.761331] radeon 0000:00:10.0: Invalid ROM cont= ents
[=C2=A0=C2=A0=C2=A0 2.761347] [drm:radeon_get_bios] *ERROR* Unable = to locate a BIOS ROM
[=C2=A0=C2=A0=C2=A0 2.761368] [drm] Using device-tree clock info [=C2=A0=C2=A0=C2=A0 2.761398] [drm] AGP mode requested: 1
[=C2=A0=C2=A0=C2=A0 2.761502] agpgart-uninorth 0000:00:0b.0: puttin= g AGP V2 device into 1x mode
[=C2=A0=C2=A0=C2=A0 2.761510] radeon 0000:00:10.0: putting AGP V2 d= evice into 1x mode
[=C2=A0=C2=A0=C2=A0 2.763545] radeon 0000:00:10.0: GTT: 256M 0x0000= 0000 - 0x0FFFFFFF
[=C2=A0=C2=A0=C2=A0 2.763576] [drm] Generation 2 PCI interface, usi= ng max accessible memory
[=C2=A0=C2=A0=C2=A0 2.763583] radeon 0000:00:10.0: RADEON_CONFIG_AP= ER_0_BASE: 0x9800000098000000 (my message)
[=C2=A0=C2=A0=C2=A0 2.763590] radeon 0000:00:10.0: VRAM: 128M 0x000= 0000098000000 - 0x000000009FFFFFFF (64M used)
[=C2=A0=C2=A0=C2=A0 2.763595] radeon 0000:00:10.0: GTT in radeon_vr= am_location: 256M 0x0000000000000000 - 0x000000000FFFFFFF (my message)
[=C2=A0=C2=A0=C2=A0 2.763697] [drm] Detected VRAM RAM=3D128M, BAR=3D= 128M
[=C2=A0=C2=A0=C2=A0 2.763702] [drm] RAM width 64bits DDR
[=C2=A0=C2=A0=C2=A0 2.766293] [TTM] Zone=C2=A0 kernel: Available gr= aphics memory: 381972 kiB
[=C2=A0=C2=A0=C2=A0 2.766299] [TTM] Zone highmem: Available graphic= s memory: 513044 kiB
[=C2=A0=C2=A0=C2=A0 2.766303] [TTM] Initializing pool allocator
[=C2=A0=C2=A0=C2=A0 2.766313] [TTM] Initializing DMA pool allocator=
[=C2=A0=C2=A0=C2=A0 2.766405] [drm] radeon: 64M of VRAM memory read= y
[=C2=A0=C2=A0=C2=A0 2.766499] [drm] radeon: 256M of GTT memory read= y.
[=C2=A0=C2=A0=C2=A0 2.766655] [drm] radeon: ib pool ready.
...
[=C2=A0=C2=A0=C2=A0 2.876427] [drm] fence driver on ring 0 use gpu = addr 0x00000000 and cpu addr 0xf137c000
[=C2=A0=C2=A0=C2=A0 2.876435] [drm] Supports vblank timestamp cachi= ng Rev 1 (10.10.2010).
[=C2=A0=C2=A0=C2=A0 2.876439] [drm] Driver supports precise vblank = timestamp query.
[=C2=A0=C2=A0=C2=A0 2.876472] [drm] radeon: irq initialized.
[=C2=A0=C2=A0=C2=A0 2.877451] [drm] Loading R200 Microcode
[=C2=A0=C2=A0=C2=A0 2.884498] [drm] radeon: ring at 0x0000000000001= 000
[=C2=A0=C2=A0=C2=A0 2.884572] [drm] ring test succeeded in 1 usecs<= br> [=C2=A0=C2=A0=C2=A0 2.885156] [drm] ib test succeeded in 0 usecs
i'm not certain whether gpu addr 0 is okay for the fence driver or whether the gtt location is okay (according to the comment in radeon_gtt_location it should be placed before or after VRAM) In PCI mode it ends at
0x0000000097FFFFFF and VRAM starts directly after at 0x0= 000000098000000. In AGP mode GTT and VRAM are completely unrelated.

Other than that it looks like the alignment thing isn't the problem.

Cheers

Jochen

--------------020801050805000608010302-- --===============0028352406== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============0028352406==--