possible regression Radeon RV280 (R3xx/R4xx ?) card freeze, re-apply old patch ?

Jochen Rollwagen joro-2013 at t-online.de
Sun Nov 17 02:02:51 PST 2013


Am 15.11.2013 09:27, schrieb Michel Dänzer:
> 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: 64
[    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 
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 memory
[    2.749035] radeon 0000:00:10.0: RADEON_CONFIG_APER_0_BASE: 
0x9800000098000000 (my message)
[    2.749041] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000 - 
0x000000009FFFFFFF (64M used)
[    2.749046] radeon 0000:00:10.0: GTT in radeon_vram_location: 512M 
0x0000000000000000 - 0x0000000000000000 (my message)
[    2.749053] radeon 0000:00:10.0: GTT: 512M 0x0000000078000000 - 
0x0000000097FFFFFF
[    2.749066] [drm] Detected VRAM RAM=128M, BAR=128M
[    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 
0x0000000002880000).
...
[    2.874349] radeon 0000:00:10.0: WB disabled
[    2.874367] [drm] fence driver on ring 0 use gpu addr 0x78000000 and 
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: 64
[    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 
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 
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 memory
[    2.763583] radeon 0000:00:10.0: RADEON_CONFIG_APER_0_BASE: 
0x9800000098000000 (my message)
[    2.763590] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000 - 
0x000000009FFFFFFF (64M used)
[    2.763595] radeon 0000:00:10.0: GTT in radeon_vram_location: 256M 
0x0000000000000000 - 0x000000000FFFFFFF (my message)
[    2.763697] [drm] Detected VRAM RAM=128M, BAR=128M
[    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 
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 
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 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20131117/2db18569/attachment.html>


More information about the dri-devel mailing list