pciexp_device: Propagate above-4G flag to all hotplug devices

The `IORESOURCE_ABOVE_4G` flag was only explicitly set for our dummy
device that reserves resources behind a hotplug port. The current re-
source allocator implicitly extends this to all devices below the port,
including real ones. Let's make that explicit, so future changes to the
allocator can't break this rule.

Change-Id: Id4c90b60682cf5c8949cde25362d286625b3e953
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66719
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
This commit is contained in:
Nico Huber
2022-08-15 00:08:58 +02:00
committed by Martin L Roth
parent 526c64249a
commit 577c6b9225
4 changed files with 20 additions and 1 deletions

View File

@@ -128,6 +128,7 @@ struct device {
unsigned int hidden : 1;
/* set if this device is used even in minimum PCI cases */
unsigned int mandatory : 1;
unsigned int hotplug_port : 1;
u8 command;
uint16_t hotplug_buses; /* Number of hotplug buses to allocate */
@@ -207,6 +208,9 @@ void add_more_links(struct device *dev, unsigned int total_links);
bool is_dev_enabled(const struct device *const dev);
bool is_devfn_enabled(unsigned int devfn);
/* Returns whether there is a hotplug port on the path to the given device. */
extern bool dev_path_hotplug(const struct device *);
/* Option ROM helper functions */
void run_bios(struct device *dev, unsigned long addr);