On Friday 06 January 2023 10:51:43 Tom Rini wrote:
> This reverts commit 777aaaa706bcfe08c284aed06886db7d482af3f8.
> 
> The changes to this generic function, which is intended to help with
> 32bit platforms with large amounts of memory has unintended side effects
> (which in turn lead to boot failures) on other platforms which were
> previously functional.

As mentioned previously, unfortunately this revert breaks 32-bit u-boot
on 36-bit mpc85xx boards with 32-bit e500v2 cores and 4GB DDR module.

Which platforms currently have broken u-boot without this revert? The
only one which was reported is stm32mp but for it there different
workaround patch waiting in the queue.

> Reported-by: Marek Vasut <ma...@denx.de>
> Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
> Cc: Pali Rohár <p...@kernel.org>
> Signed-off-by: Tom Rini <tr...@konsulko.com>
> ---
>  common/memsize.c | 18 +++---------------
>  1 file changed, 3 insertions(+), 15 deletions(-)
> 
> diff --git a/common/memsize.c b/common/memsize.c
> index 3c80ad2c8346..31884acca0df 100644
> --- a/common/memsize.c
> +++ b/common/memsize.c
> @@ -94,23 +94,11 @@ long get_ram_size(long *base, long maxsize)
>  
>  phys_size_t __weak get_effective_memsize(void)
>  {
> -     phys_size_t ram_size = gd->ram_size;
> -
> -     /*
> -      * Check for overflow and limit ram size to some representable value.
> -      * It is required that ram_base + ram_size must be representable by
> -      * phys_size_t type and must be aligned by direct access, therefore
> -      * calculate it from last 4kB sector which should work as alignment
> -      * on any platform.
> -      */
> -     if (gd->ram_base + ram_size < gd->ram_base)
> -             ram_size = ((phys_size_t)~0xfffULL) - gd->ram_base;
> -
>  #ifndef CONFIG_MAX_MEM_MAPPED
> -     return ram_size;
> +     return gd->ram_size;
>  #else
>       /* limit stack to what we can reasonable map */
> -     return ((ram_size > CONFIG_MAX_MEM_MAPPED) ?
> -             CONFIG_MAX_MEM_MAPPED : ram_size);
> +     return ((gd->ram_size > CONFIG_MAX_MEM_MAPPED) ?
> +             CONFIG_MAX_MEM_MAPPED : gd->ram_size);
>  #endif
>  }
> -- 
> 2.25.1
> 

Reply via email to