summaryrefslogtreecommitdiff
path: root/payloads/external/SeaBIOS/Kconfig
blob: b12af46a14a3fd7325168fabc31eaffac87a3a8c (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
## SPDX-License-Identifier: GPL-2.0-only

config PAYLOAD_BUILD_SEABIOS
	bool

if PAYLOAD_SEABIOS

config PAYLOAD_FILE
	default "payloads/external/SeaBIOS/seabios/out/bios.bin.elf"

endif

if PAYLOAD_BUILD_SEABIOS

choice
	prompt "SeaBIOS version"
	default SEABIOS_STABLE

config SEABIOS_STABLE
	bool "1.16.3"
	help
	  Stable SeaBIOS version
config SEABIOS_MASTER
	bool "master"
	help
	  Newest SeaBIOS version
config SEABIOS_REVISION
	bool "git revision"
	help
	  Select this option if you have a specific commit or branch
	  that you want to use as the revision from which to
	  build SeaBIOS.

	  You will be able to specify the name of a branch or a commit id
	  later.

endchoice

config SEABIOS_REVISION_ID
	string "Insert a commit's SHA-1 or a branch name"
	depends on SEABIOS_REVISION
	default "origin/master"
	help
	   The commit's SHA-1 or branch name of the revision to use.

config SEABIOS_PS2_TIMEOUT
	prompt "PS/2 keyboard controller initialization timeout (milliseconds)"
	default 0
	int
	help
	  Some PS/2 keyboard controllers don't respond to commands immediately
	  after powering on. This specifies how long SeaBIOS will wait for the
	  keyboard controller to become ready before giving up.

config SEABIOS_THREAD_OPTIONROMS
	prompt "Hardware init during option ROM execution"
	default n
	bool
	help
	  Allow hardware init to run in parallel with optionrom execution.

	  This can reduce boot time, but can cause some timing
	  variations during option ROM code execution. It is not
	  known if all option ROMs will behave properly with this option.

config SEABIOS_HARDWARE_IRQ
	prompt "Hardware Interrupts"
	default y
	bool
	help
	  Program and support hardware interrupts using the i8259
	  programmable interrupt controller (PIC).  Deselected by
	  boards which would otherwise hang at the boot menu (eg,
	  google/rambi).

config SEABIOS_VGA_COREBOOT
	prompt "Include generated option rom that implements legacy VGA BIOS compatibility"
	default y if !VENDOR_EMULATION
	default y if COREDOOM_SECONDARY_PAYLOAD
	depends on !VGA_ROM_RUN && (VGA_TEXT_FRAMEBUFFER || LINEAR_FRAMEBUFFER)
	bool
	help
	  coreboot can initialize the GPU of some mainboards.

	  After initializing the GPU, the information about it can be passed to the payload.
	  Provide an option rom that implements this legacy VGA BIOS compatibility requirement.

config PAYLOAD_CONFIGFILE
	string "SeaBIOS config file"
	default ""
	help
	  This option allows a platform to set Kconfig options for a basic
	  SeaBIOS payload.  In general, if the option is used, the default
	  would be "$(top)/src/mainboard/$(MAINBOARDDIR)/config_seabios"

config SEABIOS_BOOTORDER_FILE
	string "SeaBIOS bootorder file"
	default ""
	help
	  Add a SeaBIOS bootorder file.  From the wiki:
	  "The bootorder file may be used to configure the boot up order. The file
	  should be ASCII text and contain one line per boot method. The description
	  of each boot method follows an Open Firmware device path format. SeaBIOS
	  will attempt to boot from each item in the file - first line of the file
	  first."

	  See: https://www.coreboot.org/SeaBIOS#Configuring_boot_order

	  If used, a typical value would be:
	    $(top)/src/mainboard/$(MAINBOARDDIR)/bootorder

config SEABIOS_ADD_SERCON_PORT_FILE
	prompt "Add SeaBIOS sercon-port file to CBFS"
	default n
	bool
	help
	  Select this option to enable SeaBIOS' VGA adapter emulation
	  on serial port.

config SEABIOS_SERCON_PORT_ADDR
	hex "SeaBIOS sercon-port base address"
	depends on SEABIOS_ADD_SERCON_PORT_FILE
	default TTYS0_BASE
	help
	  Set this field to the IO address of a serial port for SeaBIOS' VGA
	  adapter emulation.

	  By default primary console UART defined by TTYS0_BASE is used.

config PAYLOAD_VGABIOS_FILE
	string
	depends on SEABIOS_VGA_COREBOOT
	default "payloads/external/SeaBIOS/seabios/out/vgabios.bin"

config SEABIOS_DEBUG_LEVEL
	int "SeaBIOS debug level (verbosity)"
	default -1
	help
	  The higher the number, the more verbose SeaBIOS will be. See the table
	  below for the current values corresponding to various items as of SeaBIOS
	  version 1.10.1. Set this value to -1 to use SeaBIOS' default.

	  Output at various SeaBIOS log levels:
	  level 0  - Logging disabled
	  level 1  - Basic output, interrupts 5, 18h, 19h, 40h, SMP, PNP, PMM
	  level 2  - AHCI, Floppy, Basic ps2, interrupts 11h, 12h, 14h, 17h
	  level 3  - bootsplash, initializations, SeaBIOS VGA BIOS interrupts
	  level 4  - BIOS tables, more optionrom
	  level 5  - Extra bootsplash, more XHCI
	  level 6  - ATA commands, extra optionrom
	  level 7  - extra ps2 commands, more OHCI & EHCI
	  level 8  - extra malloc info, more AHCI
	  level 9  - interrupts 15h, 16h, 1ah, APM, PCI, SMIs, PCIBIOS,
	             USB-HID commands, SDcard commands, Floppy commands
	  level 10 - interrupt 13h (Drives other than floppy)
	  level 20 - interrupt 10h (Display)

comment "Using default SeaBIOS log level"
	depends on SEABIOS_DEBUG_LEVEL = -1

comment "SeaBIOS logging disabled"
	depends on SEABIOS_DEBUG_LEVEL = 0

endif