aboutsummaryrefslogtreecommitdiffstats
path: root/roms/seabios/vgasrc/Kconfig
blob: c8fac36fb92baa27e06076ec68c5777bff0237f4 (plain)
1
2
3
4
5
6
7
8
9
10
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
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# Kconfig SeaBIOS VGA BIOS configuration

menu "VGA ROM"
    choice
        prompt "VGA Hardware Type"
        default NO_VGABIOS

        config NO_VGABIOS
            bool "None"
            help
                Do not build a VGA BIOS.

        config VGA_STANDARD_VGA
            depends on QEMU
            bool "QEMU/Bochs Original IBM 256K VGA"
            select VGA_STDVGA_PORTS
            help
                Build basic VGA BIOS support (pre Super-VGA) for use
                on emulators.

        config VGA_CIRRUS
            depends on QEMU
            bool "QEMU/Bochs Cirrus SVGA"
            select VGA_STDVGA_PORTS
            help
                Build support for Cirrus VGA emulation found on QEMU
                and Bochs emulators.  This is for emulators; it is not
                intended for use on real Cirrus hardware.

        config VGA_ATI
            depends on QEMU
            bool "QEMU ATI SVGA"
            select VGA_STDVGA_PORTS
            help
                Build support for ATI VGA emulation found on QEMU
                and emulators.  This is for emulators; it is not
                intended for use on real ATI hardware.

        config VGA_BOCHS
            depends on QEMU
            bool "QEMU/Bochs VBE SVGA"
            select VGA_STDVGA_PORTS
            help
                Build support for Bochs DISPI interface (a custom VBE
                protocol) found on QEMU and Bochs emulators.

        config VGA_GEODEGX2
            bool "GeodeGX2"
            select VGA_STDVGA_PORTS
            help
                Build support for Geode GX2 vga.

        config VGA_GEODELX
            bool "GeodeLX"
            select VGA_STDVGA_PORTS
            help
                Build support for Geode LX vga.

        config VGA_COREBOOT
            depends on COREBOOT
            bool "coreboot linear framebuffer"
            select VGA_EMULATE_TEXT
            help
                Build support for a vgabios wrapper around video
                devices initialized using coreboot native vga init.

        config DISPLAY_BOCHS
            depends on QEMU
            bool "qemu bochs-display support"
            select VGA_EMULATE_TEXT
            help
                Build support for the qemu bochs-display device, which
                is basically qemu stdvga without the legacy vga
                emulation, supporting only 16+32 bpp VESA video modes
                in a linear framebuffer.  So this uses cbvga text mode
                emulation.

                The bochs-display device is available in qemu
                v3.0+. The vgabios works with the qemu stdvga too (use
                "qemu -device VGA,romfile=/path/to/vgabios.bin")".

        config VGA_RAMFB
            depends on QEMU
            bool "qemu ramfb"
            select VGA_EMULATE_TEXT
            help
                qemu ram framebuffer support (-device ramfb).

    endchoice

    choice
        depends on VGA_BOCHS
        prompt "bochs vga variant"
        default VGA_BOCHS_STDVGA

        config VGA_BOCHS_STDVGA
            bool "qemu stdvga / bochs svga"

        config VGA_BOCHS_VMWARE
            bool "qemu vmware svga"

        config VGA_BOCHS_QXL
            bool "qemu qxl vga"

        config VGA_BOCHS_VIRTIO
            bool "qemu virtio vga"

    endchoice

    choice
        depends on VGA_GEODEGX2 || VGA_GEODELX
        prompt "Output Mode"
        default VGA_OUTPUT_CRT

        config VGA_OUTPUT_CRT
            bool "CRT"
            help
                Use CRT for output.

        config VGA_OUTPUT_PANEL
            bool "Flat Panel"
            help
                Use flat panel for output.

        config VGA_OUTPUT_CRT_PANEL
            bool "CRT and Flat Panel"
            help
                Use CRT and flat panel for output.
    endchoice

    config BUILD_VGABIOS
        bool
        default !NO_VGABIOS

    config VGA_STDVGA_PORTS
        bool
    config VGA_EMULATE_TEXT
        bool
        help
            Support emulating text mode features when only a
            framebuffer is available.

    config VGA_FIXUP_ASM
        depends on BUILD_VGABIOS
        bool "Fixup assembler to work with broken emulators"
        default y
        help
            This option will cause the build to attempt to avoid
            certain x86 machine instructions that are known to confuse
            some emulators.  In particular, it works around
            deficiencies in the Windows vgabios emulator and the
            x86emu vgabios emulator (frequently used in Xorg).

    config VGA_ALLOCATE_EXTRA_STACK
        depends on BUILD_VGABIOS
        bool "Allocate an internal stack for 16bit interrupt entry point"
        default y
        help
            Attempt to allocate (via BIOS PMM call) an internal stack
            for the legacy 16bit 0x10 interrupt entry point.  This
            reduces the amount of space on the caller's stack that
            SeaVGABIOS uses.

    config VGA_EXTRA_STACK_SIZE
        int
        default 512

    config VGA_VBE
        depends on BUILD_VGABIOS
        bool "Video BIOS Extensions (VBE)"
        default y
        help
            Support VBE.

    config VGA_PCI
        depends on BUILD_VGABIOS && !VGA_COREBOOT
        bool "PCI ROM Headers"
        default y
        help
            Build PCI ROM headers so the vga rom can be extracted from
            a PCI device.

    config OVERRIDE_PCI_ID
        depends on VGA_PCI
        bool "Override PCI Vendor and Device IDs"
        help
            Specify specific values for the PCI Vendor and Device IDs.

    config VGA_VID
        depends on VGA_PCI
        hex
        prompt "PCI Vendor ID" if OVERRIDE_PCI_ID
        default 0x1013 if VGA_CIRRUS
        default 0x1002 if VGA_ATI
        default 0x1234 if VGA_BOCHS_STDVGA
        default 0x15ad if VGA_BOCHS_VMWARE
        default 0x1b36 if VGA_BOCHS_QXL
        default 0x1af4 if VGA_BOCHS_VIRTIO
        default 0x100b if VGA_GEODEGX2
        default 0x1022 if VGA_GEODELX
        default 0x1234 if DISPLAY_BOCHS
        default 0x0000
        help
            Vendor ID for the PCI ROM

    config VGA_DID
        depends on VGA_PCI
        hex
        prompt "PCI Vendor ID" if OVERRIDE_PCI_ID
        default 0x00b8 if VGA_CIRRUS
        default 0x5159 if VGA_ATI
        default 0x1111 if VGA_BOCHS_STDVGA
        default 0x0405 if VGA_BOCHS_VMWARE
        default 0x0100 if VGA_BOCHS_QXL
        default 0x1050 if VGA_BOCHS_VIRTIO
        default 0x0030 if VGA_GEODEGX2
        default 0x2081 if VGA_GEODELX
        default 0x1111 if DISPLAY_BOCHS
        default 0x0000
        help
            Device ID for the PCI ROM
endmenu