Skip to content
  • Gregory CLEMENT's avatar
    ARM: 7722/1: zImage: Convert 32bits memory size and address from ATAG to 64bits DTB · faefd550
    Gregory CLEMENT authored
    
    
    When CONFIG_ARM_APPENDED_DTB is selected, if the bootloader provides
    an ATAG_MEM it replaces the memory size and the memory address in the
    memory node of the device tree. In the case of a system which can
    handle more than 4GB, the memory node cell size is 4: each data
    (memory size and memory address) are 64 bits and then use 2 cells.
    
    The current code in atags_to_fdt.c made the assumption of a cell size
    of 2 (one cell for the memory size and one cell for the memory
    address), this leads to an improper write of the data and ends with a
    boot hang.
    
    This patch writes the memory size and the memory address on the memory
    node in the device tree depending of the size of the memory node (32
    bits or 64 bits).
    
    It has been tested in the 2 cases:
    - with a dtb using skeleton.dtsi
    - and with a dtb using skeleton64.dtsi
    
    Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
    Acked-by: default avatarNicolas Pitre <nico@linaro.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    faefd550