blob: 3a66b884f27cdd1de361c79fe3f31faa470ef26d [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-only */
#include <console/console.h>
#include <drivers/vpd/vpd.h>
#include <drivers/ocp/include/vpd.h>
int get_int_from_vpd_range(const char *const key, const int fallback, const int min,
const int max)
{
int val = fallback;
if (!vpd_get_int(key, VPD_RW_THEN_RO, &val))
printk(BIOS_INFO, "%s: not able to get VPD %s, default set to %d\n",
__func__, key, fallback);
else
printk(BIOS_DEBUG, "%s: VPD %s, got %d\n", __func__, key, val);
if (val < min || val > max) {
printk(BIOS_INFO, "Invalid VPD %s value, set default value to %d\n",
key, fallback);
val = fallback;
}
return val;
}
bool get_bool_from_vpd(const char *const key, const bool fallback)
{
uint8_t val;
val = (uint8_t)fallback;
if (!vpd_get_bool(key, VPD_RW_THEN_RO, &val))
printk(BIOS_INFO, "%s: not able to get VPD %s, default set to %d\n",
__func__, key, fallback);
else
printk(BIOS_DEBUG, "%s: VPD %s, got %d\n", __func__, key, val);
return (bool)val;
}