| |
| VIA Integration Graphic Chip Console Framebuffer Driver |
| |
| [Platform] |
| ----------------------- |
| The console framebuffer driver is for graphics chips of |
| VIA UniChrome Family(CLE266, PM800 / CN400 / CN300, |
| P4M800CE / P4M800Pro / CN700 / VN800, |
| CX700 / VX700, K8M890, P4M890, |
| CN896 / P4M900, VX800) |
| |
| [Driver features] |
| ------------------------ |
| Device: CRT, LCD, DVI |
| |
| Support viafb_mode: |
| CRT: |
| 640x480(60, 75, 85, 100, 120 Hz), 720x480(60 Hz), |
| 720x576(60 Hz), 800x600(60, 75, 85, 100, 120 Hz), |
| 848x480(60 Hz), 856x480(60 Hz), 1024x512(60 Hz), |
| 1024x768(60, 75, 85, 100 Hz), 1152x864(75 Hz), |
| 1280x768(60 Hz), 1280x960(60 Hz), 1280x1024(60, 75, 85 Hz), |
| 1440x1050(60 Hz), 1600x1200(60, 75 Hz), 1280x720(60 Hz), |
| 1920x1080(60 Hz), 1400x1050(60 Hz), 800x480(60 Hz) |
| |
| color depth: 8 bpp, 16 bpp, 32 bpp supports. |
| |
| Support 2D hardware accelerator. |
| |
| [Using the viafb module] |
| -- -- -------------------- |
| Start viafb with default settings: |
| #modprobe viafb |
| |
| Start viafb with with user options: |
| #modprobe viafb viafb_mode=800x600 viafb_bpp=16 viafb_refresh=60 |
| viafb_active_dev=CRT+DVI viafb_dvi_port=DVP1 |
| viafb_mode1=1024x768 viafb_bpp=16 viafb_refresh1=60 |
| viafb_SAMM_ON=1 |
| |
| viafb_mode: |
| 640x480 (default) |
| 720x480 |
| 800x600 |
| 1024x768 |
| ...... |
| |
| viafb_bpp: |
| 8, 16, 32 (default:32) |
| |
| viafb_refresh: |
| 60, 75, 85, 100, 120 (default:60) |
| |
| viafb_lcd_dsp_method: |
| 0 : expansion (default) |
| 1 : centering |
| |
| viafb_lcd_mode: |
| 0 : LCD panel with LSB data format input (default) |
| 1 : LCD panel with MSB data format input |
| |
| viafb_lcd_panel_id: |
| 0 : Resolution: 640x480, Channel: single, Dithering: Enable |
| 1 : Resolution: 800x600, Channel: single, Dithering: Enable |
| 2 : Resolution: 1024x768, Channel: single, Dithering: Enable (default) |
| 3 : Resolution: 1280x768, Channel: single, Dithering: Enable |
| 4 : Resolution: 1280x1024, Channel: dual, Dithering: Enable |
| 5 : Resolution: 1400x1050, Channel: dual, Dithering: Enable |
| 6 : Resolution: 1600x1200, Channel: dual, Dithering: Enable |
| |
| 8 : Resolution: 800x480, Channel: single, Dithering: Enable |
| 9 : Resolution: 1024x768, Channel: dual, Dithering: Enable |
| 10: Resolution: 1024x768, Channel: single, Dithering: Disable |
| 11: Resolution: 1024x768, Channel: dual, Dithering: Disable |
| 12: Resolution: 1280x768, Channel: single, Dithering: Disable |
| 13: Resolution: 1280x1024, Channel: dual, Dithering: Disable |
| 14: Resolution: 1400x1050, Channel: dual, Dithering: Disable |
| 15: Resolution: 1600x1200, Channel: dual, Dithering: Disable |
| 16: Resolution: 1366x768, Channel: single, Dithering: Disable |
| 17: Resolution: 1024x600, Channel: single, Dithering: Enable |
| 18: Resolution: 1280x768, Channel: dual, Dithering: Enable |
| 19: Resolution: 1280x800, Channel: single, Dithering: Enable |
| |
| viafb_accel: |
| 0 : No 2D Hardware Acceleration |
| 1 : 2D Hardware Acceleration (default) |
| |
| viafb_SAMM_ON: |
| 0 : viafb_SAMM_ON disable (default) |
| 1 : viafb_SAMM_ON enable |
| |
| viafb_mode1: (secondary display device) |
| 640x480 (default) |
| 720x480 |
| 800x600 |
| 1024x768 |
| ... ... |
| |
| viafb_bpp1: (secondary display device) |
| 8, 16, 32 (default:32) |
| |
| viafb_refresh1: (secondary display device) |
| 60, 75, 85, 100, 120 (default:60) |
| |
| viafb_active_dev: |
| This option is used to specify active devices.(CRT, DVI, CRT+LCD...) |
| DVI stands for DVI or HDMI, E.g., If you want to enable HDMI, |
| set viafb_active_dev=DVI. In SAMM case, the previous of |
| viafb_active_dev is primary device, and the following is |
| secondary device. |
| |
| For example: |
| To enable one device, such as DVI only, we can use: |
| modprobe viafb viafb_active_dev=DVI |
| To enable two devices, such as CRT+DVI: |
| modprobe viafb viafb_active_dev=CRT+DVI; |
| |
| For DuoView case, we can use: |
| modprobe viafb viafb_active_dev=CRT+DVI |
| OR |
| modprobe viafb viafb_active_dev=DVI+CRT... |
| |
| For SAMM case: |
| If CRT is primary and DVI is secondary, we should use: |
| modprobe viafb viafb_active_dev=CRT+DVI viafb_SAMM_ON=1... |
| If DVI is primary and CRT is secondary, we should use: |
| modprobe viafb viafb_active_dev=DVI+CRT viafb_SAMM_ON=1... |
| |
| viafb_display_hardware_layout: |
| This option is used to specify display hardware layout for CX700 chip. |
| 1 : LCD only |
| 2 : DVI only |
| 3 : LCD+DVI (default) |
| 4 : LCD1+LCD2 (internal + internal) |
| 16: LCD1+ExternalLCD2 (internal + external) |
| |
| viafb_second_size: |
| This option is used to set second device memory size(MB) in SAMM case. |
| The minimal size is 16. |
| |
| viafb_platform_epia_dvi: |
| This option is used to enable DVI on EPIA - M |
| 0 : No DVI on EPIA - M (default) |
| 1 : DVI on EPIA - M |
| |
| viafb_bus_width: |
| When using 24 - Bit Bus Width Digital Interface, |
| this option should be set. |
| 12: 12-Bit LVDS or 12-Bit TMDS (default) |
| 24: 24-Bit LVDS or 24-Bit TMDS |
| |
| viafb_device_lcd_dualedge: |
| When using Dual Edge Panel, this option should be set. |
| 0 : No Dual Edge Panel (default) |
| 1 : Dual Edge Panel |
| |
| viafb_video_dev: |
| This option is used to specify video output devices(CRT, DVI, LCD) for |
| duoview case. |
| For example: |
| To output video on DVI, we should use: |
| modprobe viafb viafb_video_dev=DVI... |
| |
| viafb_lcd_port: |
| This option is used to specify LCD output port, |
| available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH" "DFP_LOW". |
| for external LCD + external DVI on CX700(External LCD is on DVP0), |
| we should use: |
| modprobe viafb viafb_lcd_port=DVP0... |
| |
| Notes: |
| 1. CRT may not display properly for DuoView CRT & DVI display at |
| the "640x480" PAL mode with DVI overscan enabled. |
| 2. SAMM stands for single adapter multi monitors. It is different from |
| multi-head since SAMM support multi monitor at driver layers, thus fbcon |
| layer doesn't even know about it; SAMM's second screen doesn't have a |
| device node file, thus a user mode application can't access it directly. |
| When SAMM is enabled, viafb_mode and viafb_mode1, viafb_bpp and |
| viafb_bpp1, viafb_refresh and viafb_refresh1 can be different. |
| 3. When console is depending on viafbinfo1, dynamically change resolution |
| and bpp, need to call VIAFB specified ioctl interface VIAFB_SET_DEVICE |
| instead of calling common ioctl function FBIOPUT_VSCREENINFO since |
| viafb doesn't support multi-head well, or it will cause screen crush. |
| 4. VX800 2D accelerator hasn't been supported in this driver yet. When |
| using driver on VX800, the driver will disable the acceleration |
| function as default. |
| |
| |
| [Configure viafb with "fbset" tool] |
| ----------------------------------- |
| "fbset" is an inbox utility of Linux. |
| 1. Inquire current viafb information, type, |
| # fbset -i |
| |
| 2. Set various resolutions and viafb_refresh rates, |
| # fbset <resolution-vertical_sync> |
| |
| example, |
| # fbset "1024x768-75" |
| or |
| # fbset -g 1024 768 1024 768 32 |
| Check the file "/etc/fb.modes" to find display modes available. |
| |
| 3. Set the color depth, |
| # fbset -depth <value> |
| |
| example, |
| # fbset -depth 16 |
| |
| [Bootup with viafb]: |
| -------------------- |
| Add the following line to your grub.conf: |
| append = "video=viafb:viafb_mode=1024x768,viafb_bpp=32,viafb_refresh=85" |
| |