Skip to content

Commit 5249f33

Browse files
Neha Malcom FrancisStaticRocket
authored andcommitted
feat(linux): Add section on partial inline ECC and update
Add section on partial inline ECC, while at it also clean up using the term "inline ECC" instead of just "ECC". Also update the build instructions to the latest one. Signed-off-by: Neha Malcom Francis <[email protected]>
1 parent d824921 commit 5249f33

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

source/linux/Foundational_Components/U-Boot/UG-DDRSS-J7.rst

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,18 @@ protected by it. 1-bit error is correctable by ECC, but multi-bit and
2525
multiple 1-bit errors are not correctable and will be treated as an
2626
uncorrectable 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+
6755
Priming with BIST Engine
6856
------------------------
6957

@@ -73,3 +61,20 @@ initialization, the R5 SPL fills the entire memory with zeros using the BIST
7361
engine in the DDR controller. The BIST engine method allows priming the entire
7462
region 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

Comments
 (0)