]> git.ipfire.org Git - thirdparty/u-boot.git/commit
common: memsize: add RAM size probe based on alias detection
authorEmanuele Ghidoli <emanuele.ghidoli@toradex.com>
Fri, 17 Apr 2026 07:13:31 +0000 (09:13 +0200)
committerFabio Estevam <festevam@gmail.com>
Tue, 21 Apr 2026 23:49:39 +0000 (20:49 -0300)
commit0977448b45e2f1a9cbe7d7e11d208b16460c79ea
treeab9e97ed2f3088b7dad9850646597d7e1fa8f829
parent60f651460849aa9f12ceee8246c169a9dd55e55c
common: memsize: add RAM size probe based on alias detection

Add probe_ram_size_by_alias() to detect RAM size by checking whether a
write to one address aliases to another address.

Compared to get_ram_size(), this function allows the caller to:
- limit probing to a small set of required accesses
- avoid touching reserved or already used memory regions
- handle non-linear alias patterns

On the iMX95 SoC, when used with LPDDR5, accesses beyond the end of an 8GB DDR
configuration do not alias to the expected linear wrap-around addresses.
Instead, the aliased addresses appear to follow a pattern related to the
DDRC bank and bank-group addresses mapping. Experimentally, the observed
pattern is:

Write        Read
y00000000 -> x0001c000
y00004000 -> x00018000
y00008000 -> x00014000
y0000c000 -> x00010000
y00010000 -> x0000c000
y00014000 -> x00008000
y00018000 -> x00004000
y0001c000 -> x00000000

This helper makes it possible to probe RAM size by explicitly specifying
the probed address and the expected alias address for each size check.

Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/memsize.c
include/init.h