# SPDX-License-Identifier: GPL-2.0-only config PSTORE tristate "Persistent store support" select CRYPTO if PSTORE_COMPRESS default n help This option enables generic access to platform level persistent storage via "pstore" filesystem that can be mounted as /dev/pstore. Only useful if you have a platform level driver that registers with pstore to provide the data, so you probably should just go say "Y" (or "M") to a platform specific persistent store driver (e.g. ACPI_APEI on X86) which will select this for you. If you don't have a platform persistent store driver, say N. config PSTORE_DEFLATE_COMPRESS tristate "DEFLATE (ZLIB) compression" default y depends on PSTORE select CRYPTO_DEFLATE help This option enables DEFLATE (also known as ZLIB) compression algorithm support. config PSTORE_LZO_COMPRESS tristate "LZO compression" depends on PSTORE select CRYPTO_LZO help This option enables LZO compression algorithm support. config PSTORE_LZ4_COMPRESS tristate "LZ4 compression" depends on PSTORE select CRYPTO_LZ4 help This option enables LZ4 compression algorithm support. config PSTORE_LZ4HC_COMPRESS tristate "LZ4HC compression" depends on PSTORE select CRYPTO_LZ4HC help This option enables LZ4HC (high compression) mode algorithm. config PSTORE_842_COMPRESS bool "842 compression" depends on PSTORE select CRYPTO_842 help This option enables 842 compression algorithm support. config PSTORE_ZSTD_COMPRESS bool "zstd compression" depends on PSTORE select CRYPTO_ZSTD help This option enables zstd compression algorithm support. config PSTORE_COMPRESS def_bool y depends on PSTORE depends on PSTORE_DEFLATE_COMPRESS || PSTORE_LZO_COMPRESS || \ PSTORE_LZ4_COMPRESS || PSTORE_LZ4HC_COMPRESS || \ PSTORE_842_COMPRESS || PSTORE_ZSTD_COMPRESS choice prompt "Default pstore compression algorithm" depends on PSTORE_COMPRESS help This option chooses the default active compression algorithm. This change be changed at boot with "pstore.compress=..." on the kernel command line. Currently, pstore has support for 6 compression algorithms: deflate, lzo, lz4, lz4hc, 842 and zstd. The default compression algorithm is deflate. config PSTORE_DEFLATE_COMPRESS_DEFAULT bool "deflate" if PSTORE_DEFLATE_COMPRESS config PSTORE_LZO_COMPRESS_DEFAULT bool "lzo" if PSTORE_LZO_COMPRESS config PSTORE_LZ4_COMPRESS_DEFAULT bool "lz4" if PSTORE_LZ4_COMPRESS config PSTORE_LZ4HC_COMPRESS_DEFAULT bool "lz4hc" if PSTORE_LZ4HC_COMPRESS config PSTORE_842_COMPRESS_DEFAULT bool "842" if PSTORE_842_COMPRESS config PSTORE_ZSTD_COMPRESS_DEFAULT bool "zstd" if PSTORE_ZSTD_COMPRESS endchoice config PSTORE_COMPRESS_DEFAULT string depends on PSTORE_COMPRESS default "deflate" if PSTORE_DEFLATE_COMPRESS_DEFAULT default "lzo" if PSTORE_LZO_COMPRESS_DEFAULT default "lz4" if PSTORE_LZ4_COMPRESS_DEFAULT default "lz4hc" if PSTORE_LZ4HC_COMPRESS_DEFAULT default "842" if PSTORE_842_COMPRESS_DEFAULT default "zstd" if PSTORE_ZSTD_COMPRESS_DEFAULT config PSTORE_CONSOLE bool "Log kernel console messages" depends on PSTORE help When the option is enabled, pstore will log all kernel messages, even if no oops or panic happened. config PSTORE_PMSG bool "Log user space messages" depends on PSTORE help When the option is enabled, pstore will export a character interface /dev/pmsg0 to log user space messages. On reboot data can be retrieved from /sys/fs/pstore/pmsg-ramoops-[ID]. If unsure, say N. config PSTORE_FTRACE bool "Persistent function tracer" depends on PSTORE depends on FUNCTION_TRACER depends on DEBUG_FS help With this option kernel traces function calls into a persistent ram buffer that can be decoded and dumped after reboot through pstore filesystem. It can be used to determine what function was last called before a reset or panic. If unsure, say N. config PSTORE_RAM tristate "Log panic/oops to a RAM buffer" depends on PSTORE depends on HAS_IOMEM select REED_SOLOMON select REED_SOLOMON_ENC8 select REED_SOLOMON_DEC8 help This enables panic and oops messages to be logged to a circular buffer in RAM where it can be read back at some later point. Note that for historical reasons, the module will be named "ramoops.ko". For more information, see Documentation/admin-guide/ramoops.rst. config PSTORE_ZONE tristate depends on PSTORE help The common layer for pstore/blk (and pstore/ram in the future) to manage storage in zones. config PSTORE_BLK tristate "Log panic/oops to a block device" depends on PSTORE depends on BLOCK select PSTORE_ZONE default n help This enables panic and oops message to be logged to a block dev where it can be read back at some later point. If unsure, say N. config PSTORE_BLK_BLKDEV string "block device identifier" depends on PSTORE_BLK default "" help Which block device should be used for pstore/blk. It accepts the following variants: 1) device number in hexadecimal representation, with no leading 0x, for example b302. 2) /dev/ represents the device name of disk 3) /dev/ represents the device name and number of partition - device number of disk plus the partition number 4) /dev/p - same as the above, this form is used when disk name of partitioned disk ends with a digit. 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the unique id of a partition if the partition table provides it. The UUID may be either an EFI/GPT UUID, or refer to an MSDOS partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero- filled hex representation of the 32-bit "NT disk signature", and PP is a zero-filled hex representation of the 1-based partition number. 6) PARTUUID=/PARTNROFF= to select a partition in relation to a partition with a known unique id. 7) : major and minor number of the device separated by a colon. NOTE that, both Kconfig and module parameters can configure pstore/blk, but module parameters have priority over Kconfig. config PSTORE_BLK_KMSG_SIZE int "Size in Kbytes of kmsg dump log to store" depends on PSTORE_BLK default 64 help This just sets size of kmsg dump (oops, panic, etc) log for pstore/blk. The size is in KB and must be a multiple of 4. NOTE that, both Kconfig and module parameters can configure pstore/blk, but module parameters have priority over Kconfig. config PSTORE_BLK_MAX_REASON int "Maximum kmsg dump reason to store" depends on PSTORE_BLK default 2 help The maximum reason for kmsg dumps to store. The default is 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's enum kmsg_dump_reason for more details. NOTE that, both Kconfig and module parameters can configure pstore/blk, but module parameters have priority over Kconfig. config PSTORE_BLK_PMSG_SIZE int "Size in Kbytes of pmsg to store" depends on PSTORE_BLK depends on PSTORE_PMSG default 64 help This just sets size of pmsg (pmsg_size) for pstore/blk. The size is in KB and must be a multiple of 4. NOTE that, both Kconfig and module parameters can configure pstore/blk, but module parameters have priority over Kconfig. config PSTORE_BLK_CONSOLE_SIZE int "Size in Kbytes of console log to store" depends on PSTORE_BLK depends on PSTORE_CONSOLE default 64 help This just sets size of console log (console_size) to store via pstore/blk. The size is in KB and must be a multiple of 4. NOTE that, both Kconfig and module parameters can configure pstore/blk, but module parameters have priority over Kconfig. config PSTORE_BLK_FTRACE_SIZE int "Size in Kbytes of ftrace log to store" depends on PSTORE_BLK depends on PSTORE_FTRACE default 64 help This just sets size of ftrace log (ftrace_size) for pstore/blk. The size is in KB and must be a multiple of 4. NOTE that, both Kconfig and module parameters can configure pstore/blk, but module parameters have priority over Kconfig.