Am 04.05.2017 um 18:49 schrieb Simon Glass: > 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)
after reviewing again I think this patch is wrong. Maybe we have to fix the MIPS specific problem instead, where CONFIG_SYS_SDRAM_BASE is used as a virtual address instead of a physical one. Actually this causes the wrap around. Thus I withdraw this patch. -- - Daniel
signature.asc
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot