# 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 
 | 
    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. 
 | 
  
 | 
config PSTORE_BOOT_LOG 
 | 
    bool "Print boot log by linux" 
 | 
    depends on PSTORE 
 | 
    help 
 | 
      Collect log from loader,uboot,ATF and so on, you can get their log by cat command 
 | 
      through linux shell 
 | 
      If unsure, say N. 
 |