UPSTREAM: amd/pi: Make BottomIo position configurable

Some PCI peripherals, such as FPGA accelerators, require a great amount
of memory mapped IO. This patch allows the user to select at build time
the bottom IO to leave enough space for such devices.

We cannot calculate this value at runtime because it has to be set
before the PCI devices are enumerated.

BUG=none
BRANCH=none
TEST=none

Change-Id: If3289ef28c08a2e18b0095ff2be3091e40f1acfa
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: a132892de6
Original-Change-Id: Ic590e8aa8b91ff89877cbff6afd10614d33dcf8d
Original-Credit-to: Kysti Mlkki <kyosti.malkki@gmail.com>
Original-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Original-Reviewed-on: https://review.coreboot.org/17980
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Reviewed-on: https://chromium-review.googlesource.com/427463
This commit is contained in:
Ricardo Ribalda Delgado 2016-12-28 15:16:22 +01:00 committed by chrome-bot
parent 9f192f2c00
commit 27c3dcb522
2 changed files with 14 additions and 1 deletions

View file

@ -20,6 +20,18 @@ config NORTHBRIDGE_AMD_PI
if NORTHBRIDGE_AMD_PI
config BOTTOMIO_POSITION
hex "Bottom of 32-bit IO space"
default 0xD0000000
help
If PCI peripherals with big BARs are connected to the system
the bottom of the IO must be decreased to allocate such
devices.
Declare the beginning of the 128MB-aligned MMIO region. This
option is useful when PCI peripherals requesting large address
ranges are present.
config CONSOLE_VGA_MULTI
bool
default n

View file

@ -140,7 +140,8 @@ AGESA_STATUS agesawrapper_amdinitpost(void)
// the compiler to flag the error if CONFIG_GFXUMA is not set.
PostParams->MemConfig.UmaMode = CONFIG_GFXUMA ? UMA_AUTO : UMA_NONE;
PostParams->MemConfig.UmaSize = 0;
PostParams->MemConfig.BottomIo = (UINT16)(0xD0000000 >> 24);
PostParams->MemConfig.BottomIo = (UINT16)
(CONFIG_BOTTOMIO_POSITION >> 24);
status = AmdInitPost (PostParams);
printk(
BIOS_SPEW,