rockchip: spl: support a 'same-as-spl'-specifier in the spl-boot-order
It is often desirable to configure the spl-boot-order (i.e. the order that SPL probes devices to find the FIT image containing a full U-Boot) such that it contains 'the same device the SPL stage was booted from' early on. To support this, we introduce the 'same-as-spl' specifier for the spl-boot-order property. This commit adds: - documentation for the new board_spl_was_booted_from() function that individual SoCs/boards should provide, if they can determine where the SPL was booted from - implements the new board_spl_was_booted_from() stub function - adds support for handling the 'same-as-spl' specifier and calling into the per-SoC/per-board support code. This also updates the documentation for the 'u-boot,spl-boot-order' property. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -56,10 +56,20 @@ Each list element of the property should specify a device to be probed
|
||||
in the order they are listed: references (i.e. implicit paths), a full
|
||||
path or an alias is expected for each entry.
|
||||
|
||||
A special specifier "same-as-spl" can be used at any position in the
|
||||
boot-order to direct U-Boot to insert the device the SPL was booted
|
||||
from there. Whether this is indeed inserted or silently ignored (if
|
||||
it is not supported on any given SoC/board or if the boot-device is
|
||||
not available to continue booting from) is implementation-defined.
|
||||
Note that if "same-as-spl" expands to an actual node for a given
|
||||
board, the corresponding node may appear multiple times in the
|
||||
boot-order (as there currently exists no mechanism to suppress
|
||||
duplicates from the list).
|
||||
|
||||
Example
|
||||
-------
|
||||
/ {
|
||||
chosen {
|
||||
u-boot,spl-boot-order = &sdmmc, "/sdhci@fe330000";
|
||||
u-boot,spl-boot-order = "same-as-spl", &sdmmc, "/sdhci@fe330000";
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user