fw_config: Use UNDEFINED_FW_CONFIG to mean unprovisioned

A mainboard might want to configure some things differently when a
device is in an unprovisioned state. In the case when fw_config comes
from the Chromium EC, an unprovisioned device will not have a FW_CONFIG
tag in its CBI. This patch will set the fw_config value to
UNDEFINED_FW_CONFIG in the case of an error retrieving the value, as
well as adding a function, `fw_config_is_provisioned()` to indicate the
provisioning status.

BUG=none
TEST=remove fw_config from chromium EC CBI, add code to mainboard to
print return value of fw_config_is_provisioned() (`0`), add
fw_config back to CBI, run same test and see `1`.

Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Change-Id: Ib3046233667e97a5f78961fabacbeb3099b3d442
Reviewed-on: https://review.coreboot.org/c/coreboot/+/47956
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Tim Wawrzynczak
2020-11-24 10:33:00 -07:00
parent 5258f4f93e
commit 473bc8c892
2 changed files with 15 additions and 2 deletions

View File

@@ -56,6 +56,12 @@ bool fw_config_probe(const struct fw_config *match);
*/
void fw_config_for_each_found(void (*cb)(const struct fw_config *config, void *arg), void *arg);
/**
* fw_config_is_provisioned() - Determine if FW_CONFIG has been provisioned.
* Return %true if FW_CONFIG has been provisioned, %false otherwise.
*/
bool fw_config_is_provisioned(void);
/**
* fw_config_get_found() - Return a pointer to the fw_config struct for a given field.
* @field_mask: A field mask from static.h, e.g., FW_CONFIG_FIELD_FEATURE_MASK