Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvar...
[linux-2.6-microblaze.git] / fs / pstore / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config 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
17 config 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
26 config 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
33 config 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
40 config 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
47 config 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
54 config 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
61 config 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
68 choice
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
99 endchoice
100
101 config 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
111 config 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
118 config 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
128 config 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
141 config 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
157 config PSTORE_ZONE
158         tristate
159         depends on PSTORE
160         help
161           The common layer for pstore/blk (and pstore/ram in the future)
162           to manage storage in zones.
163
164 config PSTORE_BLK
165         tristate "Log panic/oops to a block device"
166         depends on PSTORE
167         depends on BLOCK
168         select PSTORE_ZONE
169         default n
170         help
171           This enables panic and oops message to be logged to a block dev
172           where it can be read back at some later point.
173
174           For more information, see Documentation/admin-guide/pstore-blk.rst
175
176           If unsure, say N.
177
178 config PSTORE_BLK_BLKDEV
179         string "block device identifier"
180         depends on PSTORE_BLK
181         default ""
182         help
183           Which block device should be used for pstore/blk.
184
185           It accepts the following variants:
186           1) <hex_major><hex_minor> device number in hexadecimal representation,
187              with no leading 0x, for example b302.
188           2) /dev/<disk_name> represents the device name of disk
189           3) /dev/<disk_name><decimal> represents the device name and number
190              of partition - device number of disk plus the partition number
191           4) /dev/<disk_name>p<decimal> - same as the above, this form is
192              used when disk name of partitioned disk ends with a digit.
193           5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
194              unique id of a partition if the partition table provides it.
195              The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
196              partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
197              filled hex representation of the 32-bit "NT disk signature", and PP
198              is a zero-filled hex representation of the 1-based partition number.
199           6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
200              to a partition with a known unique id.
201           7) <major>:<minor> major and minor number of the device separated by
202              a colon.
203
204           NOTE that, both Kconfig and module parameters can configure
205           pstore/blk, but module parameters have priority over Kconfig.
206
207 config PSTORE_BLK_KMSG_SIZE
208         int "Size in Kbytes of kmsg dump log to store"
209         depends on PSTORE_BLK
210         default 64
211         help
212           This just sets size of kmsg dump (oops, panic, etc) log for
213           pstore/blk. The size is in KB and must be a multiple of 4.
214
215           NOTE that, both Kconfig and module parameters can configure
216           pstore/blk, but module parameters have priority over Kconfig.
217
218 config PSTORE_BLK_MAX_REASON
219         int "Maximum kmsg dump reason to store"
220         depends on PSTORE_BLK
221         default 2
222         help
223           The maximum reason for kmsg dumps to store. The default is
224           2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
225           enum kmsg_dump_reason for more details.
226
227           NOTE that, both Kconfig and module parameters can configure
228           pstore/blk, but module parameters have priority over Kconfig.
229
230 config PSTORE_BLK_PMSG_SIZE
231         int "Size in Kbytes of pmsg to store"
232         depends on PSTORE_BLK
233         depends on PSTORE_PMSG
234         default 64
235         help
236           This just sets size of pmsg (pmsg_size) for pstore/blk. The size is
237           in KB and must be a multiple of 4.
238
239           NOTE that, both Kconfig and module parameters can configure
240           pstore/blk, but module parameters have priority over Kconfig.
241
242 config PSTORE_BLK_CONSOLE_SIZE
243         int "Size in Kbytes of console log to store"
244         depends on PSTORE_BLK
245         depends on PSTORE_CONSOLE
246         default 64
247         help
248           This just sets size of console log (console_size) to store via
249           pstore/blk. The size is in KB and must be a multiple of 4.
250
251           NOTE that, both Kconfig and module parameters can configure
252           pstore/blk, but module parameters have priority over Kconfig.
253
254 config PSTORE_BLK_FTRACE_SIZE
255         int "Size in Kbytes of ftrace log to store"
256         depends on PSTORE_BLK
257         depends on PSTORE_FTRACE
258         default 64
259         help
260           This just sets size of ftrace log (ftrace_size) for pstore/blk. The
261           size is in KB and must be a multiple of 4.
262
263           NOTE that, both Kconfig and module parameters can configure
264           pstore/blk, but module parameters have priority over Kconfig.