diff options
| author | Rasmus Villemoes <[email protected]> | 2025-08-19 12:55:54 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-09-09 10:35:59 -0600 |
| commit | 122c25c00a238b55ac6745eb961c5ea66b45be8c (patch) | |
| tree | 96baa9aec16044efc347bb5d0c17c703d19e80e1 /scripts/objdiff | |
| parent | aff7f1314a14ab2af5dbb04a33744c1c4db5aef7 (diff) | |
common/spl: use memmove() in load_simple_fit()
I had trouble booting some am335x boards (both
beagleboneblack and a custom board). SPL would start just fine, and
apparently load U-Boot proper, but it would hang when jumping to
U-Boot.
While debugging, I stumbled on this memcpy() which from code
inspection very much looked to have overlapping src and dst, and
indeed a simple printf revealed
calling memcpy(0x8087bf68, 0x8087bf80, 0xf7f8)
Now, it will always be with src > dst, our memcpy()
implementations "most likely" do forward-copying, and in the end it
turned out that this wasn't the culprit after all [*].
But to avoid me or others barking up the wrong tree in the future, and
because this use of memcpy() is technically undefined, use memmove()
instead.
[*] That was 358d1cc232c ("spl: Align FDT load address"), which has
since been fixed in master but not the v2025.07 I worked of by
52caad0d14a ("ARM: Align image end to 8 bytes to fit DT alignment").
Signed-off-by: Rasmus Villemoes <[email protected]>
Reviewed-by: Heinrich Schuchardt <[email protected]>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
