| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/reserved-memory/ramoops.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: Ramoops oops/panic logger
- description: |
- ramoops provides persistent RAM storage for oops and panics, so they can be
- recovered after a reboot. This is a child-node of "/reserved-memory", and
- is named "ramoops" after the backend, rather than "pstore" which is the
- subsystem.
- Parts of this storage may be set aside for other persistent log buffers, such
- as kernel log messages, or for optional ECC error-correction data. The total
- size of these optional buffers must fit in the reserved region.
- Any remaining space will be used for a circular buffer of oops and panic
- records. These records have a configurable size, with a size of 0 indicating
- that they should be disabled.
- At least one of "record-size", "console-size", "ftrace-size", or "pmsg-size"
- must be set non-zero, but are otherwise optional as listed below.
- maintainers:
- - Kees Cook <keescook@chromium.org>
- allOf:
- - $ref: reserved-memory.yaml
- properties:
- compatible:
- const: ramoops
- reg:
- description: region of memory that is preserved between reboots
- ecc-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: enables ECC support and specifies ECC buffer size in bytes
- default: 0 # no ECC
- record-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: maximum size in bytes of each kmsg dump
- default: 0
- console-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: size in bytes of log buffer reserved for kernel messages
- default: 0
- ftrace-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: size in bytes of log buffer reserved for function tracing and profiling
- default: 0
- pmsg-size:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: size in bytes of log buffer reserved for userspace messages
- default: 0
- mem-type:
- $ref: /schemas/types.yaml#/definitions/uint32
- description: if present, sets the type of mapping is to be used to map the reserved region.
- default: 0
- oneOf:
- - const: 0
- description: write-combined
- - const: 1
- description: unbuffered
- - const: 2
- description: cached
- max-reason:
- $ref: /schemas/types.yaml#/definitions/uint32
- default: 2 # log oopses and panics
- maximum: 0x7fffffff
- description: |
- If present, sets maximum type of kmsg dump reasons to store.
- This can be set to INT_MAX to store all kmsg dumps.
- See include/linux/kmsg_dump.h KMSG_DUMP_* for other kmsg dump reason values.
- Setting this to 0 (KMSG_DUMP_UNDEF), means the reason filtering will be
- controlled by the printk.always_kmsg_dump boot param.
- If unset, it will be 2 (KMSG_DUMP_OOPS), otherwise 5 (KMSG_DUMP_MAX).
- flags:
- $ref: /schemas/types.yaml#/definitions/uint32
- default: 0
- description: |
- If present, pass ramoops behavioral flags
- (see include/linux/pstore_ram.h RAMOOPS_FLAG_* for flag values).
- no-dump-oops:
- deprecated: true
- type: boolean
- description: |
- Use max_reason instead. If present, and max_reason is not specified,
- it is equivalent to max_reason = 1 (KMSG_DUMP_PANIC).
- unbuffered:
- deprecated: true
- type: boolean
- description: |
- Use mem_type instead. If present, and mem_type is not specified,
- it is equivalent to mem_type = 1 and uses unbuffered mappings to map
- the reserved region (defaults to buffered mappings mem_type = 0).
- If both are specified -- "mem_type" overrides "unbuffered".
- unevaluatedProperties: false
- required:
- - compatible
- - reg
- anyOf:
- - required: [record-size]
- - required: [console-size]
- - required: [ftrace-size]
- - required: [pmsg-size]
- examples:
- - |
- / {
- compatible = "foo";
- model = "foo";
- #address-cells = <1>;
- #size-cells = <1>;
- reserved-memory {
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- ramoops@bfdf0000 {
- compatible = "ramoops";
- reg = <0xbfdf0000 0x10000>; /* 64kB */
- console-size = <0x8000>; /* 32kB */
- record-size = <0x400>; /* 1kB */
- ecc-size = <16>;
- };
- };
- };
|