mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-05 12:46:14 +02:00
lmb: Reinstate access to memory above ram_top
Revert commit eb052cbb896f ("lmb: add and reserve memory above ram_top")
and commit 1a48b0be93d4 ("lmb: prohibit allocations above ram_top even from
same bank"). These are based on incorrect premise of the first commit, that
"U-Boot does not use memory above ram_top". While U-Boot itself indeed does
not and should not use memory above ram_top, user can perfectly well use
that memory from the U-Boot shell, for example to load content in there.
Currently, attempt to use that memory to load large image using TFTP ends
with "TFTP error: trying to overwrite reserved memory...". With this change
in place, the memory can be used again.
Fixes: eb052cbb896f ("lmb: add and reserve memory above ram_top")
Fixes: 1a48b0be93d4 ("lmb: prohibit allocations above ram_top even from same bank")
Reported-by: Yuya Hamamachi <yuya.hamamachi.sx@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
This commit is contained in:
parent
dba21bf0b6
commit
a3075db94d
17
lib/lmb.c
17
lib/lmb.c
@ -611,7 +611,6 @@ static __maybe_unused void lmb_reserve_common_spl(void)
|
||||
static void lmb_add_memory(void)
|
||||
{
|
||||
int i;
|
||||
phys_addr_t bank_end;
|
||||
phys_size_t size;
|
||||
u64 ram_top = gd->ram_top;
|
||||
struct bd_info *bd = gd->bd;
|
||||
@ -625,23 +624,9 @@ static void lmb_add_memory(void)
|
||||
|
||||
for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
|
||||
size = bd->bi_dram[i].size;
|
||||
bank_end = bd->bi_dram[i].start + size;
|
||||
|
||||
if (size) {
|
||||
if (size)
|
||||
lmb_add(bd->bi_dram[i].start, size);
|
||||
|
||||
/*
|
||||
* Reserve memory above ram_top as
|
||||
* no-overwrite so that it cannot be
|
||||
* allocated
|
||||
*/
|
||||
if (bd->bi_dram[i].start >= ram_top)
|
||||
lmb_reserve(bd->bi_dram[i].start, size,
|
||||
LMB_NOOVERWRITE);
|
||||
else if (bank_end > ram_top)
|
||||
lmb_reserve(ram_top, bank_end - ram_top,
|
||||
LMB_NOOVERWRITE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user