• Rick Altherr's avatar
    bootm: relocate ramdisk if CONFIG_SYS_BOOT_RAMDISK_HIGH set · c2e7e72b
    Rick Altherr authored
    In 35fc84fa, bootm was refactored so plain 'bootm' and
    'bootm <subcommand>' shared a common implementation.
    The 'bootm ramdisk' command implementation is now part of the common
    implementation but not invoke by plain 'bootm' since the original
    implementation never did ramdisk relocation.  Instead, ramdisk
    relocation happened in image_setup_linux() which is typically called
    during the OS portion of 'bootm'.
    
    On ARM, parameters to the Linux kernel can either be passed by FDT or
    ATAGS. When using FDT, image_setup_linux() is called which also triggers
    ramdisk relocation.  When using ATAGS, image_setup_linux() is _not_
    called because it mostly does FDT setup.
    
    Instead of calling image_setup_linux() in both FDT and ATAGS cases,
    include BOOTM_STATE_RAMDISK in the requested states during a plain
    'bootm' if CONFIG_SYS_BOOT_RAMDISK_HIGH is set and remove the ramdisk
    relocation from image_setup_linux().  This causes ramdisk relocation to
    happen on any system where CONFIG_SYS_BOOT_RAMDISK_HIGH regardless of
    the OS being booted. Also remove IMAGE_ENABLE_RAMDISK_HIGH as it was
    only used by the now-removed code from image_setup_linux().
    Signed-off-by: default avatarRick Altherr <[email protected]>
    Reviewed-by: default avatarSimon Glass <[email protected]>
    Reviewed-by: Joel Stanley's avatarJoel Stanley <[email protected]>
    c2e7e72b
bootm.c 12.7 KB