# SPDX-License-Identifier: GPL-2.0-only

# -----------------------------------------------------------------
entries

# Bank: 1
# -----------------------------------------------------------------
0	120	r	0	reserved_memory

# -----------------------------------------------------------------
# coreboot config options: ramtop
304	80	h	0	ramtop

# RTC_BOOT_BYTE (coreboot hardcoded)
384	1	e	2	boot_option
388	4	h	0	reboot_counter

# -----------------------------------------------------------------
# coreboot config options: console
395	4	e	3	debug_level
# coreboot config options: cpu
#400	8	r	0	reserved for century byte
408	1	e	1	hyper_threading
416	1	e	1	vtd
424	2	e	7	power_profile
432	1	e	5	me_state
440	4	h	0	me_state_counter

# coreboot config options: Devices
504	1	e	1	wireless
512	1	e	1	webcam
520	1	e	1	microphone
528	1	e	1	legacy_8254_timer
536	1	e	1	pci_hot_plug

# coreboot config options: EC
600	3	e	4	kbl_timeout
608	1	e	1	fn_ctrl_swap
616	2	e	8	max_charge
624	2	e	9	fan_mode
632	1	e	1	mirror_flag
640	4	h	0	mirror_flag_counter

# coreboot config options: check sums
984	16	h	0	check_sum

# Bank: 2
# embedded controller settings (outside the checksummed area)
1024	8	h	1	fn_lock_state
1032	8	h	1	trackpad_state
1040	8	h	10	kbl_brightness
1048	8	h	1	kbl_state

# -----------------------------------------------------------------

enumerations

#ID	value	text
1	0	Disable
1	1	Enable

2	0	Fallback
2	1	Normal

3	0	Emergency
3	1	Alert
3	2	Critical
3	3	Error
3	4	Warning
3	5	Notice
3	6	Info
3	7	Debug
3	8	Spew

4	0	30 seconds
4	1	1 minute
4	2	3 minutes
4	3	5 minutes
4	4	Never

5	0	Enable
5	1	Disable

6	0	Disable
6	1	Enable
6	2	Keep

7	0	Power Saver
7	1	Balanced
7	2	Performance

8	0	100%
8	1	80%
8	2	60%

9	0	Normal
9	1	Aggressive
9	2	Quiet

10	0	Off
10	1	Low
10	2	High
10	3	On

# -----------------------------------------------------------------
checksums

checksum 392 983 984
