Back to home page

OSCL-LXR

 
 

    


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: