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