From 4d78c68415f5ac3081b724628aee5e34e46a65b3 Mon Sep 17 00:00:00 2001 From: Stewart Smith Date: Wed, 6 May 2015 14:00:54 +1000 Subject: 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 --- core/hostservices.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'core/hostservices.c') 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; } } -- cgit v1.1