aboutsummaryrefslogtreecommitdiff
path: root/core/hostservices.c
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.vnet.ibm.com>2015-05-06 14:00:54 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-05-07 17:54:30 +1000
commit4d78c68415f5ac3081b724628aee5e34e46a65b3 (patch)
treea54701dd53b7ee03df38ef3f5f74caab4e975858 /core/hostservices.c
parent18a462983f934bbb6651116ac347c7acf92b2cff (diff)
downloadskiboot-4d78c68415f5ac3081b724628aee5e34e46a65b3.zip
skiboot-4d78c68415f5ac3081b724628aee5e34e46a65b3.tar.gz
skiboot-4d78c68415f5ac3081b724628aee5e34e46a65b3.tar.bz2
Preload VPD LID and set up fsp_lid_load() for async queued loading
This means VPD LID is already loaded before we start preloading kernel and initramfs LIDs, thus ensuring VPD doesn't have to wait for them to finish being read from FSP. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core/hostservices.c')
-rw-r--r--core/hostservices.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/core/hostservices.c b/core/hostservices.c
index a290094..68f2e77 100644
--- a/core/hostservices.c
+++ b/core/hostservices.c
@@ -415,7 +415,8 @@ static int __hservice_lid_load(uint32_t lid, void **buf, size_t *len)
*/
*buf = malloc(HBRT_LOAD_LID_SIZE);
*len = HBRT_LOAD_LID_SIZE;
- rc = fsp_load_lid(lid, *buf, len);
+ rc = fsp_preload_lid(lid, *buf, len);
+ rc = fsp_wait_lid_loaded(lid);
if (rc != 0)
/* Take advantage of realloc corner case here. */
*len = 0;
@@ -495,8 +496,8 @@ static int hservice_lid_load(uint32_t lid, void **buf, size_t *len)
if (hlid->id == lid) {
*buf = hlid->load_addr;
*len = hlid->len;
- prlog(PR_DEBUG, "HBRT: Serviced from cache,"
- " len=0x%lx\n", hlid->len);
+ prlog(PR_DEBUG, "HBRT: LID Serviced from cache,"
+ " %x, len=0x%lx\n", hlid->id, hlid->len);
return 0;
}
}