aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp/skx
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2023-08-31 18:19:09 +0200
committerLean Sheng Tan <sheng.tan@9elements.com>2024-01-22 13:52:48 +0000
commit470f1d38857bfa08aab2991fe5f0080aa7dc2526 (patch)
tree781c4b10fb59b0e469ca780ef03ec2ac1a76e202 /src/soc/intel/xeon_sp/skx
parentf40e59c83867b04599b6c4b6d07ad0c7d51eb293 (diff)
soc/intel/xeon_sp: Scan and allocate resources on all stacks
The code can now deal with stacks that have no resources so just hook them all up. Intel XEON-SP FSP reports all report the state of its stacks, which comprise of PCI root bridges and their respective resources, like PCI busses, IO and MEM resources, via HOB. Parsing all of those into native coreboot structures makes it possible to handle those in a more native fashion like use PCI drivers, native helper functions, ... As opposed parsing those structures again out of the HOB each time. This makes code reuse across the tree more feasible. An additional advantage is that Linux does not need to redo resource allocation since the one done by coreboot will be valid, which potentially decreases boot time. TEST=intel/archercity CRB Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Signed-off-by: Shuo Liu <shuo.liu@intel.com> Change-Id: Id72c6e4499e99df3b7ca821ab2893cbcc869dbcd Reviewed-on: https://review.coreboot.org/c/coreboot/+/78332 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Diffstat (limited to 'src/soc/intel/xeon_sp/skx')
-rw-r--r--src/soc/intel/xeon_sp/skx/soc_util.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/soc/intel/xeon_sp/skx/soc_util.c b/src/soc/intel/xeon_sp/skx/soc_util.c
index d61d07489f..a5db8fd309 100644
--- a/src/soc/intel/xeon_sp/skx/soc_util.c
+++ b/src/soc/intel/xeon_sp/skx/soc_util.c
@@ -54,15 +54,9 @@ const struct SystemMemoryMapHob *get_system_memory_map(void)
return memmap_addr;
}
-bool stack_needs_resource_alloc(const STACK_RES *res)
-{
- // TODO: do we have situation with only bux 0 and one stack?
- return res->BusBase < res->BusLimit;
-}
-
bool is_pcie_iio_stack_res(const STACK_RES *res)
{
- return stack_needs_resource_alloc(res);
+ return res->BusBase < res->BusLimit;
}
uint8_t get_stack_busno(const uint8_t stack)