diff options
author | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-05-06 14:00:49 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-05-07 17:54:30 +1000 |
commit | 8b59c65825074d00d0f93fbe789bb7fa9991ded6 (patch) | |
tree | 212ebca9067992450f0310647773f58847a89a02 /platforms | |
parent | 865cbaec4869bb824ef8ebfb3dba2fdae61c07a0 (diff) | |
download | skiboot-8b59c65825074d00d0f93fbe789bb7fa9991ded6.zip skiboot-8b59c65825074d00d0f93fbe789bb7fa9991ded6.tar.gz skiboot-8b59c65825074d00d0f93fbe789bb7fa9991ded6.tar.bz2 |
astbmc: asynchronous preloading of resources
Implement start_preload_resource and resource_loaded platform functions
for astbmc machines (palmetto, habanero, firestone).
This means we start loading kernel and initramfs from flash much earlier
in boot, doing things like PCI init concurrently so that by the time
we go to boot the payload, it's already loaded.
Implementation is a simple queue with a job running on another CPU doing
the libflash calls.
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'platforms')
-rw-r--r-- | platforms/astbmc/firestone.c | 3 | ||||
-rw-r--r-- | platforms/astbmc/habanero.c | 3 | ||||
-rw-r--r-- | platforms/astbmc/palmetto.c | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/platforms/astbmc/firestone.c b/platforms/astbmc/firestone.c index 03ecc2b..4d3be19 100644 --- a/platforms/astbmc/firestone.c +++ b/platforms/astbmc/firestone.c @@ -43,6 +43,7 @@ DECLARE_PLATFORM(firestone) = { .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, .elog_commit = ipmi_elog_commit, - .start_preload_resource = flash_load_resource, + .start_preload_resource = flash_start_preload_resource, + .resource_loaded = flash_resource_loaded, .exit = ipmi_wdt_final_reset, }; diff --git a/platforms/astbmc/habanero.c b/platforms/astbmc/habanero.c index 2812b40..a2eec4a 100644 --- a/platforms/astbmc/habanero.c +++ b/platforms/astbmc/habanero.c @@ -53,6 +53,7 @@ DECLARE_PLATFORM(habanero) = { .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, .elog_commit = ipmi_elog_commit, - .start_preload_resource = flash_load_resource, + .start_preload_resource = flash_start_preload_resource, + .resource_loaded = flash_resource_loaded, .exit = ipmi_wdt_final_reset, }; diff --git a/platforms/astbmc/palmetto.c b/platforms/astbmc/palmetto.c index 02b0649..803ca46 100644 --- a/platforms/astbmc/palmetto.c +++ b/platforms/astbmc/palmetto.c @@ -53,6 +53,7 @@ DECLARE_PLATFORM(palmetto) = { .cec_power_down = astbmc_ipmi_power_down, .cec_reboot = astbmc_ipmi_reboot, .elog_commit = ipmi_elog_commit, - .start_preload_resource = flash_load_resource, + .start_preload_resource = flash_start_preload_resource, + .resource_loaded = flash_resource_loaded, .exit = ipmi_wdt_final_reset, }; |