Skip to content
  • Sjoerd Simons's avatar
    rockchip: Reconfigure the malloc based to point to system memory · b1f492ca
    Sjoerd Simons authored
    When malloc_base initially gets setup in the SPL it is based on the
    current (early) stack pointer, which for rockchip is pointing into SRAM.
    This means simple memory allocations happen in SRAM space, which is
    somewhat unfortunate. Specifically a bounce buffer for the mmc allocated
    in SRAM space seems to cause the mmc engine to stall/fail causing
    timeouts and a failure to load the main u-boot image.
    
    To resolve this, reconfigure the malloc_base to start at the relocated
    stack pointer after DRAM  has been setup.
    
    For reference, things did work fine on rockchip before 596380db
    
     was
    merged to fix memalign_simple due to a combination of rockchip SDRAM
    starting at address 0 and the dw_mmc driver not checking errors from
    bounce_buffer_start. As a result, when a bounce buffer needed to be
    allocated mem_align simple would fail and return NULL. The mmc driver
    ignored the error and happily continued with the bounce buffer address
    being set to 0, which just happened to work fine..
    
    Signed-off-by: default avatarSjoerd Simons <sjoerd.simons@collabora.co.uk>
    Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
    Acked-by: default avatarSimon Glass <sjg@chromium.org>
    b1f492ca