image: fix getenv_bootm_size() function again

Commit 9c11135ce0 ("image: fix getenv_bootm_size() function") fixed
the case where "bootm_low" is defined, but "bootm_size" is not.
Instead, it broke the case where neither "bootm_low" nor "bootm_size"
is defined.  Fix this function again.

Fixes: 9c11135ce0 ("image: fix getenv_bootm_size() function")
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Matthias Weisser <m.weisser.m@gmail.com>
Tested-by: Hannes Schmelzer <oe5hpm@oevsv.at>
This commit is contained in:
Masahiro Yamada 2016-02-05 16:12:50 +09:00 committed by Tom Rini
parent 89ab841088
commit 0cb389dd1a

View File

@ -458,24 +458,29 @@ ulong getenv_bootm_low(void)
phys_size_t getenv_bootm_size(void)
{
phys_size_t tmp;
phys_size_t tmp, size;
phys_addr_t start;
char *s = getenv("bootm_size");
if (s) {
tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
return tmp;
}
#if defined(CONFIG_ARM) && defined(CONFIG_NR_DRAM_BANKS)
start = gd->bd->bi_dram[0].start;
size = gd->bd->bi_dram[0].size;
#else
start = gd->bd->bi_memstart;
size = gd->bd->bi_memsize;
#endif
s = getenv("bootm_low");
if (s)
tmp = (phys_size_t)simple_strtoull(s, NULL, 16);
else
tmp = 0;
tmp = start;
#if defined(CONFIG_ARM) && defined(CONFIG_NR_DRAM_BANKS)
return gd->bd->bi_dram[0].size - (tmp - gd->bd->bi_dram[0].start);
#else
return gd->bd->bi_memsize - (tmp - gd->bd->bi_memstart);
#endif
return size - (tmp - start);
}
phys_size_t getenv_bootm_mapsize(void)