soc/intel/cannonlake: Fix return values for get_param_value
Commit 41483c9
(soc/intel/cannonlake: Add required FSP UPD changes for
CML) changed the enum values for PCH_SERIAL_IO_MODE so that 0 is
invalid and valid values start from 1. However, get_param_value was
not updated to correctly subtract 1 before returning any value. This
change adds a macro PCH_SERIAL_IO_INDEX to apply the subtract 1
operation on any value that get_param_value needs to return.
BUG=b:128946016
TEST=Verified that hatch boots successfully.
Change-Id: I4e32fcd1efe4a535251f0ec58662a2dc5f70e8b0
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/31974
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Reviewed-by: Maulik V Vaghela <maulik.v.vaghela@intel.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
52d79fbc6e
commit
4dfd8d690d
|
@ -40,22 +40,28 @@ static const int serial_io_dev[] = {
|
|||
PCH_DEVFN_UART2
|
||||
};
|
||||
|
||||
/*
|
||||
* Given an enum for PCH_SERIAL_IO_MODE, 1 needs to be subtracted to get the FSP
|
||||
* UPD expected value for Serial IO since valid enum index starts from 1.
|
||||
*/
|
||||
#define PCH_SERIAL_IO_INDEX(x) ((x) - 1)
|
||||
|
||||
static uint8_t get_param_value(const config_t *config, uint32_t dev_offset)
|
||||
{
|
||||
struct device *dev;
|
||||
|
||||
dev = dev_find_slot(0, serial_io_dev[dev_offset]);
|
||||
if (!dev || !dev->enabled)
|
||||
return PchSerialIoDisabled;
|
||||
return PCH_SERIAL_IO_INDEX(PchSerialIoDisabled);
|
||||
|
||||
if ((config->SerialIoDevMode[dev_offset] >= PchSerialIoMax) ||
|
||||
(config->SerialIoDevMode[dev_offset] == PchSerialIoNotInitialized))
|
||||
return PchSerialIoPci;
|
||||
return PCH_SERIAL_IO_INDEX(PchSerialIoPci);
|
||||
|
||||
/*
|
||||
* Correct Enum index starts from 1, so subtract 1 while returning value
|
||||
*/
|
||||
return config->SerialIoDevMode[dev_offset] - 1;
|
||||
return PCH_SERIAL_IO_INDEX(config->SerialIoDevMode[dev_offset]);
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_SOC_INTEL_COMETLAKE)
|
||||
|
|
Loading…
Reference in New Issue