summaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/xeon_sp/util.c')
-rw-r--r--src/soc/intel/xeon_sp/util.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/soc/intel/xeon_sp/util.c b/src/soc/intel/xeon_sp/util.c
index 310421566c..b4f7eaab3c 100644
--- a/src/soc/intel/xeon_sp/util.c
+++ b/src/soc/intel/xeon_sp/util.c
@@ -119,6 +119,23 @@ const IIO_UDS *get_iio_uds(void)
return hob;
}
+void get_iiostack_info(struct iiostack_resource *info)
+{
+ const IIO_UDS *hob = get_iio_uds();
+
+ // copy IIO Stack info from FSP HOB
+ info->no_of_stacks = 0;
+ for (int s = 0; s < hob->PlatformData.numofIIO; ++s) {
+ for (int x = 0; x < MAX_IIO_STACK; ++x) {
+ const STACK_RES *ri = &hob->PlatformData.IIO_resource[s].StackRes[x];
+ if (!is_iio_stack_res(ri))
+ continue;
+ assert(info->no_of_stacks < (CONFIG_MAX_SOCKET * MAX_IIO_STACK));
+ memcpy(&info->res[info->no_of_stacks++], ri, sizeof(STACK_RES));
+ }
+ }
+}
+
unsigned int soc_get_num_cpus(void)
{
/* The FSP IIO UDS HOB has field numCpus, it is actually socket count */