Subject: Re: Ultra 5 X11
To: Gert Doering <gert@greenie.muc.de>
From: Michael <macallan18@earthlink.net>
List: port-sparc
Date: 02/10/2005 08:25:00
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

>>> How does "accellerated wscons" work?  I thought wscons just presents
>>> a dumb frame buffer device to the X server?  Or can XFree86 figure 
>>> out
>>> "hey, behind this wscons, it's hiding an Mach64 chip, so let's use 
>>> the
>>> XFree86 hardware driver"?
>>
>>  (a) wscons can use acceleration, if the kernel display driver 
>> provides
>>      them. Michael made machfb do so.
>
> How are these acceleration functions accessed?
Via function pointers in struct rasops_info

> Is it an ioctl() on the /dev/ttyE* device?
No.

> Which "client" can/does make use of this acceleration?  XFree86/wscons,
> or "text mode console" output?
None. Currently there's no way to expose these blitter operations to 
userspace clients, although there's some thinking going on about a 
generic wscons framebuffer driver in XFree86 ( to get rid of most 
platform-specific Xservers like Xsun, Xmacppc and so on ) and 
acceleration.

>>  (b) XFree just accesses the card directly (and uses acceleration 
>> too).
>>      The kernel driver only allows it to mmap the frame buffer *and*
>>      the controll registers.
>
> So you would use the "ati" driver in XFree, and not "wscons"?
Exactly.

> (Some background: I've tried to run XFree with the ati driver some 
> months
> ago, and it complained that it couldn't access the card, but I still 
> don't
> understand the puzzle enough to figure out what *should* have 
> happened).
It tries to mmap() the card's memory-mapped PCI resources through 
/dev/ttyE0. This requires the kernel driver to
- - provide its own mmap() function
- - translate these bus addresses to physical addresses ( 
bus_space_mmap() is our friend )
That's one of the things I added to machfb. So without -current machfb 
in your kernel you won't be able to run XFree with the ati driver.

have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iQEVAwUBQgtgrcpnzkX8Yg2nAQKL/Af/fTg37wrmf0F2ry3U5QhMQrlmf4oXDMVS
B8xTlBF1RjSAsb0LRkbsif3/TxoIW7ZFKxXlp7rvzesK0Et+dGbJPEWTGXt2nIho
lS/hX/DI9H70nMhpFx/rigXxEcxvzhJUu5crSsmOhGU1tABembVS+3NUJEoXn0eu
LzeKcbEGr1E4Y9qciQkS4vQiuLK3mZNUxcd3xSXEE6w2YwGT+79HJXDoLTvJHP82
0hrTP6EkvcKtBXSiYzItCh7I3sQSvMcacssd9PpWmWaOy7y9iNobYD64UTIMjxmq
L+TY9ClmMfhfiaZ/neWJKohw0hnWGyVm9wFBpP4HPsf3R1v5JZoo7g==
=zGFX
-----END PGP SIGNATURE-----