summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Liu <[email protected]>2026-07-16 09:54:37 -0500
committerTom Rini <[email protected]>2026-07-28 12:30:55 -0600
commit616c3d79f01cf9204e38738857c4647a730dcb3b (patch)
tree328cd92b6a7827ff0377d21e8bdebcffa51a5275
parent1ca41edced1a7213a9d737c1ced772b91181e9ad (diff)
ram: k3-ddrss: fix ecc range checking bug
The original checking is wrong, it basically compares memory address end = r->start + r->range; with memory size: if (end > (ddr_ram_size - ecc_res)) so the if() condition would be always true. This causes the ECC config never take input from the devicetree. Fixes: f43f71012254 ("ram: k3-ddrss: Add support for a partial inline ECC region") Signed-off-by: Bin Liu <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]>
-rw-r--r--drivers/ram/k3-ddrss/k3-ddrss.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/ram/k3-ddrss/k3-ddrss.c b/drivers/ram/k3-ddrss/k3-ddrss.c
index 5144470b931..c406998b20a 100644
--- a/drivers/ram/k3-ddrss/k3-ddrss.c
+++ b/drivers/ram/k3-ddrss/k3-ddrss.c
@@ -931,11 +931,10 @@ static int k3_ddrss_probe(struct udevice *dev)
struct k3_ddrss_ecc_region *r = range;
for (int i = 0; (i < K3_DDRSS_MAX_ECC_REG) && (r->range != 0); i++, r++) {
- end = r->start + r->range;
ddr_ram_size = ddrss->ddr_ram_size;
ecc_res = ddrss->ecc_reserved_space;
- if (end > (ddr_ram_size - ecc_res))
+ if (r->range > (ddr_ram_size - ecc_res))
ddrss->ecc_regions[i].range = ddr_ram_size - ecc_res;
else
ddrss->ecc_regions[i].range = r->range;