0001 =======================================================
0002 VIA Integration Graphic Chip Console Framebuffer Driver
0003 =======================================================
0004
0005 Platform
0006 --------
0007 The console framebuffer driver is for graphics chips of
0008 VIA UniChrome Family
0009 (CLE266, PM800 / CN400 / CN300,
0010 P4M800CE / P4M800Pro / CN700 / VN800,
0011 CX700 / VX700, K8M890, P4M890,
0012 CN896 / P4M900, VX800, VX855)
0013
0014 Driver features
0015 ---------------
0016 Device: CRT, LCD, DVI
0017
0018 Support viafb_mode::
0019
0020 CRT:
0021 640x480(60, 75, 85, 100, 120 Hz), 720x480(60 Hz),
0022 720x576(60 Hz), 800x600(60, 75, 85, 100, 120 Hz),
0023 848x480(60 Hz), 856x480(60 Hz), 1024x512(60 Hz),
0024 1024x768(60, 75, 85, 100 Hz), 1152x864(75 Hz),
0025 1280x768(60 Hz), 1280x960(60 Hz), 1280x1024(60, 75, 85 Hz),
0026 1440x1050(60 Hz), 1600x1200(60, 75 Hz), 1280x720(60 Hz),
0027 1920x1080(60 Hz), 1400x1050(60 Hz), 800x480(60 Hz)
0028
0029 color depth: 8 bpp, 16 bpp, 32 bpp supports.
0030
0031 Support 2D hardware accelerator.
0032
0033 Using the viafb module
0034 ----------------------
0035 Start viafb with default settings::
0036
0037 #modprobe viafb
0038
0039 Start viafb with user options::
0040
0041 #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60
0042 viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1
0043 viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60
0044 viafb_SAMM_ON=1
0045
0046 viafb_mode:
0047 - 640x480 (default)
0048 - 720x480
0049 - 800x600
0050 - 1024x768
0051
0052 viafb_bpp:
0053 - 8, 16, 32 (default:32)
0054
0055 viafb_refresh:
0056 - 60, 75, 85, 100, 120 (default:60)
0057
0058 viafb_lcd_dsp_method:
0059 - 0 : expansion (default)
0060 - 1 : centering
0061
0062 viafb_lcd_mode:
0063 0 : LCD panel with LSB data format input (default)
0064 1 : LCD panel with MSB data format input
0065
0066 viafb_lcd_panel_id:
0067 - 0 : Resolution: 640x480, Channel: single, Dithering: Enable
0068 - 1 : Resolution: 800x600, Channel: single, Dithering: Enable
0069 - 2 : Resolution: 1024x768, Channel: single, Dithering: Enable (default)
0070 - 3 : Resolution: 1280x768, Channel: single, Dithering: Enable
0071 - 4 : Resolution: 1280x1024, Channel: dual, Dithering: Enable
0072 - 5 : Resolution: 1400x1050, Channel: dual, Dithering: Enable
0073 - 6 : Resolution: 1600x1200, Channel: dual, Dithering: Enable
0074
0075 - 8 : Resolution: 800x480, Channel: single, Dithering: Enable
0076 - 9 : Resolution: 1024x768, Channel: dual, Dithering: Enable
0077 - 10: Resolution: 1024x768, Channel: single, Dithering: Disable
0078 - 11: Resolution: 1024x768, Channel: dual, Dithering: Disable
0079 - 12: Resolution: 1280x768, Channel: single, Dithering: Disable
0080 - 13: Resolution: 1280x1024, Channel: dual, Dithering: Disable
0081 - 14: Resolution: 1400x1050, Channel: dual, Dithering: Disable
0082 - 15: Resolution: 1600x1200, Channel: dual, Dithering: Disable
0083 - 16: Resolution: 1366x768, Channel: single, Dithering: Disable
0084 - 17: Resolution: 1024x600, Channel: single, Dithering: Enable
0085 - 18: Resolution: 1280x768, Channel: dual, Dithering: Enable
0086 - 19: Resolution: 1280x800, Channel: single, Dithering: Enable
0087
0088 viafb_accel:
0089 - 0 : No 2D Hardware Acceleration
0090 - 1 : 2D Hardware Acceleration (default)
0091
0092 viafb_SAMM_ON:
0093 - 0 : viafb_SAMM_ON disable (default)
0094 - 1 : viafb_SAMM_ON enable
0095
0096 viafb_mode1: (secondary display device)
0097 - 640x480 (default)
0098 - 720x480
0099 - 800x600
0100 - 1024x768
0101
0102 viafb_bpp1: (secondary display device)
0103 - 8, 16, 32 (default:32)
0104
0105 viafb_refresh1: (secondary display device)
0106 - 60, 75, 85, 100, 120 (default:60)
0107
0108 viafb_active_dev:
0109 This option is used to specify active devices.(CRT, DVI, CRT+LCD...)
0110 DVI stands for DVI or HDMI, E.g., If you want to enable HDMI,
0111 set viafb_active_dev=DVI. In SAMM case, the previous of
0112 viafb_active_dev is primary device, and the following is
0113 secondary device.
0114
0115 For example:
0116
0117 To enable one device, such as DVI only, we can use::
0118
0119 modprobe viafb viafb_active_dev=DVI
0120
0121 To enable two devices, such as CRT+DVI::
0122
0123 modprobe viafb viafb_active_dev=CRT+DVI;
0124
0125 For DuoView case, we can use::
0126
0127 modprobe viafb viafb_active_dev=CRT+DVI
0128
0129 OR::
0130
0131 modprobe viafb viafb_active_dev=DVI+CRT...
0132
0133 For SAMM case:
0134
0135 If CRT is primary and DVI is secondary, we should use::
0136
0137 modprobe viafb viafb_active_dev=CRT+DVI viafb_SAMM_ON=1...
0138
0139 If DVI is primary and CRT is secondary, we should use::
0140
0141 modprobe viafb viafb_active_dev=DVI+CRT viafb_SAMM_ON=1...
0142
0143 viafb_display_hardware_layout:
0144 This option is used to specify display hardware layout for CX700 chip.
0145
0146 - 1 : LCD only
0147 - 2 : DVI only
0148 - 3 : LCD+DVI (default)
0149 - 4 : LCD1+LCD2 (internal + internal)
0150 - 16: LCD1+ExternalLCD2 (internal + external)
0151
0152 viafb_second_size:
0153 This option is used to set second device memory size(MB) in SAMM case.
0154 The minimal size is 16.
0155
0156 viafb_platform_epia_dvi:
0157 This option is used to enable DVI on EPIA - M
0158
0159 - 0 : No DVI on EPIA - M (default)
0160 - 1 : DVI on EPIA - M
0161
0162 viafb_bus_width:
0163 When using 24 - Bit Bus Width Digital Interface,
0164 this option should be set.
0165
0166 - 12: 12-Bit LVDS or 12-Bit TMDS (default)
0167 - 24: 24-Bit LVDS or 24-Bit TMDS
0168
0169 viafb_device_lcd_dualedge:
0170 When using Dual Edge Panel, this option should be set.
0171
0172 - 0 : No Dual Edge Panel (default)
0173 - 1 : Dual Edge Panel
0174
0175 viafb_lcd_port:
0176 This option is used to specify LCD output port,
0177 available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH" "DFP_LOW".
0178
0179 for external LCD + external DVI on CX700(External LCD is on DVP0),
0180 we should use::
0181
0182 modprobe viafb viafb_lcd_port=DVP0...
0183
0184 Notes:
0185 1. CRT may not display properly for DuoView CRT & DVI display at
0186 the "640x480" PAL mode with DVI overscan enabled.
0187 2. SAMM stands for single adapter multi monitors. It is different from
0188 multi-head since SAMM support multi monitor at driver layers, thus fbcon
0189 layer doesn't even know about it; SAMM's second screen doesn't have a
0190 device node file, thus a user mode application can't access it directly.
0191 When SAMM is enabled, viafb_mode and viafb_mode1, viafb_bpp and
0192 viafb_bpp1, viafb_refresh and viafb_refresh1 can be different.
0193 3. When console is depending on viafbinfo1, dynamically change resolution
0194 and bpp, need to call VIAFB specified ioctl interface VIAFB_SET_DEVICE
0195 instead of calling common ioctl function FBIOPUT_VSCREENINFO since
0196 viafb doesn't support multi-head well, or it will cause screen crush.
0197
0198
0199 Configure viafb with "fbset" tool
0200 ---------------------------------
0201
0202 "fbset" is an inbox utility of Linux.
0203
0204 1. Inquire current viafb information, type::
0205
0206 # fbset -i
0207
0208 2. Set various resolutions and viafb_refresh rates::
0209
0210 # fbset <resolution-vertical_sync>
0211
0212 example::
0213
0214 # fbset "1024x768-75"
0215
0216 or::
0217
0218 # fbset -g 1024 768 1024 768 32
0219
0220 Check the file "/etc/fb.modes" to find display modes available.
0221
0222 3. Set the color depth::
0223
0224 # fbset -depth <value>
0225
0226 example::
0227
0228 # fbset -depth 16
0229
0230
0231 Configure viafb via /proc
0232 -------------------------
0233 The following files exist in /proc/viafb
0234
0235 supported_output_devices
0236 This read-only file contains a full ',' separated list containing all
0237 output devices that could be available on your platform. It is likely
0238 that not all of those have a connector on your hardware but it should
0239 provide a good starting point to figure out which of those names match
0240 a real connector.
0241
0242 Example::
0243
0244 # cat /proc/viafb/supported_output_devices
0245
0246 iga1/output_devices, iga2/output_devices
0247 These two files are readable and writable. iga1 and iga2 are the two
0248 independent units that produce the screen image. Those images can be
0249 forwarded to one or more output devices. Reading those files is a way
0250 to query which output devices are currently used by an iga.
0251
0252 Example::
0253
0254 # cat /proc/viafb/iga1/output_devices
0255
0256 If there are no output devices printed the output of this iga is lost.
0257 This can happen for example if only one (the other) iga is used.
0258 Writing to these files allows adjusting the output devices during
0259 runtime. One can add new devices, remove existing ones or switch
0260 between igas. Essentially you can write a ',' separated list of device
0261 names (or a single one) in the same format as the output to those
0262 files. You can add a '+' or '-' as a prefix allowing simple addition
0263 and removal of devices. So a prefix '+' adds the devices from your list
0264 to the already existing ones, '-' removes the listed devices from the
0265 existing ones and if no prefix is given it replaces all existing ones
0266 with the listed ones. If you remove devices they are expected to turn
0267 off. If you add devices that are already part of the other iga they are
0268 removed there and added to the new one.
0269
0270 Examples:
0271
0272 Add CRT as output device to iga1::
0273
0274 # echo +CRT > /proc/viafb/iga1/output_devices
0275
0276 Remove (turn off) DVP1 and LVDS1 as output devices of iga2::
0277
0278 # echo -DVP1,LVDS1 > /proc/viafb/iga2/output_devices
0279
0280 Replace all iga1 output devices by CRT::
0281
0282 # echo CRT > /proc/viafb/iga1/output_devices
0283
0284
0285 Bootup with viafb
0286 -----------------
0287
0288 Add the following line to your grub.conf::
0289
0290 append = "video=viafb:viafb_mode=1024x768,viafb_bpp=32,viafb_refresh=85"
0291
0292
0293 VIA Framebuffer modes
0294 =====================
0295
0296 .. include:: viafb.modes
0297 :literal: