Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0-only
config CONFIG_PSTORE
	tristate "Persistent store support"
	select CONFIG_CRYPTO if CONFIG_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. CONFIG_ACPI_APEI on CONFIG_X86) which will select this for you.
	   If you don't have a platform persistent store driver,
	   say N.

config CONFIG_PSTORE_DEFLATE_COMPRESS
	tristate "DEFLATE (ZLIB) compression"
	default y
	depends on CONFIG_PSTORE
	select CONFIG_CRYPTO_DEFLATE
	help
	  This option enables DEFLATE (also known as ZLIB) compression
	  algorithm support.

config CONFIG_PSTORE_LZO_COMPRESS
	tristate "LZO compression"
	depends on CONFIG_PSTORE
	select CONFIG_CRYPTO_LZO
	help
	  This option enables LZO compression algorithm support.

config CONFIG_PSTORE_LZ4_COMPRESS
	tristate "LZ4 compression"
	depends on CONFIG_PSTORE
	select CONFIG_CRYPTO_LZ4
	help
	  This option enables LZ4 compression algorithm support.

config CONFIG_PSTORE_LZ4HC_COMPRESS
	tristate "LZ4HC compression"
	depends on CONFIG_PSTORE
	select CONFIG_CRYPTO_LZ4HC
	help
	  This option enables LZ4HC (high compression) mode algorithm.

config CONFIG_PSTORE_842_COMPRESS
	bool "842 compression"
	depends on CONFIG_PSTORE
	select CONFIG_CRYPTO_842
	help
	  This option enables 842 compression algorithm support.

config CONFIG_PSTORE_ZSTD_COMPRESS
	bool "zstd compression"
	depends on CONFIG_PSTORE
	select CONFIG_CRYPTO_ZSTD
	help
	  This option enables zstd compression algorithm support.

config CONFIG_PSTORE_COMPRESS
	def_bool y
	depends on CONFIG_PSTORE
	depends on CONFIG_PSTORE_DEFLATE_COMPRESS || CONFIG_PSTORE_LZO_COMPRESS ||	\
		   CONFIG_PSTORE_LZ4_COMPRESS || CONFIG_PSTORE_LZ4HC_COMPRESS ||	\
		   CONFIG_PSTORE_842_COMPRESS || CONFIG_PSTORE_ZSTD_COMPRESS

choice
	prompt "Default pstore compression algorithm"
	depends on CONFIG_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 CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT
		bool "deflate" if CONFIG_PSTORE_DEFLATE_COMPRESS

	config CONFIG_PSTORE_LZO_COMPRESS_DEFAULT
		bool "lzo" if CONFIG_PSTORE_LZO_COMPRESS

	config CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT
		bool "lz4" if CONFIG_PSTORE_LZ4_COMPRESS

	config CONFIG_PSTORE_LZ4HC_COMPRESS_DEFAULT
		bool "lz4hc" if CONFIG_PSTORE_LZ4HC_COMPRESS

	config CONFIG_PSTORE_842_COMPRESS_DEFAULT
		bool "842" if CONFIG_PSTORE_842_COMPRESS

	config CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT
		bool "zstd" if CONFIG_PSTORE_ZSTD_COMPRESS

endchoice

config CONFIG_PSTORE_COMPRESS_DEFAULT
	string
	depends on CONFIG_PSTORE_COMPRESS
	default "deflate" if CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT
	default "lzo" if CONFIG_PSTORE_LZO_COMPRESS_DEFAULT
	default "lz4" if CONFIG_PSTORE_LZ4_COMPRESS_DEFAULT
	default "lz4hc" if CONFIG_PSTORE_LZ4HC_COMPRESS_DEFAULT
	default "842" if CONFIG_PSTORE_842_COMPRESS_DEFAULT
	default "zstd" if CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT

config CONFIG_PSTORE_CONSOLE
	bool "Log kernel console messages"
	depends on CONFIG_PSTORE
	help
	  When the option is enabled, pstore will log all kernel
	  messages, even if no oops or panic happened.

config CONFIG_PSTORE_PMSG
	bool "Log user space messages"
	depends on CONFIG_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 CONFIG_PSTORE_FTRACE
	bool "Persistent function tracer"
	depends on CONFIG_PSTORE
	depends on CONFIG_FUNCTION_TRACER
	depends on CONFIG_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 CONFIG_PSTORE_RAM
	tristate "Log panic/oops to a RAM buffer"
	depends on CONFIG_PSTORE
	depends on CONFIG_HAS_IOMEM
	select CONFIG_REED_SOLOMON
	select CONFIG_REED_SOLOMON_ENC8
	select CONFIG_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.