1 =======================================================
2 VIA Integration Graphic Chip Console Framebuffer Driver
3 =======================================================
7 The console framebuffer driver is for graphics chips of
9 (CLE266, PM800 / CN400 / CN300,
10 P4M800CE / P4M800Pro / CN700 / VN800,
11 CX700 / VX700, K8M890, P4M890,
12 CN896 / P4M900, VX800, VX855)
21 640x480(60, 75, 85, 100, 120 Hz), 720x480(60 Hz),
22 720x576(60 Hz), 800x600(60, 75, 85, 100, 120 Hz),
23 848x480(60 Hz), 856x480(60 Hz), 1024x512(60 Hz),
24 1024x768(60, 75, 85, 100 Hz), 1152x864(75 Hz),
25 1280x768(60 Hz), 1280x960(60 Hz), 1280x1024(60, 75, 85 Hz),
26 1440x1050(60 Hz), 1600x1200(60, 75 Hz), 1280x720(60 Hz),
27 1920x1080(60 Hz), 1400x1050(60 Hz), 800x480(60 Hz)
29 color depth: 8 bpp, 16 bpp, 32 bpp supports.
31 Support 2D hardware accelerator.
33 Using the viafb module
34 ----------------------
35 Start viafb with default settings::
39 Start viafb with user options::
41 #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60
42 viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1
43 viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60
53 - 8, 16, 32 (default:32)
56 - 60, 75, 85, 100, 120 (default:60)
59 - 0 : expansion (default)
63 0 : LCD panel with LSB data format input (default)
64 1 : LCD panel with MSB data format input
67 - 0 : Resolution: 640x480, Channel: single, Dithering: Enable
68 - 1 : Resolution: 800x600, Channel: single, Dithering: Enable
69 - 2 : Resolution: 1024x768, Channel: single, Dithering: Enable (default)
70 - 3 : Resolution: 1280x768, Channel: single, Dithering: Enable
71 - 4 : Resolution: 1280x1024, Channel: dual, Dithering: Enable
72 - 5 : Resolution: 1400x1050, Channel: dual, Dithering: Enable
73 - 6 : Resolution: 1600x1200, Channel: dual, Dithering: Enable
75 - 8 : Resolution: 800x480, Channel: single, Dithering: Enable
76 - 9 : Resolution: 1024x768, Channel: dual, Dithering: Enable
77 - 10: Resolution: 1024x768, Channel: single, Dithering: Disable
78 - 11: Resolution: 1024x768, Channel: dual, Dithering: Disable
79 - 12: Resolution: 1280x768, Channel: single, Dithering: Disable
80 - 13: Resolution: 1280x1024, Channel: dual, Dithering: Disable
81 - 14: Resolution: 1400x1050, Channel: dual, Dithering: Disable
82 - 15: Resolution: 1600x1200, Channel: dual, Dithering: Disable
83 - 16: Resolution: 1366x768, Channel: single, Dithering: Disable
84 - 17: Resolution: 1024x600, Channel: single, Dithering: Enable
85 - 18: Resolution: 1280x768, Channel: dual, Dithering: Enable
86 - 19: Resolution: 1280x800, Channel: single, Dithering: Enable
89 - 0 : No 2D Hardware Acceleration
90 - 1 : 2D Hardware Acceleration (default)
93 - 0 : viafb_SAMM_ON disable (default)
94 - 1 : viafb_SAMM_ON enable
96 viafb_mode1: (secondary display device)
102 viafb_bpp1: (secondary display device)
103 - 8, 16, 32 (default:32)
105 viafb_refresh1: (secondary display device)
106 - 60, 75, 85, 100, 120 (default:60)
109 This option is used to specify active devices.(CRT, DVI, CRT+LCD...)
110 DVI stands for DVI or HDMI, E.g., If you want to enable HDMI,
111 set viafb_active_dev=DVI. In SAMM case, the previous of
112 viafb_active_dev is primary device, and the following is
117 To enable one device, such as DVI only, we can use::
119 modprobe viafb viafb_active_dev=DVI
121 To enable two devices, such as CRT+DVI::
123 modprobe viafb viafb_active_dev=CRT+DVI;
125 For DuoView case, we can use::
127 modprobe viafb viafb_active_dev=CRT+DVI
131 modprobe viafb viafb_active_dev=DVI+CRT...
135 If CRT is primary and DVI is secondary, we should use::
137 modprobe viafb viafb_active_dev=CRT+DVI viafb_SAMM_ON=1...
139 If DVI is primary and CRT is secondary, we should use::
141 modprobe viafb viafb_active_dev=DVI+CRT viafb_SAMM_ON=1...
143 viafb_display_hardware_layout:
144 This option is used to specify display hardware layout for CX700 chip.
148 - 3 : LCD+DVI (default)
149 - 4 : LCD1+LCD2 (internal + internal)
150 - 16: LCD1+ExternalLCD2 (internal + external)
153 This option is used to set second device memory size(MB) in SAMM case.
154 The minimal size is 16.
156 viafb_platform_epia_dvi:
157 This option is used to enable DVI on EPIA - M
159 - 0 : No DVI on EPIA - M (default)
160 - 1 : DVI on EPIA - M
163 When using 24 - Bit Bus Width Digital Interface,
164 this option should be set.
166 - 12: 12-Bit LVDS or 12-Bit TMDS (default)
167 - 24: 24-Bit LVDS or 24-Bit TMDS
169 viafb_device_lcd_dualedge:
170 When using Dual Edge Panel, this option should be set.
172 - 0 : No Dual Edge Panel (default)
173 - 1 : Dual Edge Panel
176 This option is used to specify LCD output port,
177 available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH" "DFP_LOW".
179 for external LCD + external DVI on CX700(External LCD is on DVP0),
182 modprobe viafb viafb_lcd_port=DVP0...
185 1. CRT may not display properly for DuoView CRT & DVI display at
186 the "640x480" PAL mode with DVI overscan enabled.
187 2. SAMM stands for single adapter multi monitors. It is different from
188 multi-head since SAMM support multi monitor at driver layers, thus fbcon
189 layer doesn't even know about it; SAMM's second screen doesn't have a
190 device node file, thus a user mode application can't access it directly.
191 When SAMM is enabled, viafb_mode and viafb_mode1, viafb_bpp and
192 viafb_bpp1, viafb_refresh and viafb_refresh1 can be different.
193 3. When console is depending on viafbinfo1, dynamically change resolution
194 and bpp, need to call VIAFB specified ioctl interface VIAFB_SET_DEVICE
195 instead of calling common ioctl function FBIOPUT_VSCREENINFO since
196 viafb doesn't support multi-head well, or it will cause screen crush.
199 Configure viafb with "fbset" tool
200 ---------------------------------
202 "fbset" is an inbox utility of Linux.
204 1. Inquire current viafb information, type::
208 2. Set various resolutions and viafb_refresh rates::
210 # fbset <resolution-vertical_sync>
214 # fbset "1024x768-75"
218 # fbset -g 1024 768 1024 768 32
220 Check the file "/etc/fb.modes" to find display modes available.
222 3. Set the color depth::
224 # fbset -depth <value>
231 Configure viafb via /proc
232 -------------------------
233 The following files exist in /proc/viafb
235 supported_output_devices
236 This read-only file contains a full ',' separated list containing all
237 output devices that could be available on your platform. It is likely
238 that not all of those have a connector on your hardware but it should
239 provide a good starting point to figure out which of those names match
244 # cat /proc/viafb/supported_output_devices
246 iga1/output_devices, iga2/output_devices
247 These two files are readable and writable. iga1 and iga2 are the two
248 independent units that produce the screen image. Those images can be
249 forwarded to one or more output devices. Reading those files is a way
250 to query which output devices are currently used by an iga.
254 # cat /proc/viafb/iga1/output_devices
256 If there are no output devices printed the output of this iga is lost.
257 This can happen for example if only one (the other) iga is used.
258 Writing to these files allows adjusting the output devices during
259 runtime. One can add new devices, remove existing ones or switch
260 between igas. Essentially you can write a ',' separated list of device
261 names (or a single one) in the same format as the output to those
262 files. You can add a '+' or '-' as a prefix allowing simple addition
263 and removal of devices. So a prefix '+' adds the devices from your list
264 to the already existing ones, '-' removes the listed devices from the
265 existing ones and if no prefix is given it replaces all existing ones
266 with the listed ones. If you remove devices they are expected to turn
267 off. If you add devices that are already part of the other iga they are
268 removed there and added to the new one.
272 Add CRT as output device to iga1::
274 # echo +CRT > /proc/viafb/iga1/output_devices
276 Remove (turn off) DVP1 and LVDS1 as output devices of iga2::
278 # echo -DVP1,LVDS1 > /proc/viafb/iga2/output_devices
280 Replace all iga1 output devices by CRT::
282 # echo CRT > /proc/viafb/iga1/output_devices
288 Add the following line to your grub.conf::
290 append = "video=viafb:viafb_mode=1024x768,viafb_bpp=32,viafb_refresh=85"
293 VIA Framebuffer modes
294 =====================
296 .. include:: viafb.modes