1config PSTORE
2	tristate "Persistent store support"
3	select CRYPTO if PSTORE_COMPRESS
4	default n
5	help
6	   This option enables generic access to platform level
7	   persistent storage via "pstore" filesystem that can
8	   be mounted as /dev/pstore.  Only useful if you have
9	   a platform level driver that registers with pstore to
10	   provide the data, so you probably should just go say "Y"
11	   (or "M") to a platform specific persistent store driver
12	   (e.g. ACPI_APEI on X86) which will select this for you.
13	   If you don't have a platform persistent store driver,
14	   say N.
15
16config PSTORE_DEFLATE_COMPRESS
17	tristate "DEFLATE (ZLIB) compression"
18	default y
19	depends on PSTORE
20	select CRYPTO_DEFLATE
21	help
22	  This option enables DEFLATE (also known as ZLIB) compression
23	  algorithm support.
24
25config PSTORE_LZO_COMPRESS
26	tristate "LZO compression"
27	depends on PSTORE
28	select CRYPTO_LZO
29	help
30	  This option enables LZO compression algorithm support.
31
32config PSTORE_LZ4_COMPRESS
33	tristate "LZ4 compression"
34	depends on PSTORE
35	select CRYPTO_LZ4
36	help
37	  This option enables LZ4 compression algorithm support.
38
39config PSTORE_LZ4HC_COMPRESS
40	tristate "LZ4HC compression"
41	depends on PSTORE
42	select CRYPTO_LZ4HC
43	help
44	  This option enables LZ4HC (high compression) mode algorithm.
45
46config PSTORE_842_COMPRESS
47	bool "842 compression"
48	depends on PSTORE
49	select CRYPTO_842
50	help
51	  This option enables 842 compression algorithm support.
52
53config PSTORE_ZSTD_COMPRESS
54	bool "zstd compression"
55	depends on PSTORE
56	select CRYPTO_ZSTD
57	help
58	  This option enables zstd compression algorithm support.
59
60config PSTORE_COMPRESS
61	def_bool y
62	depends on PSTORE
63	depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS ||	\
64		   PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS ||	\
65		   PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS
66
67choice
68	prompt "Default pstore compression algorithm"
69	depends on PSTORE_COMPRESS
70	help
71	  This option chooses the default active compression algorithm.
72	  This change be changed at boot with "pstore.compress=..." on
73	  the kernel command line.
74
75	  Currently, pstore has support for 6 compression algorithms:
76	  deflate, lzo, lz4, lz4hc, 842 and zstd.
77
78	  The default compression algorithm is deflate.
79
80	config PSTORE_DEFLATE_COMPRESS_DEFAULT
81		bool "deflate" if PSTORE_DEFLATE_COMPRESS
82
83	config PSTORE_LZO_COMPRESS_DEFAULT
84		bool "lzo" if PSTORE_LZO_COMPRESS
85
86	config PSTORE_LZ4_COMPRESS_DEFAULT
87		bool "lz4" if PSTORE_LZ4_COMPRESS
88
89	config PSTORE_LZ4HC_COMPRESS_DEFAULT
90		bool "lz4hc" if PSTORE_LZ4HC_COMPRESS
91
92	config PSTORE_842_COMPRESS_DEFAULT
93		bool "842" if PSTORE_842_COMPRESS
94
95	config PSTORE_ZSTD_COMPRESS_DEFAULT
96		bool "zstd" if PSTORE_ZSTD_COMPRESS
97
98endchoice
99
100config PSTORE_COMPRESS_DEFAULT
101	string
102	depends on PSTORE_COMPRESS
103	default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT
104	default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT
105	default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT
106	default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT
107	default "842" if PSTORE_842_COMPRESS_DEFAULT
108	default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT
109
110config PSTORE_CONSOLE
111	bool "Log kernel console messages"
112	depends on PSTORE
113	help
114	  When the option is enabled, pstore will log all kernel
115	  messages, even if no oops or panic happened.
116
117config PSTORE_PMSG
118	bool "Log user space messages"
119	depends on PSTORE
120	select RT_MUTEXES
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	depends on HAVE_MEMBLOCK
146	select REED_SOLOMON
147	select REED_SOLOMON_ENC8
148	select REED_SOLOMON_DEC8
149	help
150	  This enables panic and oops messages to be logged to a circular
151	  buffer in RAM where it can be read back at some later point.
152
153	  Note that for historical reasons, the module will be named
154	  "ramoops.ko".
155
156	  For more information, see Documentation/admin-guide/ramoops.rst.
157