Skip to content
Snippets Groups Projects
  • Baruch Siach's avatar
    2b4d9647
    arm64: mvebu: a8k: autodetect RAM size · 2b4d9647
    Baruch Siach authored
    
    Some Armada 8K boards like Macchiatobin and Clearfog GT-8K use RAM from
    external DIMM. Hard coding the RAM size in the device-tree is not
    convenient. Fortunately, the ATF that initializes the RAM knows the size
    of RAM, and U-Boot can query the ATF using a SMC call.
    
    The ATF maps the lower 3G of RAM starting at address 0. Higher RAM is
    mapped at 4G. This leaves a 1G hole between 3G and 4G for IO
    peripherals. Use a second bi_dram[] entry to describe the higher RAM
    area. As a result, CONFIG_NR_DRAM_BANKS must be set to 2 to use more
    than 3GB RAM.
    
    This code in this commit is mostly taken from downstream Marvell U-Boot
    code by Grzegorz Jaszczyk.
    
    Cc: Grzegorz Jaszczyk <jaz@semihalf.com>
    Signed-off-by: default avatarBaruch Siach <baruch@tkos.co.il>
    Signed-off-by: default avatarStefan Roese <sr@denx.de>
    2b4d9647
    History
    arm64: mvebu: a8k: autodetect RAM size
    Baruch Siach authored
    
    Some Armada 8K boards like Macchiatobin and Clearfog GT-8K use RAM from
    external DIMM. Hard coding the RAM size in the device-tree is not
    convenient. Fortunately, the ATF that initializes the RAM knows the size
    of RAM, and U-Boot can query the ATF using a SMC call.
    
    The ATF maps the lower 3G of RAM starting at address 0. Higher RAM is
    mapped at 4G. This leaves a 1G hole between 3G and 4G for IO
    peripherals. Use a second bi_dram[] entry to describe the higher RAM
    area. As a result, CONFIG_NR_DRAM_BANKS must be set to 2 to use more
    than 3GB RAM.
    
    This code in this commit is mostly taken from downstream Marvell U-Boot
    code by Grzegorz Jaszczyk.
    
    Cc: Grzegorz Jaszczyk <jaz@semihalf.com>
    Signed-off-by: default avatarBaruch Siach <baruch@tkos.co.il>
    Signed-off-by: default avatarStefan Roese <sr@denx.de>