Does drm/dri currently work on PPC?
matt
sendtomatt at gmail.com
Sat Oct 27 05:09:08 UTC 2012
On 10/26/12 05:15, Justin Hibbits wrote:
> On Fri, Oct 26, 2012 at 12:55 AM, matt <sendtomatt at gmail.com
> <mailto:sendtomatt at gmail.com>> wrote:
>
>
> > It was working without DRM "out-of-the-box". Of course I've made
> a mess
> > trying different versions of both Xorg and the radeon driver.
> I'm in the
> > process of getting back to the working config so I can be sure
> any test
> > changes work/don't work.
> >
> > OpenBSD's mpi@ apparently did a lot recently over there getting
> DRM to
> > work on the G4 mini. We already had about half of the commits I
> see at
> > freshbsd, in one way or another...Our rmb/wmb() I think has had PPC
> > barriers since earlier this year? He did #define __BIG_ENDIAN, which
> > apparently was a big deal for the drm code (it's ifdef'd in a couple
> > places), not sure if we are already doing that.
> > If someone has a G4 radeon mini they could test to see if drm
> works for
> > them or not, to rule out AGP issues (I guess they are PCI?).
> >
> > I'm not sure how the OpenBSD attachment process works vs ours,
> some of
> > the other commits of note were related to passing the BAR and memory
> > regions from the vgapci to drm. When I kldload drm after
> compiling it,
> > it doesn't do anything...but if I kldload radeon.ko, it
> recognizes agp
> > memory and being related to vgapci at the correct pci
> address...I'm not
> > sure if we "are there" or not. I also didn't have DRM on OpenBSD
> either.
> >
> > I think if radeon had drm on *any* big-endian platform it should
> rule
> > out endian issues in drm or radeon. Not sure if this is the case, I
> > guess macppc would be the most likely.
> >
> > Matt
> So I removed WITH_NEW_XORG, deinstalled a ton of ports, and
> reinstalled
> Xorg. I rebuild drm with __BIG_ENDIAN defined (not sure if this
> matters). I previously put a lot of WERROR= and NO_WERROR= into
> various
> drm makefiles to get gcc to shut up about unused return values. X
> -configure worked, and the xorg log indicates the drm device was
> successfully opened and I have drm on PPC.
> mesa-demos is marked broken for PPC, haven't tried glxinfo or
> glxgears yet.
>
> The good news is it works!
> The bad news:
> -Cannot switch back to syscons, screen gets corrupted then the system
> hard locks
> -WITH_NEW_XORG breaks it somehow
>
> Thanks to mpi at openbsd.org <mailto:mpi at openbsd.org>, Justin & Nathan!
>
> Matt
>
>
> That's fantastic! If I'm able to get my current project done (PMU
> sleep/speed change on PowerBook) I'll definitely give that a shot this
> weekend.
>
> One thing that may help with switching back to syscons is, NetBSD has
> a radeonfb driver for console framebuffer.Earlier in the week I
> briefly looked at that, and it may not be too difficult to port it to
> FreeBSD and integrate with syscons. Only major hurdle for that would
> be dealing with ofwfb as well. Just some more tinkering :)
>
> Excellent news!
>
> - Justin
New development, I get random hangs...I'm going to try disabling EXA for
XAA. Backtrace during hang:
#0 0x41fd4b28 in ioctl () from /lib/libc.so.7
#1 0x420c0a7c in drmIoctl () from /usr/local/lib/libdrm.so.2
#2 0x420c0bdc in drmCommandNone () from /usr/local/lib/libdrm.so.2
#3 0x421a03e8 in RADEONWaitForIdleCP ()
from /usr/local/lib/xorg/modules/drivers/radeon_drv.so
#4 0x421feef8 in RADEONSyncCP ()
from /usr/local/lib/xorg/modules/drivers/radeon_drv.so
#5 0x42295748 in exaWaitSync () from /usr/local/lib/xorg/modules/libexa.so
#6 0x42296d40 in ExaDoPrepareAccess ()
from /usr/local/lib/xorg/modules/libexa.so
#7 0x42297e90 in exaPrepareAccessReg_classic ()
from /usr/local/lib/xorg/modules/libexa.so
#8 0x42296f14 in exaPrepareAccess ()
from /usr/local/lib/xorg/modules/libexa.so
#9 0x422a2c78 in ExaCheckImageGlyphBlt ()
from /usr/local/lib/xorg/modules/libexa.so
#10 0x01976a6c in miImageText8 ()
#11 0x018f2f0c in DamageSetup ()
#12 0x018337ec in doImageText ()
#13 0x01833984 in ImageText ()
#14 0x0182cb48 in ProcImageText8 ()
#15 0x0182efe8 in Dispatch ()
#16 0x01823188 in main ()
Is this 8bit DRM crashing it because unlike 16 and 32 it's not byteswapped?
BTW, mesa-demos compiles if you insert a copy of byteswap.h (I got mine
from arnold.se's article about bitcoin, of all things) and you define
the powerpc write barrier.
Matt
More information about the freebsd-ppc
mailing list