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>
This commit is contained in:
Felix Held 2020-07-14 00:52:14 +02:00
parent 8ced938763
commit a319ac3a19
1 changed files with 7 additions and 0 deletions

View File

@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
#include <assert.h>
#include <device/pci.h> #include <device/pci.h>
#include <soc/pci_devs.h> #include <soc/pci_devs.h>
#include <soc/platform_descriptors.h> #include <soc/platform_descriptors.h>
@ -60,6 +61,9 @@ static void fill_dxio_descriptors(FSP_S_CONFIG *scfg,
{ {
size_t i; size_t i;
ASSERT_MSG(num <= FSPS_UPD_DXIO_DESCRIPTOR_COUNT,
"Too many DXIO descriptors provided.");
for (i = 0; i < num; i++) { for (i = 0; i < num; i++) {
memcpy(scfg->dxio_descriptor[i], &descs[i], sizeof(scfg->dxio_descriptor[0])); 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; size_t i;
ASSERT_MSG(num <= FSPS_UPD_DDI_DESCRIPTOR_COUNT,
"Too many DDI descriptors provided.");
for (i = 0; i < num; i++) { for (i = 0; i < num; i++) {
memcpy(&scfg->ddi_descriptor[i], &descs[i], sizeof(scfg->ddi_descriptor[0])); memcpy(&scfg->ddi_descriptor[i], &descs[i], sizeof(scfg->ddi_descriptor[0]));
} }