Author: myles Date: Mon Sep 13 16:43:02 2010 New Revision: 5805 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5805
Log: Print an error and correct pci scan limits. Skip sb700 ISA DMA init if needed.
Signed-off-by: Juhana Helovuo juhe@iki.fi Acked-by: Myles Watson mylesgw@gmail.com
Modified: trunk/src/devices/pci_device.c trunk/src/southbridge/amd/sb700/Kconfig trunk/src/southbridge/amd/sb700/sb700_lpc.c
Modified: trunk/src/devices/pci_device.c ============================================================================== --- trunk/src/devices/pci_device.c Mon Sep 13 15:23:20 2010 (r5804) +++ trunk/src/devices/pci_device.c Mon Sep 13 16:43:02 2010 (r5805) @@ -1019,6 +1019,14 @@ printk(BIOS_DEBUG, "PCI: pci_scan_bus for bus %02x\n", bus->secondary); #endif
+ // Maximum sane devfn is 0xFF + if (max_devfn > 0xff) { + printk(BIOS_ERR, "PCI: pci_scan_bus limits devfn %x - devfn %x\n", + min_devfn, max_devfn ); + printk(BIOS_ERR, "PCI: pci_scan_bus upper limit too big. Using 0xff.\n"); + max_devfn=0xff; + } + old_devices = bus->children; bus->children = NULL;
Modified: trunk/src/southbridge/amd/sb700/Kconfig ============================================================================== --- trunk/src/southbridge/amd/sb700/Kconfig Mon Sep 13 15:23:20 2010 (r5804) +++ trunk/src/southbridge/amd/sb700/Kconfig Mon Sep 13 16:43:02 2010 (r5805) @@ -20,3 +20,9 @@ config SOUTHBRIDGE_AMD_SB700 bool select IOAPIC + +config SOUTHBRIDGE_AMD_SB700_SKIP_ISA_DMA_INIT + bool + default n + depends on SOUTHBRIDGE_AMD_SB700 +
Modified: trunk/src/southbridge/amd/sb700/sb700_lpc.c ============================================================================== --- trunk/src/southbridge/amd/sb700/sb700_lpc.c Mon Sep 13 15:23:20 2010 (r5804) +++ trunk/src/southbridge/amd/sb700/sb700_lpc.c Mon Sep 13 16:43:02 2010 (r5805) @@ -42,7 +42,11 @@ pci_write_config32(sm_dev, 0x64, dword);
/* Initialize isa dma */ +#if CONFIG_SOUTHBRIDGE_AMD_SB700_SKIP_ISA_DMA_INIT + printk(BIOS_DEBUG, "Skipping isa_dma_init() to avoid getting stuck.\n"); +#else isa_dma_init(); +#endif
/* Enable DMA transaction on the LPC bus */ byte = pci_read_config8(dev, 0x40);