pci: Add config for Enhanced Allocation

Add a config to control whether Enhanced Allocation is supported by the
driver.

Signed-off-by: Andrew Scull <ascull@google.com>
This commit is contained in:
Andrew Scull 2022-04-21 16:11:16 +00:00 committed by Tom Rini
parent 0699a78c0c
commit 3b92018675
2 changed files with 17 additions and 2 deletions

View File

@ -67,6 +67,13 @@ config PCI_SRIOV
if available on a PCI Physical Function device and probe for
applicable drivers.
config PCI_ENHANCED_ALLOCATION
bool "Enable support for Enhanced Allocation of resources"
default y
help
Enable support for Enhanced Allocation which can be used by supported
devices in place of traditional BARS for allocation of resources.
config PCI_ARID
bool "Enable Alternate Routing-ID support for PCI"
help

View File

@ -645,7 +645,11 @@ int dm_pci_hose_probe_bus(struct udevice *bus)
return log_msg_ret("probe", -EINVAL);
}
ea_pos = dm_pci_find_capability(bus, PCI_CAP_ID_EA);
if (IS_ENABLED(CONFIG_PCI_ENHANCED_ALLOCATION))
ea_pos = dm_pci_find_capability(bus, PCI_CAP_ID_EA);
else
ea_pos = 0;
if (ea_pos) {
dm_pci_read_config8(bus, ea_pos + sizeof(u32) + sizeof(u8),
&reg);
@ -1579,7 +1583,11 @@ void *dm_pci_map_bar(struct udevice *dev, int bar, size_t offset, size_t len,
* Incase of virtual functions, pdata will help read VF BEI
* and EA entry size.
*/
ea_off = dm_pci_find_capability(udev, PCI_CAP_ID_EA);
if (IS_ENABLED(CONFIG_PCI_ENHANCED_ALLOCATION))
ea_off = dm_pci_find_capability(udev, PCI_CAP_ID_EA);
else
ea_off = 0;
if (ea_off)
return dm_pci_map_ea_bar(udev, bar, offset, len, ea_off, pdata);