@@ -25,32 +25,18 @@ protected by it. 1-bit error is correctable by ECC, but multi-bit and
2525multiple 1-bit errors are not correctable and will be treated as an
2626uncorrectable error. Any uncorrectable error will cause a bus abort.
2727
28- DDRSS ECC handling
29- ==================
28+ DDRSS inline ECC handling
29+ =========================
3030
3131.. note ::
3232
33- The ECC feature of DDRSS is not enabled by default in U-Boot.
33+ The inline ECC feature of DDRSS is not enabled by default in U-Boot.
3434
35- Enabling ECC
36- ------------
35+ Enabling inline ECC
36+ -------------------
3737
38- The ECC feature of DDRSS can be enabled by the following two steps:
39-
40- 1. Add ``ti,ecc-enable `` boolean property to the ``memorycontroller `` node
41-
42- .. code-block :: dts
43-
44- // u-boot/arch/arm/dts/k3-*-ddr.dtsi
45-
46- &memorycontroller {
47- power-domains = <&k3_pds 170 TI_SCI_PD_SHARED>,
48- <&k3_pds 55 TI_SCI_PD_SHARED>;
49- clocks = <&k3_clks 170 0>, <&k3_clks 16 4>;
50- ti,ecc-enable;
51- };
52-
53- 2. Re-build U-Boot with ``CONFIG_K3_INLINE_ECC `` enabled
38+ The inline ECC feature of DDRSS can be enabled by adding the
39+ ``CONFIG_K3_INLINE_ECC `` config to the R5 defconfig:
5440
5541 .. code-block :: kconfig
5642
@@ -64,6 +50,8 @@ The ECC feature of DDRSS can be enabled by the following two steps:
6450 CONFIG_REMOTEPROC_TI_K3_ARM64=y
6551 CONFIG_RESET_TI_SCI=y
6652
53+ This enables inline ECC for the entire region of the DDR.
54+
6755Priming with BIST Engine
6856------------------------
6957
@@ -73,3 +61,20 @@ initialization, the R5 SPL fills the entire memory with zeros using the BIST
7361engine in the DDR controller. The BIST engine method allows priming the entire
7462region with zeros in much less time.
7563
64+ Enabling inline ECC for a partial region of the DDR
65+ ---------------------------------------------------
66+
67+ Instead of defaulting to enable inline ECC for the entire DDR region, a partial
68+ range can also be selected.
69+
70+ In this case, the DDRSS driver expects such a node within the memory node, in
71+ the absence of which it resorts to enabling for the entire DDR region:
72+
73+ .. code-block :: dts
74+
75+ inline_ecc: protected@9e780000 {
76+ device_type = "ecc";
77+ reg = <0x9e780000 0x0080000>;
78+ bootph-all;
79+ };
80+
0 commit comments