diff options
author | Felix Singer <felix.singer@secunet.com> | 2020-10-13 18:05:03 +0200 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2020-10-20 20:35:24 +0000 |
commit | 9e5bc74cc7c2a6ced08163418299cc753b8357f0 (patch) | |
tree | 48da51fe50f30085821e6848ca5077438eb43af5 | |
parent | 6034b0f184e0fd4063891f24b71ac4dc85751274 (diff) | |
download | coreboot-9e5bc74cc7c2a6ced08163418299cc753b8357f0.tar.xz |
libpayload/arch/x86: Introduce pacc pointer in sysinfo_t struct
Currently, the PCI bus gets scanned multiple times for various reasons
(e.g. to read the device class). Therefore, and in preparation to
CB:46416, introduce the pacc pointer in the sysinfo_t struct and scan
the PCI bus while gathering system information.
Change-Id: I496c5a3d78c7fb5d7c9f119a0c9a0314d54e729f
Signed-off-by: Felix Singer <felix.singer@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46348
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r-- | payloads/libpayload/arch/x86/sysinfo.c | 5 | ||||
-rw-r--r-- | payloads/libpayload/include/sysinfo.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/payloads/libpayload/arch/x86/sysinfo.c b/payloads/libpayload/arch/x86/sysinfo.c index ffa57bb08f..5dd606746f 100644 --- a/payloads/libpayload/arch/x86/sysinfo.c +++ b/payloads/libpayload/arch/x86/sysinfo.c @@ -78,5 +78,10 @@ int lib_get_sysinfo(void) lib_sysinfo.memrange[1].type = CB_MEM_RAM; } +#if CONFIG(LP_PCI) + pci_init(&lib_sysinfo.pacc); + pci_scan_bus(&lib_sysinfo.pacc); +#endif + return ret; } diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h index fe3d3304c4..a3f61e7ffa 100644 --- a/payloads/libpayload/include/sysinfo.h +++ b/payloads/libpayload/include/sysinfo.h @@ -29,6 +29,7 @@ #ifndef _SYSINFO_H #define _SYSINFO_H +#include <pci/pci.h> #include <stdint.h> /* Maximum number of memory range definitions. */ @@ -130,6 +131,10 @@ struct sysinfo_t { /* Pointer to FMAP cache in CBMEM */ uintptr_t fmap_cache; + +#if CONFIG(LP_PCI) + struct pci_access pacc; +#endif }; extern struct sysinfo_t lib_sysinfo; |