In print_size(), the math that calculates the fractional remainder of a number used the same integer size as a physical address. However, the "10 *" factor of the algorithm means that a large number (e.g. 1.5GB) can overflow the integer if we're running on a 32-bit system. Therefore, we need to disassociate this function from the size of a physical address.
Signed-off-by: Timur Tabi <ti...@freescale.com> --- lib_generic/display_options.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_generic/display_options.c b/lib_generic/display_options.c index 2dc2567..08a7914 100644 --- a/lib_generic/display_options.c +++ b/lib_generic/display_options.c @@ -45,8 +45,8 @@ int display_options (void) */ void print_size (phys_size_t size, const char *s) { - ulong m = 0, n; - phys_size_t d = 1 << 30; /* 1 GB */ + unsigned long m = 0, n; + unsigned long long d = 1 << 30; /* 1 GB */ char c = 'G'; if (size < d) { /* try MB */ -- 1.6.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot