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 <han...@schmelzer.or.at>:

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 <yamada.masah...@socionext.com>
---

   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@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Hi Matthias,

this also fixes my problem.

many thanks!

best regards,
Hannes

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to