Subject: Creator3D device driver running Xsun24 on Ultra 1E
To: None <port-sparc64@netbsd.org>
From: Sung-Won Chung <swchung7@hotmail.com>
List: port-sparc64
Date: 08/20/2002 05:49:22
Thank you, Charles

With your advice, I could run Xsun24 with Creator3D on my Ultra 1E.
I would appreciate if you send me your test codes.

Because I didn't finished hardware cursor support routine,
I rebuilt Xsun24 to use software cursor. Although it seems to be stable,
since acceleration is not used, scroll is much slower than cgsix.

Since I didn't found a simple way to claim 2k pixel accross, as a work 
around,
I set fb_type.fb_width as 2048. Therefore, a subtle remaining problem is
the difference between fb_width and the real screen width - 1280.
As a result, when I moves an xterm to the right end and it reaches
the border of screen, the hidden part of the xterm begins to appear
in the left border of screen.

The driver source code is not clean, since it was written in a day.

   1. syssrc/sys/arch/sparc64/dev/ffb.c
   2. syssrc/sys/arch/sparc64/dev/ffbreg.h
   3. syssrc/sys/arch/sparc64/dev/ffbvar.h
   4. syssrc/sys/arch/sparc64/conf/files.sparc64 (modified)
   5. xsrc/xc/programs/Xserver/cfb/cfbcmap.c (modified)
   6. xsrc/xc/programs/Xserver/hw/sun/sunCursor.c (modified)

I attached a compressed tar file for the source as uuencoded format
at the end of this mail. I wrote this driver with NetBSD 1.6_RC1
(from cvs at 16 Aug, 2002).

Thanks, Sung-Won

>From: Charles Carvalho <carvalho@employees.org>
>To: "Sung-Won Chung" <swchung7@hotmail.com>
>Subject: Re: Questioin about to use Creator3D with X
>Date: Mon, 19 Aug 2002 04:39:13 -0700
>
>
      ......

>>I think this mapping is different from cg8 supported by Xsun24.
>>
>>If I executes Xsun24 by making FBIOGTYPE ioctl() to return FBTYPE_MEMCOLOR 
>>(cg8)
>>and imposing a limit on offset received by ffb_mmap(),
>>then it dies with segment fault after drawing upper screen with dark 
>>color. Is Xsun24 broken ?
>
>No, it just makes assumptions about the cg8 driver that you might not be
>emulating.  What version are you using?  If you're using a 1.6-based 
>version or current, take a look at the tgx and cg14 drivers, which also do 
>cg8 emulation if enabled:
>   /usr/src/sys/dev/sbus/tcx.c
>   /usr/src/sys/arch/sparc/dev/cgfourteen.c
>
>In particular, look at the calculations in cgfourteen.c (when CG14_CG8 is
>defined); I think your driver needs to set the attributes:
>
>fb_type = FBYYPE_MEMCOLOR;
>fb_depth = 32;
>fb_linebytes = 8192;
>fb_height = 1024;
>
>The cg8 driver maps the color framebuffer starting at both 0x40000 
>("START") and 0x04000000 (NOOVERLAY); the extra 256Kbytes between 0 and 
>START is for a mono plane and an enable plane.  Xsun24 uses an offset of 
>zero, so the size that your driver returns needs to be (rowBytes * #lines) 
>+ START to allow the entire visible portion of the framebuffer to be 
>mapped.
>
>>
>>I would appreciate if anyone could let me know
>>
>>   1. Is this frame buffer mapping suitable for X ?
>
>I think so.  I have some test programs I wrote when fiddling with the tcx 
>and cg14 drivers, that may be useful to you.  Let me know if you want me to 
>mail them.
>
>>
>>   2. Is it possible to use X with Creator3D
>>      with not so large modifications to Xsun24 ?
>
>Yes, I think so.  It may be necessary to claim the screen is 2K pixels 
>across, if that's the difference (8Kbytes between pixels on adjacent
>scan lines); but I bet there's support for wasted space between adjacent 
>lines, I just don't know how to tell X that.
>
>>
>>   3. Which is the code for Xsun24 ?
>>
>>     (xsrc/xc/programs/Xserver or xsrc/xfree/xc/programs/Xserver ?)
>
>xsrc/xc/programs/Xserver
>The specific cg8 support is in xsrc/sc/programs/Xserver/hw/sun/sunCfb24.c
>and the generic sun framebuffer support that it uses is in sunInit.c in the 
>same directory.
>

begin 664 ffb.tar.gz
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
J@EA;)]V#"UA<%^!G;S9]3J:`WST%5H;W`@```````."G`+UC[K<`>```
`
end






_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com