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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

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

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux