blob: 1006b04894642685a984081121c4b9229181a55c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001* APM X-Gene SoC EDAC node
2
3EDAC node is defined to describe on-chip error detection and correction.
4The follow error types are supported:
5
6 memory controller - Memory controller
7 PMD (L1/L2) - Processor module unit (PMD) L1/L2 cache
8 L3 - L3 cache controller
9 SoC - SoC IP's such as Ethernet, SATA, and etc
10
11The following section describes the EDAC DT node binding.
12
13Required properties:
14- compatible : Shall be "apm,xgene-edac".
15- regmap-csw : Regmap of the CPU switch fabric (CSW) resource.
16- regmap-mcba : Regmap of the MCB-A (memory bridge) resource.
17- regmap-mcbb : Regmap of the MCB-B (memory bridge) resource.
18- regmap-efuse : Regmap of the PMD efuse resource.
19- regmap-rb : Regmap of the register bus resource. This property
20 is optional only for compatibility. If the RB
21 error conditions are not cleared, it will
22 continuously generate interrupt.
23- reg : First resource shall be the CPU bus (PCP) resource.
24- interrupts : Interrupt-specifier for MCU, PMD, L3, or SoC error
25 IRQ(s).
26
27Required properties for memory controller subnode:
28- compatible : Shall be "apm,xgene-edac-mc".
29- reg : First resource shall be the memory controller unit
30 (MCU) resource.
31- memory-controller : Instance number of the memory controller.
32
33Required properties for PMD subnode:
34- compatible : Shall be "apm,xgene-edac-pmd" or
35 "apm,xgene-edac-pmd-v2".
36- reg : First resource shall be the PMD resource.
37- pmd-controller : Instance number of the PMD controller.
38
39Required properties for L3 subnode:
40- compatible : Shall be "apm,xgene-edac-l3" or
41 "apm,xgene-edac-l3-v2".
42- reg : First resource shall be the L3 EDAC resource.
43
44Required properties for SoC subnode:
45- compatible : Shall be "apm,xgene-edac-soc-v1" for revision 1 or
46 "apm,xgene-edac-l3-soc" for general value reporting
47 only.
48- reg : First resource shall be the SoC EDAC resource.
49
50Example:
51 csw: csw@7e200000 {
52 compatible = "apm,xgene-csw", "syscon";
53 reg = <0x0 0x7e200000 0x0 0x1000>;
54 };
55
56 mcba: mcba@7e700000 {
57 compatible = "apm,xgene-mcb", "syscon";
58 reg = <0x0 0x7e700000 0x0 0x1000>;
59 };
60
61 mcbb: mcbb@7e720000 {
62 compatible = "apm,xgene-mcb", "syscon";
63 reg = <0x0 0x7e720000 0x0 0x1000>;
64 };
65
66 efuse: efuse@1054a000 {
67 compatible = "apm,xgene-efuse", "syscon";
68 reg = <0x0 0x1054a000 0x0 0x20>;
69 };
70
71 rb: rb@7e000000 {
72 compatible = "apm,xgene-rb", "syscon";
73 reg = <0x0 0x7e000000 0x0 0x10>;
74 };
75
76 edac@78800000 {
77 compatible = "apm,xgene-edac";
78 #address-cells = <2>;
79 #size-cells = <2>;
80 ranges;
81 regmap-csw = <&csw>;
82 regmap-mcba = <&mcba>;
83 regmap-mcbb = <&mcbb>;
84 regmap-efuse = <&efuse>;
85 regmap-rb = <&rb>;
86 reg = <0x0 0x78800000 0x0 0x100>;
87 interrupts = <0x0 0x20 0x4>,
88 <0x0 0x21 0x4>,
89 <0x0 0x27 0x4>;
90
91 edacmc@7e800000 {
92 compatible = "apm,xgene-edac-mc";
93 reg = <0x0 0x7e800000 0x0 0x1000>;
94 memory-controller = <0>;
95 };
96
97 edacpmd@7c000000 {
98 compatible = "apm,xgene-edac-pmd";
99 reg = <0x0 0x7c000000 0x0 0x200000>;
100 pmd-controller = <0>;
101 };
102
103 edacl3@7e600000 {
104 compatible = "apm,xgene-edac-l3";
105 reg = <0x0 0x7e600000 0x0 0x1000>;
106 };
107
108 edacsoc@7e930000 {
109 compatible = "apm,xgene-edac-soc-v1";
110 reg = <0x0 0x7e930000 0x0 0x1000>;
111 };
112 };