summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2020-07-14 00:52:14 +0200
committerFelix Held <felix-coreboot@felixheld.de>2020-07-24 20:29:23 +0000
commita319ac3a19883bd826a47a85d1c6586d38446a7b (patch)
tree7c4103ea5b7a15d775a8382f0c06d0969d39399c
parent8ced938763a32ddd53909b58a603b3ba2640c8e4 (diff)
downloadcoreboot-a319ac3a19883bd826a47a85d1c6586d38446a7b.tar.xz
soc/amd/picasso/fsp_params: add asserts for descriptor count
With the updated FSP UPD headers there are enough DXIO descriptor slots in the UPD, so we can now add asserts to make sure that the mainboard doesn't pass more DXIO/DDI descriptors than the UPD has slots for. This is part of the DXIO/DDI descriptor handling cleanup. BUG=b:158695393 Change-Id: Ia220d5a9d4ff11707b795b04662ff7eead4e2888 Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/43435 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/soc/amd/picasso/fsp_params.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/soc/amd/picasso/fsp_params.c b/src/soc/amd/picasso/fsp_params.c
index 8683e9b836..e7169d1283 100644
--- a/src/soc/amd/picasso/fsp_params.c
+++ b/src/soc/amd/picasso/fsp_params.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
+#include <assert.h>
#include <device/pci.h>
#include <soc/pci_devs.h>
#include <soc/platform_descriptors.h>
@@ -60,6 +61,9 @@ static void fill_dxio_descriptors(FSP_S_CONFIG *scfg,
{
size_t i;
+ ASSERT_MSG(num <= FSPS_UPD_DXIO_DESCRIPTOR_COUNT,
+ "Too many DXIO descriptors provided.");
+
for (i = 0; i < num; i++) {
memcpy(scfg->dxio_descriptor[i], &descs[i], sizeof(scfg->dxio_descriptor[0]));
}
@@ -70,6 +74,9 @@ static void fill_ddi_descriptors(FSP_S_CONFIG *scfg,
{
size_t i;
+ ASSERT_MSG(num <= FSPS_UPD_DDI_DESCRIPTOR_COUNT,
+ "Too many DDI descriptors provided.");
+
for (i = 0; i < num; i++) {
memcpy(&scfg->ddi_descriptor[i], &descs[i], sizeof(scfg->ddi_descriptor[0]));
}