xref: /openbmc/linux/fs/pstore/Kconfig (revision 37744fee)
1# SPDX-License-Identifier: GPL-2.0-only
2config PSTORE
3	tristate "Persistent store support"
4	select CRYPTO if PSTORE_COMPRESS
5	default n
6	help
7	   This option enables generic access to platform level
8	   persistent storage via "pstore" filesystem that can
9	   be mounted as /dev/pstore.  Only useful if you have
10	   a platform level driver that registers with pstore to
11	   provide the data, so you probably should just go say "Y"
12	   (or "M") to a platform specific persistent store driver
13	   (e.g. ACPI_APEI on X86) which will select this for you.
14	   If you don't have a platform persistent store driver,
15	   say N.
16
17config PSTORE_DEFLATE_COMPRESS
18	tristate "DEFLATE (ZLIB) compression"
19	default y
20	depends on PSTORE
21	select CRYPTO_DEFLATE
22	help
23	  This option enables DEFLATE (also known as ZLIB) compression
24	  algorithm support.
25
26config PSTORE_LZO_COMPRESS
27	tristate "LZO compression"
28	depends on PSTORE
29	select CRYPTO_LZO
30	help
31	  This option enables LZO compression algorithm support.
32
33config PSTORE_LZ4_COMPRESS
34	tristate "LZ4 compression"
35	depends on PSTORE
36	select CRYPTO_LZ4
37	help
38	  This option enables LZ4 compression algorithm support.
39
40config PSTORE_LZ4HC_COMPRESS
41	tristate "LZ4HC compression"
42	depends on PSTORE
43	select CRYPTO_LZ4HC
44	help
45	  This option enables LZ4HC (high compression) mode algorithm.
46
47config PSTORE_842_COMPRESS
48	bool "842 compression"
49	depends on PSTORE
50	select CRYPTO_842
51	help
52	  This option enables 842 compression algorithm support.
53
54config PSTORE_ZSTD_COMPRESS
55	bool "zstd compression"
56	depends on PSTORE
57	select CRYPTO_ZSTD
58	help
59	  This option enables zstd compression algorithm support.
60
61config PSTORE_COMPRESS
62	def_bool y
63	depends on PSTORE
64	depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||	\
65		   PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS ||	\
66		   PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
67
68choice
69	prompt "Default pstore compression algorithm"
70	depends on PSTORE_COMPRESS
71	help
72	  This option chooses the default active compression algorithm.
73	  This change be changed at boot with "pstore.compress=..." on
74	  the kernel command line.
75
76	  Currently, pstore has support for 6 compression algorithms:
77	  deflate, lzo, lz4, lz4hc, 842 and zstd.
78
79	  The default compression algorithm is deflate.
80
81	config PSTORE_DEFLATE_COMPRESS_DEFAULT
82		bool "deflate" if PSTORE_DEFLATE_COMPRESS
83
84	config PSTORE_LZO_COMPRESS_DEFAULT
85		bool "lzo" if PSTORE_LZO_COMPRESS
86
87	config PSTORE_LZ4_COMPRESS_DEFAULT
88		bool "lz4" if PSTORE_LZ4_COMPRESS
89
90	config PSTORE_LZ4HC_COMPRESS_DEFAULT
91		bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
92
93	config PSTORE_842_COMPRESS_DEFAULT
94		bool "842" if PSTORE_842_COMPRESS
95
96	config PSTORE_ZSTD_COMPRESS_DEFAULT
97		bool "zstd" if PSTORE_ZSTD_COMPRESS
98
99endchoice
100
101config PSTORE_COMPRESS_DEFAULT
102	string
103	depends on PSTORE_COMPRESS
104	default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
105	default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
106	default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
107	default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
108	default "842" if PSTORE_842_COMPRESS_DEFAULT
109	default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
110
111config PSTORE_CONSOLE
112	bool "Log kernel console messages"
113	depends on PSTORE
114	help
115	  When the option is enabled, pstore will log all kernel
116	  messages, even if no oops or panic happened.
117
118config PSTORE_PMSG
119	bool "Log user space messages"
120	depends on PSTORE
121	help
122	  When the option is enabled, pstore will export a character
123	  interface /dev/pmsg0 to log user space messages. On reboot
124	  data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID].
125
126	  If unsure, say N.
127
128config PSTORE_FTRACE
129	bool "Persistent function tracer"
130	depends on PSTORE
131	depends on FUNCTION_TRACER
132	depends on DEBUG_FS
133	help
134	  With this option kernel traces function calls into a persistent
135	  ram buffer that can be decoded and dumped after reboot through
136	  pstore filesystem. It can be used to determine what function
137	  was last called before a reset or panic.
138
139	  If unsure, say N.
140
141config PSTORE_RAM
142	tristate "Log panic/oops to a RAM buffer"
143	depends on PSTORE
144	depends on HAS_IOMEM
145	select REED_SOLOMON
146	select REED_SOLOMON_ENC8
147	select REED_SOLOMON_DEC8
148	help
149	  This enables panic and oops messages to be logged to a circular
150	  buffer in RAM where it can be read back at some later point.
151
152	  Note that for historical reasons, the module will be named
153	  "ramoops.ko".
154
155	  For more information, see Documentation/admin-guide/ramoops.rst.
156