OXPCIe: Reinitialize UART after pci_dev_set_resources()

... and only pull in early init code if the OXPCIe is used for console.

Change-Id: I01feca3b9e8376a75c17554ba1bd200d523dff8d
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/692
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Stefan Reinauer 2011-05-10 12:54:56 -07:00 committed by Stefan Reinauer
parent 8907e81626
commit dfab0f69ae
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,5 @@
driver-$(CONFIG_DRIVERS_OXFORD_OXPCIE) += oxpcie.c driver-$(CONFIG_DRIVERS_OXFORD_OXPCIE) += oxpcie.c
ifeq ($(CONFIG_CONSOLE_SERIAL8250MEM),y)
romstage-$(CONFIG_DRIVERS_OXFORD_OXPCIE) += oxpcie_early.c romstage-$(CONFIG_DRIVERS_OXFORD_OXPCIE) += oxpcie_early.c
endif

View File

@ -23,7 +23,6 @@
#include <device/pci_ids.h> #include <device/pci_ids.h>
#include <console/console.h> #include <console/console.h>
#include <arch/io.h> #include <arch/io.h>
#include <uart8250.h>
static void oxford_oxpcie_enable(device_t dev) static void oxford_oxpcie_enable(device_t dev)
{ {
@ -41,9 +40,20 @@ static void oxford_oxpcie_enable(device_t dev)
(read32(res->base + 4) & 3)); (read32(res->base + 4) & 3));
} }
static void oxford_oxpcie_set_resources(struct device *dev)
{
pci_dev_set_resources(dev);
#if CONFIG_CONSOLE_SERIAL8250MEM
/* Re-initialize OXPCIe base address after set_resources */
uartmem_init();
#endif
}
static struct device_operations oxford_oxpcie_ops = { static struct device_operations oxford_oxpcie_ops = {
.read_resources = pci_dev_read_resources, .read_resources = pci_dev_read_resources,
.set_resources = pci_dev_set_resources, .set_resources = oxford_oxpcie_set_resources,
.enable_resources = pci_dev_enable_resources, .enable_resources = pci_dev_enable_resources,
.init = oxford_oxpcie_enable, .init = oxford_oxpcie_enable,
.scan_bus = 0, .scan_bus = 0,