<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Am 15.11.2013 09:27, schrieb Michel
      Dänzer:<br>
    </div>
    <blockquote cite="mid:1384504050.20465.9.camel@thor.local"
      type="cite">
      <pre wrap="">On Fre, 2013-11-15 at 08:49 +0100, Jochen Rollwagen wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">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.
</pre>
      </blockquote>
      <pre wrap="">
Yes, please do that before speculating more about the problem.


</pre>
      <blockquote type="cite">
        <pre wrap="">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.
</pre>
      </blockquote>
      <pre wrap="">
"doesn't support" is too strong; it's working fine on this PowerBook5,8.
But the older the revision of UniNorth, the more quirks.

</pre>
      <blockquote type="cite">
        <pre wrap="">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).
</pre>
      </blockquote>
      <pre wrap="">
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.

</pre>
      <blockquote type="cite">
        <pre wrap="">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 ?
</pre>
      </blockquote>
      <pre wrap="">
It's not really possible with radeon KMS.


</pre>
    </blockquote>
    <small>Here are the dmesg output for PCI and AGP mode with kernel
      3.4.69:<br>
      <br>
      PCI mode:<br>
      [    0.852172] Linux agpgart interface v0.103<br>
      [    0.852198] agpgart-uninorth 0000:00:0b.0: Apple UniNorth 2
      chipset<br>
      [    0.853260] agpgart-uninorth 0000:00:0b.0: configuring for size
      idx: 64<br>
      [    0.853339] agpgart-uninorth 0000:00:0b.0: AGP aperture is 256M
      @ 0x0<br>
      ...<br>
      [    2.542722] [drm] Initialized drm 1.1.0 20060810<br>
      ...<br>
      [    2.747123] [drm] radeon kernel modesetting enabled.<br>
      [    2.747234] radeon 0000:00:10.0: enabling device (0006 ->
      0007)<br>
      [    2.748887] [drm] initializing kernel modesetting (RV280
      0x1002:0x5962 0x1002:0x5962).<br>
      [    2.748898] [drm] Forcing AGP to PCI mode<br>
      [    2.748913] [drm] register mmio base: 0x90000000<br>
      [    2.748916] [drm] register mmio size: 65536<br>
      [    2.748966] radeon 0000:00:10.0: Invalid ROM contents<br>
      [    2.748991] radeon 0000:00:10.0: Invalid ROM contents<br>
      [    2.749002] [drm:radeon_get_bios] *ERROR* Unable to locate a
      BIOS ROM<br>
      [    2.749022] [drm] Using device-tree clock info<br>
      [    2.749028] [drm] Generation 2 PCI interface, using max
      accessible memory<br>
      [    2.749035] radeon 0000:00:10.0: RADEON_CONFIG_APER_0_BASE:
      0x9800000098000000 (my message)<br>
      [    2.749041] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000
      - 0x000000009FFFFFFF (64M used)<br>
      [    2.749046] radeon 0000:00:10.0: GTT in radeon_vram_location:
      512M 0x0000000000000000 - 0x0000000000000000 (my message)<br>
      [    2.749053] radeon 0000:00:10.0: GTT: 512M 0x0000000078000000 -
      0x0000000097FFFFFF<br>
      [    2.749066] [drm] Detected VRAM RAM=128M, BAR=128M<br>
      [    2.749070] [drm] RAM width 64bits DDR<br>
      [    2.752299] [TTM] Zone  kernel: Available graphics memory:
      381972 kiB<br>
      [    2.752305] [TTM] Zone highmem: Available graphics memory:
      513044 kiB<br>
      [    2.752309] [TTM] Initializing pool allocator<br>
      [    2.752318] [TTM] Initializing DMA pool allocator<br>
      [    2.752391] [drm] radeon: 64M of VRAM memory ready<br>
      [    2.752396] [drm] radeon: 512M of GTT memory ready.<br>
      [    2.752438] [drm] GART: num cpu pages 131072, num gpu pages
      131072<br>
      [    2.762558] [drm] radeon: ib pool ready.<br>
      [    2.855566] [drm] PCIE GART of 512M enabled (table at
      0x0000000002880000).<br>
      ...<br>
      [    2.874349] radeon 0000:00:10.0: WB disabled<br>
      [    2.874367] [drm] fence driver on ring 0 use gpu addr
      0x78000000 and cpu addr 0xc256e000<br>
      [    2.875151] [drm] Supports vblank timestamp caching Rev 1
      (10.10.2010).<br>
      [    2.875158] [drm] Driver supports precise vblank timestamp
      query.<br>
      [    2.875194] [drm] radeon: irq initialized.<br>
      [    2.876030] [drm] Loading R200 Microcode<br>
      [    2.895607] [drm] radeon: ring at 0x0000000078001000<br>
      [    2.895634] [drm] ring test succeeded in 0 usecs<br>
      <br>
      AGP mode 1:<br>
      [    0.852235] Linux agpgart interface v0.103<br>
      [    0.852262] agpgart-uninorth 0000:00:0b.0: Apple UniNorth 2
      chipset<br>
      [    0.853324] agpgart-uninorth 0000:00:0b.0: configuring for size
      idx: 64<br>
      [    0.853404] agpgart-uninorth 0000:00:0b.0: AGP aperture is 256M
      @ 0x0<br>
      ...<br>
      [    2.548750] [drm] Initialized drm 1.1.0 20060810<br>
      ...<br>
      [    2.751298] [drm] radeon kernel modesetting enabled.<br>
      [    2.751414] radeon 0000:00:10.0: enabling device (0006 ->
      0007)<br>
      [    2.760316] [drm] initializing kernel modesetting (RV280
      0x1002:0x5962 0x1002:0x5962).<br>
      [    2.760667] [drm] register mmio base: 0x90000000<br>
      [    2.760671] [drm] register mmio size: 65536<br>
      [    2.761003] radeon 0000:00:10.0: Invalid ROM contents<br>
      [    2.761331] radeon 0000:00:10.0: Invalid ROM contents<br>
      [    2.761347] [drm:radeon_get_bios] *ERROR* Unable to locate a
      BIOS ROM<br>
      [    2.761368] [drm] Using device-tree clock info<br>
      [    2.761398] [drm] AGP mode requested: 1<br>
      [    2.761502] agpgart-uninorth 0000:00:0b.0: putting AGP V2
      device into 1x mode<br>
      [    2.761510] radeon 0000:00:10.0: putting AGP V2 device into 1x
      mode<br>
      [    2.763545] radeon 0000:00:10.0: GTT: 256M 0x00000000 -
      0x0FFFFFFF<br>
      [    2.763576] [drm] Generation 2 PCI interface, using max
      accessible memory<br>
      [    2.763583] radeon 0000:00:10.0: RADEON_CONFIG_APER_0_BASE:
      0x9800000098000000 (my message)<br>
      [    2.763590] radeon 0000:00:10.0: VRAM: 128M 0x0000000098000000
      - 0x000000009FFFFFFF (64M used)<br>
      [    2.763595] radeon 0000:00:10.0: GTT in radeon_vram_location:
      256M 0x0000000000000000 - 0x000000000FFFFFFF (my message)<br>
      [    2.763697] [drm] Detected VRAM RAM=128M, BAR=128M<br>
      [    2.763702] [drm] RAM width 64bits DDR<br>
      [    2.766293] [TTM] Zone  kernel: Available graphics memory:
      381972 kiB<br>
      [    2.766299] [TTM] Zone highmem: Available graphics memory:
      513044 kiB<br>
      [    2.766303] [TTM] Initializing pool allocator<br>
      [    2.766313] [TTM] Initializing DMA pool allocator<br>
      [    2.766405] [drm] radeon: 64M of VRAM memory ready<br>
      [    2.766499] [drm] radeon: 256M of GTT memory ready.<br>
      [    2.766655] [drm] radeon: ib pool ready.<br>
      ...<br>
      [    2.876427] [drm] fence driver on ring 0 use gpu addr
      0x00000000 and cpu addr 0xf137c000<br>
      [    2.876435] [drm] Supports vblank timestamp caching Rev 1
      (10.10.2010).<br>
      [    2.876439] [drm] Driver supports precise vblank timestamp
      query.<br>
      [    2.876472] [drm] radeon: irq initialized.<br>
      [    2.877451] [drm] Loading R200 Microcode<br>
      [    2.884498] [drm] radeon: ring at 0x0000000000001000<br>
      [    2.884572] [drm] ring test succeeded in 1 usecs<br>
      [    2.885156] [drm] ib test succeeded in 0 usecs<br>
      <br>
      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</small> <small>0x0000000097FFFFFF and VRAM
      starts directly after at </small><small><small><small><big><big>0x0000000098000000</big>.</big>
          <big><big>In AGP mode GTT and VRAM are completely unrelated.</big></big><br>
          <br>
        </small></small>Other than that it looks like the alignment
      thing isn't the problem.<br>
      <br>
      Cheers<br>
      <br>
      Jochen</small><br>
  </body>
</html>