]> git.baikalelectronics.ru Git - uboot.git/commit
bootm: relocate ramdisk if CONFIG_SYS_BOOT_RAMDISK_HIGH set
authorRick Altherr <raltherr@google.com>
Thu, 19 Jan 2017 01:12:24 +0000 (17:12 -0800)
committerTom Rini <trini@konsulko.com>
Fri, 20 Jan 2017 14:15:20 +0000 (09:15 -0500)
commitc6a134072f944458c104895d28ef1de8931b531e
tree78f8f4eadcd1a11e294291178263b01f2de66066
parent44339f8ba4a8aee4606d2f6483d5495fb3586d67
bootm: relocate ramdisk if CONFIG_SYS_BOOT_RAMDISK_HIGH set

In 35fc84f, 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: Rick Altherr <raltherr@google.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Joel Stanley <joel@jms.id.au>
cmd/bootm.c
common/image.c
include/image.h