imd: don't recover on limit == 0

If the limit of the large starting region was set with
a NULL pointer then the limit field will be 0. If the
limit is zero then no attempt to recover is necessary
as there is no region to recover.

This prevented an early call cbmem_find() from hanging a
rambi device. The config was with vboot enabled and was
way before memory init in the sequence.

Change-Id: I7163d93c31ecef2c108a6dde0206dc0b6f158b5c
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/10175
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Aaron Durbin 2015-05-11 14:19:37 -05:00 committed by Patrick Georgi
parent 375570e617
commit 01562b6cb5
1 changed files with 3 additions and 0 deletions

View File

@ -411,6 +411,9 @@ void imd_handle_init_partial_recovery(struct imd *imd)
struct imd_root_pointer *rp; struct imd_root_pointer *rp;
struct imdr *imdr; struct imdr *imdr;
if (imd->lg.limit == 0)
return;
imd_handle_init(imd, (void *)imd->lg.limit); imd_handle_init(imd, (void *)imd->lg.limit);
/* Initialize root pointer for the large regions. */ /* Initialize root pointer for the large regions. */