Werner Zeh (werner.zeh@siemens.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17670
-gerrit
commit ccf30b5f264e24ed6d190cb348fc685d306875ca Author: Werner Zeh werner.zeh@siemens.com Date: Thu Dec 1 10:53:14 2016 +0100
vendorcode/siemens: Ensure a given info block is available for a field
While searching for a field in all blocks ensure that the checked block is available and can be used. In this way a field can be retrieved from every block and not just the first one.
Change-Id: Idbd7656ab0664763cb065f5e817193ad1d9e0871 Signed-off-by: Werner Zeh werner.zeh@siemens.com --- src/vendorcode/siemens/hwilib/hwilib.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/vendorcode/siemens/hwilib/hwilib.c b/src/vendorcode/siemens/hwilib/hwilib.c index 18880ff..df9bd22 100644 --- a/src/vendorcode/siemens/hwilib/hwilib.c +++ b/src/vendorcode/siemens/hwilib/hwilib.c @@ -396,7 +396,8 @@ static uint32_t hwilib_read_bytes (const struct param_info *param, uint8_t *dst, return 0; /* Take the first valid block to get the parameter from */ do { - if ((param->pos[i].len) && (param->pos[i].offset)) { + if ((param->pos[i].len) && (param->pos[i].offset) && + (blk_ptr[param->pos[i].blk_type])) { blk = blk_ptr[param->pos[i].blk_type]; break; }