xref: /freebsd/sys/contrib/device-tree/Bindings/reserved-memory/ramoops.txt (revision 2eb4d8dc723da3cf7d735a3226ae49da4c8c5dbc)
1c66ec88fSEmmanuel VadotRamoops oops/panic logger
2c66ec88fSEmmanuel Vadot=========================
3c66ec88fSEmmanuel Vadot
4c66ec88fSEmmanuel Vadotramoops provides persistent RAM storage for oops and panics, so they can be
5c66ec88fSEmmanuel Vadotrecovered after a reboot. This is a child-node of "/reserved-memory", and
6c66ec88fSEmmanuel Vadotis named "ramoops" after the backend, rather than "pstore" which is the
7c66ec88fSEmmanuel Vadotsubsystem.
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel VadotParts of this storage may be set aside for other persistent log buffers, such
10c66ec88fSEmmanuel Vadotas kernel log messages, or for optional ECC error-correction data.  The total
11c66ec88fSEmmanuel Vadotsize of these optional buffers must fit in the reserved region.
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel VadotAny remaining space will be used for a circular buffer of oops and panic
14c66ec88fSEmmanuel Vadotrecords.  These records have a configurable size, with a size of 0 indicating
15c66ec88fSEmmanuel Vadotthat they should be disabled.
16c66ec88fSEmmanuel Vadot
17c66ec88fSEmmanuel VadotAt least one of "record-size", "console-size", "ftrace-size", or "pmsg-size"
18c66ec88fSEmmanuel Vadotmust be set non-zero, but are otherwise optional as listed below.
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel VadotRequired properties:
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot- compatible: must be "ramoops"
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot- reg: region of memory that is preserved between reboots
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel VadotOptional properties:
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadot- ecc-size: enables ECC support and specifies ECC buffer size in bytes
31c66ec88fSEmmanuel Vadot  (defaults to 0: no ECC)
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot- record-size: maximum size in bytes of each kmsg dump.
34c66ec88fSEmmanuel Vadot  (defaults to 0: disabled)
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot- console-size: size in bytes of log buffer reserved for kernel messages
37c66ec88fSEmmanuel Vadot  (defaults to 0: disabled)
38c66ec88fSEmmanuel Vadot
39c66ec88fSEmmanuel Vadot- ftrace-size: size in bytes of log buffer reserved for function tracing and
40c66ec88fSEmmanuel Vadot  profiling (defaults to 0: disabled)
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot- pmsg-size: size in bytes of log buffer reserved for userspace messages
43c66ec88fSEmmanuel Vadot  (defaults to 0: disabled)
44c66ec88fSEmmanuel Vadot
45*2eb4d8dcSEmmanuel Vadot- mem-type: if present, sets the type of mapping is to be used to map the
46*2eb4d8dcSEmmanuel Vadot  reserved region. mem-type: 0 = write-combined (default), 1 = unbuffered,
47*2eb4d8dcSEmmanuel Vadot  2 = cached.
48*2eb4d8dcSEmmanuel Vadot
49*2eb4d8dcSEmmanuel Vadot- unbuffered: deprecated, use mem_type instead. If present, and mem_type is
50*2eb4d8dcSEmmanuel Vadot  not specified, it is equivalent to mem_type = 1 and uses unbuffered mappings
51*2eb4d8dcSEmmanuel Vadot  to map the reserved region (defaults to buffered mappings mem_type = 0). If
52*2eb4d8dcSEmmanuel Vadot  both are specified -- "mem_type" overrides "unbuffered".
53c66ec88fSEmmanuel Vadot
54c66ec88fSEmmanuel Vadot- max-reason: if present, sets maximum type of kmsg dump reasons to store
55c66ec88fSEmmanuel Vadot  (defaults to 2: log Oopses and Panics). This can be set to INT_MAX to
56c66ec88fSEmmanuel Vadot  store all kmsg dumps. See include/linux/kmsg_dump.h KMSG_DUMP_* for other
57c66ec88fSEmmanuel Vadot  kmsg dump reason values. Setting this to 0 (KMSG_DUMP_UNDEF), means the
58c66ec88fSEmmanuel Vadot  reason filtering will be controlled by the printk.always_kmsg_dump boot
59c66ec88fSEmmanuel Vadot  param: if unset, it will be KMSG_DUMP_OOPS, otherwise KMSG_DUMP_MAX.
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot- no-dump-oops: deprecated, use max_reason instead. If present, and
62c66ec88fSEmmanuel Vadot  max_reason is not specified, it is equivalent to max_reason = 1
63c66ec88fSEmmanuel Vadot  (KMSG_DUMP_PANIC).
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot- flags: if present, pass ramoops behavioral flags (defaults to 0,
66c66ec88fSEmmanuel Vadot  see include/linux/pstore_ram.h RAMOOPS_FLAG_* for flag values).
67