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