| # SPDX-License-Identifier: GPL-2.0-only | 
 | config PSTORE | 
 | 	tristate "Persistent store support" | 
 | 	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_DEFAULT_KMSG_BYTES | 
 | 	int "Default kernel log storage space" if EXPERT | 
 | 	depends on PSTORE | 
 | 	default "10240" | 
 | 	help | 
 | 	  Defines default size of pstore kernel log storage. | 
 | 	  Can be enlarged if needed, not recommended to shrink it. | 
 |  | 
 | config PSTORE_COMPRESS | 
 | 	bool "Pstore compression (deflate)" | 
 | 	depends on PSTORE | 
 | 	select ZLIB_INFLATE | 
 | 	select ZLIB_DEFLATE | 
 | 	default y | 
 | 	help | 
 | 	  Whether pstore records should be compressed before being written to | 
 | 	  the backing store. This is implemented using the zlib 'deflate' | 
 | 	  algorithm, using the library implementation instead of using the full | 
 | 	  blown crypto API. This reduces the risk of secondary oopses or other | 
 | 	  problems while pstore is recording panic metadata. | 
 |  | 
 | 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 | 
 | 	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. |