Hi Daniel, On 30 April 2017 at 13:22, Daniel Schwierzeck <daniel.schwierz...@gmail.com> wrote: > From: Paul Burton <paul.bur...@imgtec.com> > > When determining the region of memory to allow for use by bootm, using > bi_memstart & adding bi_memsize can cause problems if that leads to an > integer overflow. For example on some MIPS systems bi_memstart would be > 0xffffffff80000000 (ie. the start of the MIPS ckseg0 region) and if the > system has 2GB of memory then the addition would wrap around to 0. > > The maximum amount of memory to be used by U-Boot is already accounted > for by the ram_top field of struct global_data, so make use of that for > the calculation instead. > > Signed-off-by: Paul Burton <paul.bur...@imgtec.com> > Signed-off-by: Daniel Schwierzeck <daniel.schwierz...@gmail.com> > > --- > > Changes in v2: > - also patch ARM specific code to get a consistent behaviour > > common/image.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/common/image.c b/common/image.c > index 0f88984f2d..160c4c6fbc 100644 > --- a/common/image.c > +++ b/common/image.c > @@ -494,11 +494,10 @@ phys_size_t getenv_bootm_size(void) > > #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 > + size = gd->ram_top - start; >
I'm a little nervous about this change. For ARM we might have discontinuous DRAM segments. Can you not set bd->bi_memsize insead? > s = getenv("bootm_low"); > if (s) > -- > 2.11.0 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot