diff options
Diffstat (limited to 'Documentation/devicetree/bindings/edac/marvell-sdei-ghes.txt')
-rw-r--r-- | Documentation/devicetree/bindings/edac/marvell-sdei-ghes.txt | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/edac/marvell-sdei-ghes.txt b/Documentation/devicetree/bindings/edac/marvell-sdei-ghes.txt new file mode 100644 index 000000000000..b25034c8a263 --- /dev/null +++ b/Documentation/devicetree/bindings/edac/marvell-sdei-ghes.txt @@ -0,0 +1,110 @@ +* Marvell OcteonTX SOC sdei-ghes, bed-bert nodes + +The sdei-ghes and bed-bert nodes are defined to describe resources to the +sdei-ghes module. + +Abstract +-------- + +The Generic Hardware Error Source (GHES) allows for non-standard errors to be +reported to the system (please refer to the ACPI specification). + +The standard GHES driver requires the presence of ACPI tables, and accompanying +kernel ACPI support, which is not available to systems utilizing Device Tree. + +The OcteonTX2 sdei-ghes module provides the required Hardware Error Source Table +(HEST) to the kernel, allowing the GHES driver to load. This module also +provides the Boot Error Record Table (BERT) to the kernel, which allows for +reporting of fatal RAS errors to Linux on a subsequent boot. + +Additionally, this module presents GHES devices to the system, which allows +the firmware (ATF) to report RAS errors. + +The following error sources are supported: + + MDC - OcteonTX Memory Diagnostic Controller + MCC - OcteonTX Memory Common Controller + LMC - OcteonTX Local Memory DDR4 Controller + BERT - A virtual device which records fatal errors from any of the above + into system preserved memory. + NOTE: this is located in the 'bed-bert' node. + +Device Tree sdei-ghes binding +----------------------------- + +Required properties: +- compatible : Shall be "marvell,sdei-ghes". + +Required properties for mdc subnode: +- reg : Shall contain three entries, one for each of: + - GHES Error Status Address (ACPI 4.0a, sec 17.3.2.6) + - GHES Error Status Block (ACPI 4.0a, sec 17.3.2.6.1) + - ring buffer for communication with firmware + +- event-id : SDEI event ID for receiving firmware notifications + +Example +------- + +sdei-ghes { + compatible = "marvell,sdei-ghes"; + #address-cells = <2>; + #size-cells = <1>; + memory-region = <&ghes_hest_reserved>; + ranges = <0x0 0x00000000 0x0 0x7f020000 0x00100>, + <0x0 0x00000100 0x0 0x7f020100 0x00700>, + <0x0 0x00000800 0x0 0x7f020800 0x08000>; + mdc@0 { + reg = <0x0 0x00000000 0x008>, + <0x0 0x00000100 0x100>, + <0x0 0x00000800 0x800>; + event-id = <0x40000000>; + }; + mcc@8 { + reg = <0x0 0x00000008 0x008>, + <0x0 0x00000200 0x100>, + <0x0 0x00001000 0x800>; + event-id = <0x40000001>; + }; + lmc@10 { + reg = <0x0 0x00000010 0x008>, + <0x0 0x00000300 0x100>, + <0x0 0x00001800 0x800>; + event-id = <0x40000002>; + }; +}; + +Device Tree bed-bert binding +----------------------------- + +Required properties: +- compatible : Shall be "marvell,bed-bert". + +Required properties for bert subnode: +- reg : Shall contain three entries, one for each of: + - GHES Error Status Address (ACPI 4.0a, sec 17.3.2.6) + - GHES Error Status Block (ACPI 4.0a, sec 17.3.2.6.1) + - ring buffer for communication with firmware + +Example +------- + +/* Boot Error Data / BERT support */ +bed-bert { + compatible = "marvell,bed-bert"; + #address-cells = <2>; + #size-cells = <2>; + memory-region = <&ghes_bert_reserved>; + /* + * Range placeholders; these are set dynamically by + * firmware to match 'reg' in 'ghes_bert_reserved'. + */ + ranges = <0x0 0x0 0x0 0x0 0x0 0x0>, + <0x0 0x0 0x0 0x0 0x0 0x0>, + <0x0 0x0 0x0 0x0 0x0 0x0>; + bert { + reg = <0x0 0x00000000 0x0 0x008>, + <0x0 0x00000100 0x0 0x100>, + <0x0 0x00000200 0x0 0x800>; + }; +};
\ No newline at end of file |