From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hannes Schmelzer Date: Mon, 08 Feb 2016 15:16:40 +0100 Subject: [U-Boot] [PATCH] image: fix getenv_bootm_size() function In-Reply-To: References: <1450415831-20347-1-git-send-email-yamada.masahiro@socionext.com> <56B89FBB.6070403@schmelzer.or.at> Message-ID: <56B8A348.9030009@schmelzer.or.at> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 08.02.2016 15:11, Matthias Wei?er wrote: > Hi Hannes > > I had the same problem. http://patchwork.ozlabs.org/patch/579391/ fixed it. > > Regards, > Matthias > > > 2016-02-08 15:01 GMT+01:00 Hannes Schmelzer : >> >> On 18.12.2015 06:17, Masahiro Yamada wrote: >>> Currently, this function returns wrong size if "bootm_low" is defined, >>> but "bootm_size" is not. >>> >>> Signed-off-by: Masahiro Yamada >>> --- >>> >>> common/image.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/common/image.c b/common/image.c >>> index d63d9e0..f4a1dc8 100644 >>> --- a/common/image.c >>> +++ b/common/image.c >>> @@ -472,9 +472,9 @@ phys_size_t getenv_bootm_size(void) >>> #if defined(CONFIG_ARM) && defined(CONFIG_NR_DRAM_BANKS) >>> - return gd->bd->bi_dram[0].size - tmp; >>> + return gd->bd->bi_dram[0].size - (tmp - gd->bd->bi_dram[0].start); >>> #else >>> - return gd->bd->bi_memsize - tmp; >>> + return gd->bd->bi_memsize - (tmp - gd->bd->bi_memstart); >>> #endif >>> } >> Hi Masahiro, >> >> your commit has been merged on 19.1. this year. >> Today i ran a test on my tseries board with most current u-boot/master. >> >> I ran into trouble booting my linux kernel: >> >> --- >> Kernel image @ 0x80200000 [ 0x000000 - 0x222720 ] >> ## Loading init Ramdisk from Legacy Image at 80a00000 ... >> Image Name: >> Image Type: ARM Linux RAMDisk Image (uncompressed) >> Data Size: 12452646 Bytes = 11.9 MiB >> Load Address: 00000000 >> Entry Point: 00000000 >> ## Flattened Device Tree blob at 80100000 >> Booting using the fdt blob at 0x80100000 >> ERROR: Failed to allocate 0xbe0326 bytes below 0x10000000. >> ramdisk - allocation error >> FDT creation failed! hanging...### ERROR ### Please RESET the board ### >> --- >> >> I debugged bit am came to the conclusio, that the line >> >> + return gd->bd->bi_dram[0].size - (tmp - gd->bd->bi_dram[0].start); >> >> brings me into trouble. >> >> On my board DRAM is configured as follows: >> U-Boot (BuR V2.0)# bdinfo >> arch_number = 0xFFFFFFFF >> boot_params = 0x80000100 >> DRAM bank = 0x00000000 >> *-> start = 0x80000000** >> **-> size = 0x10000000** >> * >> so size minus start would give a negative number. >> I tried local revert of this commit and everything works as before. >> >> more correct would be >> >> + return gd->bd->bi_dram[0].start - (tmp - gd->bd->bi_dram[0].size); >> >> >> whats your thinking about? >> >> best regards, >> Hannes >> >> _______________________________________________ >> U-Boot mailing list >> U-Boot at lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot Hi Matthias, this also fixes my problem. many thanks! best regards, Hannes