Hi, This series adds support for single bit ECC in the TI DDRSS bridge inline ECC and adds required support code for AM64x EVM to enable it for the full DDR space. This ECC module checks reads and writes to and from DDR once enabled without additional action required. ECC is stored together with the data so because of this, 1/9th of the total SDRAM space is used for ECC storage and the rest 8/9th is available for system use. From system point of view this means that available SDRAM will be reduced from the end by 1/9, but otherwise SDRAM is accessed and used the same. This series adds updates to the k3-ddrss driver for configuration of the ECC, and also board and arch code to automatically resize the available DDR if ECC is enabled through DT fixup.
In order to avoid duplicating information and keeping this series generic this series moves to use the "memory" dt node for the main source of DDR amount and base address instead of hard coding it which has been done for all K3 previously. All TI K3 devices that use the k3-ddrss driver have this same inline ECC, so taking this step to make this more generic will allow this to be extended more easily. By default this series does NOT actually enable ECC for the any platform due to the multi second boot time increase that comes from the ECC priming that is done as part of ECC init, but it can be enabled by adding the 'ti,ecc-enable` property to the memorycontroller node in k3-am642-r5-evm DT. Regards, Dave Dave Gerlach (8): arm: dts: k3-am642-r5-evm: Mark memory with u-boot,dm-spl board: ti: am64x: Use fdt functions for ram and bank init dt-bindings: memory-controller: Add information about ECC bindings ram: k3-ddrss: Rename ddrss_ss_regs to ddrss_ctl_regs ram: k3-ddrss: Introduce ECC Functionality for full memory space board: ti: am64x: Account for DDR size fixups if ECC is enabled arm: dts: k3-am64-ddr: Add ss_cfg reg entry configs: am64x_evm_r5: Add CONFIG_NR_DRAM_BANKS as done in a53 defconfig arch/arm/dts/k3-am64-ddr.dtsi | 5 +- arch/arm/dts/k3-am642-r5-evm.dts | 1 + board/ti/am64x/evm.c | 74 ++++++++-- configs/am64x_evm_r5_defconfig | 1 + .../memory-controller/k3-j721e-ddrss.txt | 8 + drivers/ram/k3-ddrss/k3-ddrss.c | 138 +++++++++++++++++- include/k3-ddrss.h | 16 ++ 7 files changed, 230 insertions(+), 13 deletions(-) create mode 100644 include/k3-ddrss.h -- 2.35.0