viafb.txt 7.4 KB
Newer Older
J
Joseph Chan 已提交
1 2 3 4 5 6 7 8 9

        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,
H
Harald Welte 已提交
10
                        CN896 / P4M900, VX800, VX855)
J
Joseph Chan 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204

[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_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.


[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"