1svgalib.chips(7) Svgalib User Manual svgalib.chips(7)
2
3
4
6 svgalib.chips - Information for Chips and Technologies Users
7
8
10 Information for Chips and Technologies Users
11 David Bateman <dbateman@eng.uts.edu.au>
12 23nd May 1997
13
14 0. Introduction
15 1. "libvga.config" options
16 2. Unsupported Chips and Technologies chipsets
17 3. Known bugs
18
19
21 This is the really only my first attempt to get a working fully fea‐
22 tured driver for the Chips and Technologies chipset to work with
23 svgalib(7). As such the only machine that I know it will work on is my
24 own. If you use this software then at this point I'm still very inter‐
25 ested in hearing from you by e-mail. Include full details of your
26 chipset, amount of videoram and whether you have a VL-Bus or PCI bus
27 machine.
28
29 This server was written using the svgalib(7) patch from Sergio and
30 Angelo Masci as a starting point. This version of the code resembled
31 the XFree server code that was used up to XFree 3.1.2. As such it was
32 incapable of programming the clocks, using linear addressing, Hi-Color,
33 True-Color modes or the hardware acceleration. All of these features
34 have since been added to the code. In addition support for the 65525,
35 65535, 65546, 65548, 65550 and 65554 have been included. The 64200 and
36 64300 chips are unsupported, however these chips are very similar to
37 the 6554x chips which are supported.
38
39 At this point this code is only confirmed to work correctly on a 65545
40 VL-Bus machine. However as much of the code was stolen from my experi‐
41 ences with writing code for XFree I hope not to have too many problems
42 with other machines. However if you run this code on a 65545/48 PCI
43 machine or a 65550/54 machine then I am particularly interested in
44 hearing of any success or failure stories.
45
46
48 The first thing to note is that the option parser for svgalib(7) is not
49 very robust. Hence if you make some typing mistakes, you can have some
50 very strange effects. I've set out below the libvga.config(5) options
51 that are of particular interest to Chips and Technologies users. Nor‐
52 mally this configuration file can be found at /etc/vga/libvga.config.
53
54
55 HorizSync MIN MAX
56 Often LCD panels has very different specifications for the hori‐
57 zontal sync than CRT's do. Hence often you'll need this option,
58 particularly if you are using the XFree like modelines described
59 below. The two floating point numbers specified will set the
60 minimum and maximum allowed horizontal sync in kHz.
61
62
63 VertRefresh MIN MAX
64 Similar to the above, but this sets the LCD or CRT's vertical
65 refresh rate in Hz.
66
67
68 modeline 640x480 20.00 640 688 704 776 480 480 481 486
69 This option allows you to specify XFree like modelines to use in
70 preference to the in built modelines. Often LCD panels will need
71 very different pixel clocks and timings than CRT's. Hence this
72 option allows you to specify these. Note that the LCD panel tim‐
73 ings are related to the panel size and not the mode size.
74 Therefore by default the BIOS setting already uploaded into the
75 registers are used by default. See the "UseModeline" option
76 below if you wish to override these.
77
78
79 chipset C&T 5 1024
80 These option allows the user to specify the chipset to use and
81 the amount of installed memory in kBytes. Currently supported
82 chipsets are
83
84 0 65520
85 1 65525
86 2 65530
87 3 65535
88 4 65540
89 5 65545
90 6 65546
91 7 65548
92 8 65550
93 9 65554
94
95
96 TextClockFreq 25.175
97 One major difference between this code and the previously avail‐
98 able support for the Chips and Technologies chipsets is that it
99 supports the use of programmable clocks. Because of the way that
100 the Chips and Technologies chips program the VCO from the regis‐
101 ters, there is no way to be sure to recover the previously pro‐
102 grammed clock value. Hence the driver assumes that the console
103 clock is 25.175MHz. This will be wrong for many machines. How‐
104 ever I have supplied this option to use a different value that
105 might be more suitable for your machine.
106
107
108 nolinear
109 This option disables the use of the linear framebuffer. This
110 might be useful for machines that have broken linear frame‐
111 buffers. In lar the linear framebuffer doesn't seem to work with
112 the achines.
113
114
115 linear Allow, but don't enforce the use of the linear framebuffer. As
116 this is the default anyway, I don't see that this option is much
117 use.
118
119
120 setuplinear 0xC0000000
121 For VL-Bus machines I expect that the linear framebuffer start‐
122 ing address will be setup correctly. However to get the starting
123 address for PCI machines requires access to the MEMBASE register
124 in the PCI address space. Code to do this doesn't currently
125 exist with svgalib(7), and so I've taken the easy option of just
126 testing a few known PCI starting addresses. For now these are
127 just 0xFE000000, 0xFD000000, 0x41000000 and 0xC0000000. If you
128 have a different starting address then the linear framebuffer
129 will be unusable. You might like to report your starting address
130 to me so that I can include it in the probing code, but till
131 then this option can be used to set up the correct address. This
132 option just forces the given address to be the only one probed.
133 It doesn't force the linear framebuffer to be used.
134
135
136 LCDPanelSize 800 600
137 For some machines the LCD panel size is incorrectly probed from
138 the registers. This option forces the LCD panel size to be as
139 specified. If you have a black band down one side of your LCD
140 display you might very well need this option. Also if you are
141 using the option "fix_panel_size" in XFree then this option has
142 a similar effect. This option can be used in conjunction with
143 the option "UseModeline" to program all the panel timings using
144 the modeline values. Two machines that are known to need this
145 option are the HP Omnibook 5000CTS and the NEC Versa 4080
146 800x600 TFT machines.
147
148
149 UseModeline
150 The flat panel timings are related to the panel size and not the
151 size of the mode specified. For this reason the default behav‐
152 iour of the svgalib(7) is to use the panel timings already
153 installed in the chip. The user can force the panel timings to
154 be recalculated from the modeline with this option. However the
155 panel size will still be probed. Two machines that are known to
156 need this option are the HP Omnibook 5000CTS and the Prostar
157 8200. You are advised to check the README.chips that come with
158 XFree for more details.
159
160
161 NoBitBlt
162 This option disables the use of H/W acceleration. As far as I
163 know the only thing that currently uses the H/W acceleration is
164 libvgagl, so this might not be a problem anyway. However if you
165 see corruption of the graphics on the screen try this option and
166 see if it goes away.
167
168
169 Use18BitBus
170 For 24bpp on TFT screens, the server assumes that a 24bit bus is
171 being used. This can result in a reddish tint to 24bpp mode for
172 machines that actually have a 18 bit bus. This option, selects
173 an 18 bit TFT bus. Note that using this option with a 24 bit bus
174 machine will similarly discolour the screen. For other depths
175 this option has no effect.
176
177
178 Center ENABLE/DISABLE or Stretch ENABLE/DISABLE
179 The default behaviour of svgalib(7) is to leave the stretching
180 and centring registers completely alone. However for some
181 machines this might result in poorly placed modes, or modes that
182 don't fill the whole screen. These two options can be used to
183 centre and stretch the mode on the screen. Note that for
184 instance a Center DISABLE might follow a Center ENABLE in the
185 config file. Only the last option takes effect.
186
187
189 The 64200 and 64300 chips are unsupported. However by specifying the
190 chipset in your libvga.config as either a
191
192
193 chipset C&T 3 2048
194 Use 65535 for a 64200 assuming 2M of video ram, or
195
196 chipset C&T 7 2048
197 Use 65548 for a 64300 assuming 2Mb of video ram
198
199 then svgalib can be made to give limited support to these chipsets.
200 Note that the paged addressing mode of the 65548 chip and earlier can
201 only address upto 1Mb of video ram. If the additional memory is needed
202 then linear addressing must be used!! Note that support of the 64xxx
203 chips has not been tested at all, and the above is just a suggestion
204 that I believe will work.
205
206
208 One persistent and annoying bug is that the text mode stretching on LCD
209 displays is not always restored correctly for 65550 and 65554 machines.
210 This is to do with the manner in which the extended registers are
211 restored and what is being done with the synchronous reset while the
212 registers are restored. As I don't have a 65550 or 65554 machine of my
213 own on which to test this code, I have been unable to fix this problem.
214 In most circumstances an LCD-CRT switch will restore the LCD stretching
215 to the desired state.
216
217 David.
218
219
221 /etc/vga/libvga.config
222
223
225 svgalib(7), libvga.config(5).
226
227
229 of the driver and this documentation is David Bateman <dbate‐
230 man@eng.uts.edu.au>. However, it was slightly reformatted by Michael
231 Weller <eowmob@exp-math.uni-essen.de>.
232
233
234
235Svgalib (>= 1.2.11) 31 July 1997 svgalib.chips(7)