coreboot/src/device
Tim Wawrzynczak dbcf7b1621 device/pci_device: Add notion of "hidden" PCI devices
On some SoCs, there are PCI devices that may get hidden from PCI
enumeration by platform firmware. Because the Vendor ID reads back as
0xffffffff, it appears that there is no PCI device located at that BDF.
However, because the device does exist, designers may wish to hang its
PCI resources off of a real __pci_driver, as well as have it participate
in ACPI table generation.

This patch extends the semantics of the 'hidden' keyword in
devicetree.cb. If a device now uses 'hidden' instead of 'on', then it
will be assumed during PCI enumeration that the device indeed does
exist, and it will not be removed as a "leftover device." This allows
child devices to be enumerated correctly and also PCI resources can be
designated from the {read,set}_resources callbacks.

It should be noted that as of this commit, there are precisely 0 devices
using 'hidden' in their devicetree.cb files, so this should be a safe
thing to do.

Later patches will begin moving PCI resources from random places (typically
hung off of fixed SA and LPC) into the PMC device (procedure will vary per-
platform).

Change-Id: I16c2d3e1d1433343e63dfc16856cff69cd815e2a
Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/41384
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
2020-05-20 09:47:35 +00:00
..
dram treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
oprom src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
azalia_device.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cardbus_device.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cpu_device.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
device.c Revert "device: Enable resource allocator to use multiple ranges" 2020-05-16 17:48:52 +00:00
device_const.c util/sconfig: Add LPC and ESPI buses 2020-05-12 20:12:17 +00:00
device_util.c util/sconfig: Add LPC and ESPI buses 2020-05-12 20:12:17 +00:00
hypertransport.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
i2c.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
i2c_bus.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
Kconfig src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
Makefile.inc Add buffer_to/from_fifo32(_prefix) helpers 2019-08-22 10:36:22 +00:00
mmio.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pci_class.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pci_device.c device/pci_device: Add notion of "hidden" PCI devices 2020-05-20 09:47:35 +00:00
pci_early.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pci_ops.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pci_rom.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pciexp_device.c Revert "pciexp_device: Add option to allocate prefetch memory above 4G boundary" 2020-05-16 17:48:04 +00:00
pcix_device.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pnp_device.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
root_device.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
smbus_ops.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
software_i2c.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00