# 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
	select RT_MUTEXES
	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
	depends on BROKEN
	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.

	  For more information, see Documentation/admin-guide/pstore-blk.rst

	  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) <hex_major><hex_minor> device number in hexadecimal representation,
	     with no leading 0x, for example b302.
	  2) /dev/<disk_name> represents the device name of disk
	  3) /dev/<disk_name><decimal> represents the device name and number
	     of partition - device number of disk plus the partition number
	  4) /dev/<disk_name>p<decimal> - 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=<UUID>/PARTNROFF=<int> to select a partition in relation
	     to a partition with a known unique id.
	  7) <major>:<minor> 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.
