coreboot/src
Tim Wawrzynczak 8c93feda7f device: Add support for PCIe Resizable BARs
Section 7.8.6 of the PCIe spec (rev 4) indicates that some devices can
indicates support for "Resizable BARs" via a PCIe extended capability.

When support this capability is indicated by the device, the size of
each BAR is determined in a different way than the normal "moving
bits" method. Instead, a pair of capability and control registers is
allocated in config space for each BAR, which can be used to both
indicate the different sizes the device is capable of supporting for
the BAR (powers-of-2 number of bits from 20 [1 MiB] to 63 [8 EiB]), and
to also inform the device of the size that the allocator actually
reserved for the MMIO range.

This patch adds a Kconfig for a mainboard to select if it knows that it
will have a device that requires this support during PCI enumeration.
If so, there is a corresponding Kconfig to indicate the maximum number
of bits of address space to hand out to devices this way (again, limited
by what devices can support and each individual system may want to
support, but just like above, this number can range from 20 to 63) If
the device can support more bits than this Kconfig, the resource request
is truncated to the number indicated by this Kconfig.

BUG=b:214443809
TEST=compile (device with this capability not available yet),
also verify that no changes are seen in resource allocation for
google/brya0 before and after this change.

Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Change-Id: I14fcbe0ef09fdc7f6061bcf7439d1160d3bc4abf
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61215
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2022-02-16 20:19:07 +00:00
..
acpi treewide: Remove "ERROR: "/"WARN: " prefixes from log messages 2022-02-07 23:29:09 +00:00
arch arch/x86/id.S: Fix building with clang 2022-02-15 23:36:33 +00:00
commonlib src/lib: Add CBMEM tag id to parse ddr information 2022-02-09 00:47:49 +00:00
console console: Add missing va_end() in wrap_interactive_printf() 2022-02-09 17:38:54 +00:00
cpu cpu/x86/lapic: Fix SMP=n case with LEGACY_SMP_INIT 2022-02-11 13:53:56 +00:00
device device: Add support for PCIe Resizable BARs 2022-02-16 20:19:07 +00:00
drivers drivers/intel/fsp: Set FSP_LOG_LEVEL_ERR_WARN_INFO for DEBUG_RAM_SETUP 2022-02-16 15:38:00 +00:00
ec ec/starlabs/merlin: Adjust Keyboard Backlight configuration 2022-02-15 23:47:31 +00:00
include device: Add support for PCIe Resizable BARs 2022-02-16 20:19:07 +00:00
lib lib/device_tree.c: Change 'printk(BIOS_DEBUG, "ERROR:' to printk(BIOS_ERR, "' 2022-02-11 14:07:37 +00:00
mainboard mb/google/brya/var/agah: Change ELAN touchpad driver for eKT3744 2022-02-16 20:17:06 +00:00
northbridge nb/intel/ironlake/raminit_heci.c: Move to southbridge scope 2022-02-15 23:39:12 +00:00
security treewide: Remove "ERROR: "/"WARN: " prefixes from log messages 2022-02-07 23:29:09 +00:00
soc soc/amd/common/block/psp: add PSP command 2022-02-16 18:33:56 +00:00
southbridge nb/intel/ironlake/raminit_heci.c: Move to southbridge scope 2022-02-15 23:39:12 +00:00
superio treewide: Remove "ERROR: "/"WARN: " prefixes from log messages 2022-02-07 23:29:09 +00:00
vendorcode vendorcode/intel/fsp: Update FSP header file for Alder Lake N FSP v2503_00 2022-02-16 20:17:46 +00:00
Kconfig Kconfig: Show console DEBUG_FUNC if OVERRIDE_LOGLEVEL is set 2021-11-13 00:20:11 +00:00