1# Kconfig SeaBIOS VGA BIOS configuration
2
3menu "VGA ROM"
4    choice
5        prompt "VGA Hardware Type"
6        default NO_VGABIOS
7
8        config NO_VGABIOS
9            bool "None"
10            help
11                Do not build a VGA BIOS.
12
13        config VGA_STANDARD_VGA
14            depends on QEMU
15            bool "QEMU/Bochs Original IBM 256K VGA"
16            select VGA_STDVGA_PORTS
17            help
18                Build basic VGA BIOS support (pre Super-VGA) for use
19                on emulators.
20
21        config VGA_CIRRUS
22            depends on QEMU
23            bool "QEMU/Bochs Cirrus SVGA"
24            select VGA_STDVGA_PORTS
25            help
26                Build support for Cirrus VGA emulation found on QEMU
27                and Bochs emulators.  This is for emulators; it is not
28                intended for use on real Cirrus hardware.
29
30        config VGA_ATI
31            depends on QEMU
32            bool "QEMU ATI SVGA"
33            select VGA_STDVGA_PORTS
34            help
35                Build support for ATI VGA emulation found on QEMU
36                and emulators.  This is for emulators; it is not
37                intended for use on real ATI hardware.
38
39        config VGA_BOCHS
40            depends on QEMU
41            bool "QEMU/Bochs VBE SVGA"
42            select VGA_STDVGA_PORTS
43            help
44                Build support for Bochs DISPI interface (a custom VBE
45                protocol) found on QEMU and Bochs emulators.
46
47        config VGA_GEODEGX2
48            bool "GeodeGX2"
49            select VGA_STDVGA_PORTS
50            help
51                Build support for Geode GX2 vga.
52
53        config VGA_GEODELX
54            bool "GeodeLX"
55            select VGA_STDVGA_PORTS
56            help
57                Build support for Geode LX vga.
58
59        config VGA_COREBOOT
60            depends on COREBOOT
61            bool "coreboot linear framebuffer"
62            select VGA_EMULATE_TEXT
63            help
64                Build support for a vgabios wrapper around video
65                devices initialized using coreboot native vga init.
66
67        config DISPLAY_BOCHS
68            depends on QEMU
69            bool "qemu bochs-display support"
70            select VGA_EMULATE_TEXT
71            help
72                Build support for the qemu bochs-display device, which
73                is basically qemu stdvga without the legacy vga
74                emulation, supporting only 16+32 bpp VESA video modes
75                in a linear framebuffer.  So this uses cbvga text mode
76                emulation.
77
78                The bochs-display device is available in qemu
79                v3.0+. The vgabios works with the qemu stdvga too (use
80                "qemu -device VGA,romfile=/path/to/vgabios.bin")".
81
82        config VGA_RAMFB
83            depends on QEMU
84            bool "qemu ramfb"
85            select VGA_EMULATE_TEXT
86            help
87                qemu ram framebuffer support (-device ramfb).
88
89    endchoice
90
91    choice
92        depends on VGA_BOCHS
93        prompt "bochs vga variant"
94        default VGA_BOCHS_STDVGA
95
96        config VGA_BOCHS_STDVGA
97            bool "qemu stdvga / bochs svga"
98
99        config VGA_BOCHS_VMWARE
100            bool "qemu vmware svga"
101
102        config VGA_BOCHS_QXL
103            bool "qemu qxl vga"
104
105        config VGA_BOCHS_VIRTIO
106            bool "qemu virtio vga"
107
108    endchoice
109
110    choice
111        depends on VGA_GEODEGX2 || VGA_GEODELX
112        prompt "Output Mode"
113        default VGA_OUTPUT_CRT
114
115        config VGA_OUTPUT_CRT
116            bool "CRT"
117            help
118                Use CRT for output.
119
120        config VGA_OUTPUT_PANEL
121            bool "Flat Panel"
122            help
123                Use flat panel for output.
124
125        config VGA_OUTPUT_CRT_PANEL
126            bool "CRT and Flat Panel"
127            help
128                Use CRT and flat panel for output.
129    endchoice
130
131    config BUILD_VGABIOS
132        bool
133        default !NO_VGABIOS
134
135    config VGA_STDVGA_PORTS
136        bool
137    config VGA_EMULATE_TEXT
138        bool
139        help
140            Support emulating text mode features when only a
141            framebuffer is available.
142
143    config VGA_FIXUP_ASM
144        depends on BUILD_VGABIOS
145        bool "Fixup assembler to work with broken emulators"
146        default y
147        help
148            This option will cause the build to attempt to avoid
149            certain x86 machine instructions that are known to confuse
150            some emulators.  In particular, it works around
151            deficiencies in the Windows vgabios emulator and the
152            x86emu vgabios emulator (frequently used in Xorg).
153
154    config VGA_ALLOCATE_EXTRA_STACK
155        depends on BUILD_VGABIOS
156        bool "Allocate an internal stack for 16bit interrupt entry point"
157        default y
158        help
159            Attempt to allocate (via BIOS PMM call) an internal stack
160            for the legacy 16bit 0x10 interrupt entry point.  This
161            reduces the amount of space on the caller's stack that
162            SeaVGABIOS uses.
163
164    config VGA_EXTRA_STACK_SIZE
165        int
166        default 512
167
168    config VGA_VBE
169        depends on BUILD_VGABIOS
170        bool "Video BIOS Extensions (VBE)"
171        default y
172        help
173            Support VBE.
174
175    config VGA_PCI
176        depends on BUILD_VGABIOS && !VGA_COREBOOT
177        bool "PCI ROM Headers"
178        default y
179        help
180            Build PCI ROM headers so the vga rom can be extracted from
181            a PCI device.
182
183    config OVERRIDE_PCI_ID
184        depends on VGA_PCI
185        bool "Override PCI Vendor and Device IDs"
186        help
187            Specify specific values for the PCI Vendor and Device IDs.
188
189    config VGA_VID
190        depends on VGA_PCI
191        hex
192        prompt "PCI Vendor ID" if OVERRIDE_PCI_ID
193        default 0x1013 if VGA_CIRRUS
194        default 0x1002 if VGA_ATI
195        default 0x1234 if VGA_BOCHS_STDVGA
196        default 0x15ad if VGA_BOCHS_VMWARE
197        default 0x1b36 if VGA_BOCHS_QXL
198        default 0x1af4 if VGA_BOCHS_VIRTIO
199        default 0x100b if VGA_GEODEGX2
200        default 0x1022 if VGA_GEODELX
201        default 0x1234 if DISPLAY_BOCHS
202        default 0x0000
203        help
204            Vendor ID for the PCI ROM
205
206    config VGA_DID
207        depends on VGA_PCI
208        hex
209        prompt "PCI Vendor ID" if OVERRIDE_PCI_ID
210        default 0x00b8 if VGA_CIRRUS
211        default 0x5159 if VGA_ATI
212        default 0x1111 if VGA_BOCHS_STDVGA
213        default 0x0405 if VGA_BOCHS_VMWARE
214        default 0x0100 if VGA_BOCHS_QXL
215        default 0x1050 if VGA_BOCHS_VIRTIO
216        default 0x0030 if VGA_GEODEGX2
217        default 0x2081 if VGA_GEODELX
218        default 0x1111 if DISPLAY_BOCHS
219        default 0x0000
220        help
221            Device ID for the PCI ROM
222endmenu
223