Attached is the output from svn diff. I'll test it with gcc 4.4 and
let you know if it hangs or not.
--
Hugh Greenberg
Myles Watson wrote:
On Wed, Nov 4, 2009 at 4:23 PM, Hugh Greenberg <[email protected]
<mailto:[email protected]>> wrote:
Myles,
Everything seems to be working well. I had one sporadic hang
while testing at what looked to be at the same place as the
initial first hang. That was the only instance since I moved to
gcc 3.4. We were testing so many things that I don't remember the
exact scenario. I'm satisfied though. If I see it happening
again, I'll try to capture it and send it to you.
Sounds good. I'd be interested in whether or not it hangs with the
newer gcc still, too. Since everything else is working, it would be
nice to know if that's really an issue.
You deserve a medal for this. Thanks a lot.
No problem. Would you mind sending svn diff from your working tree so
I can make a patch? I've lost track of which patches you're using.
Thanks,
Myles
Index: src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c
===================================================================
--- src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c (revision 4887)
+++ src/mainboard/amd/serengeti_cheetah/cache_as_ram_auto.c (working copy)
@@ -50,6 +50,7 @@
#include "southbridge/amd/amd8111/amd8111_early_smbus.c"
#include "northbridge/amd/amdk8/raminit.h"
#include "cpu/amd/model_fxx/apic_timer.c"
+#include "northbridge/amd/amdk8/util.c"
#endif
@@ -393,6 +394,7 @@
dump_pci_device_index_wait(PCI_DEV(0, 0x19, 2), 0x98);
#endif
+ showallroutes(BIOS_DEBUG, PCI_DEV(0, 0x18, 1));
post_cache_as_ram(); // bsp swtich stack to ram and copy sysinfo ram now
}
Index: src/mainboard/arima/hdama/Kconfig
===================================================================
--- src/mainboard/arima/hdama/Kconfig (revision 4887)
+++ src/mainboard/arima/hdama/Kconfig (working copy)
@@ -73,7 +73,7 @@
config SB_HT_CHAIN_ON_BUS0
int
- default 0
+ default 1
depends on BOARD_ARIMA_HDAMA
config HT_CHAIN_END_UNITID_BASE
Index: src/mainboard/arima/hdama/mptable.c
===================================================================
--- src/mainboard/arima/hdama/mptable.c (revision 4887)
+++ src/mainboard/arima/hdama/mptable.c (working copy)
@@ -65,7 +65,7 @@
dev = dev_find_slot(0, PCI_DEVFN(0x18, 1));
if (!dev) {
- return 0;
+ return 0xff;
}
for(reg = 0xE0; reg < 0xF0; reg += 0x04) {
uint32_t config_map;
@@ -89,7 +89,7 @@
return bus_base;
}
}
- return 0;
+ return 0xff;
}
unsigned max_apicid(void)
@@ -152,9 +152,9 @@
/* HT chain 0 */
bus_chain_0 = node_link_to_bus(0, 0);
- if (bus_chain_0 == 0) {
+ if (bus_chain_0 == 0xff) {
printk_debug("ERROR - cound not find bus for node 0 chain 0, using defaults\n");
- bus_chain_0 = 1;
+ bus_chain_0 = 0;
}
/* 8111 */
@@ -165,7 +165,7 @@
bus_isa++;
}
else {
- printk_debug("ERROR - could not find PCI 1:03.0, using defaults\n");
+ printk_debug("ERROR - could not find PCI %02x:03.0, using defaults\n", bus_chain_0);
bus_8111_1 = 4;
bus_isa = 5;
@@ -177,7 +177,7 @@
}
else {
- printk_debug("ERROR - could not find PCI 1:01.0, using defaults\n");
+ printk_debug("ERROR - could not find PCI %02x:01.0, using defaults\n", bus_chain_0);
bus_8131_1 = 2;
}
@@ -188,7 +188,7 @@
}
else {
- printk_debug("ERROR - could not find PCI 1:02.0, using defaults\n");
+ printk_debug("ERROR - could not find PCI %02x:02.0, using defaults\n", bus_chain_0);
bus_8131_2 = 3;
}
@@ -327,16 +327,21 @@
int reset;
int i;
+ unsigned char bus_chain_0 = node_link_to_bus(0, 0);
reset = 0;
printk_debug("Looking for bad PCIX MHz input\n");
- dev = dev_find_slot(1, PCI_DEVFN(0x02,0));
+ dev = dev_find_slot(bus_chain_0, PCI_DEVFN(0x02,0));
+ if (!dev)
+ printk_debug("Couldn't find %02x:02.0 \n", bus_chain_0);
data = pci_read_config32(dev, 0xa0);
if(!(((data>>16)&0x03)==0x03)) {
reset=1;
printk_debug("Bad PCIX MHz - Reset\n");
}
printk_debug("Looking for bad Hot Swap Enable\n");
- dev = dev_find_slot(1, PCI_DEVFN(0x01,0));
+ dev = dev_find_slot(bus_chain_0, PCI_DEVFN(0x01,0));
+ if (!dev)
+ printk_debug("Couldn't find %02x:01.0 \n", bus_chain_0);
data = pci_read_config32(dev, 0x48);
if(data & 0x0c) {
reset=1;
Index: src/mainboard/arima/hdama/cache_as_ram_auto.c
===================================================================
--- src/mainboard/arima/hdama/cache_as_ram_auto.c (revision 4887)
+++ src/mainboard/arima/hdama/cache_as_ram_auto.c (working copy)
@@ -19,6 +19,7 @@
#include "southbridge/amd/amd8111/amd8111_early_smbus.c"
#include "northbridge/amd/amdk8/raminit.h"
#include "cpu/amd/model_fxx/apic_timer.c"
+#include "northbridge/amd/amdk8/util.c"
#include "lib/delay.c"
#include "cpu/x86/lapic/boot_cpu.c"
@@ -213,5 +214,6 @@
sdram_initialize(nodes, ctrl);
+ showallroutes(BIOS_DEBUG, PCI_DEV(0, 0x18, 1));
post_cache_as_ram();
}
Index: src/northbridge/amd/amdk8/Makefile.inc
===================================================================
--- src/northbridge/amd/amdk8/Makefile.inc (revision 4887)
+++ src/northbridge/amd/amdk8/Makefile.inc (working copy)
@@ -2,6 +2,7 @@
driver-y += misc_control.o
obj-y += get_sblk_pci1234.o
obj-$(CONFIG_GENERATE_ACPI_TABLES) += amdk8_acpi.o
+obj-y += util.o
# Not sure what to do with these yet. How did raminit_test even work?
# Should be a target in -y form.
Index: src/northbridge/amd/amdk8/northbridge.c
===================================================================
--- src/northbridge/amd/amdk8/northbridge.c (revision 4887)
+++ src/northbridge/amd/amdk8/northbridge.c (working copy)
@@ -575,6 +575,7 @@
#if 0
printk_debug("NB: Function 0 Misc Control.. ");
#endif
+ showallroutes(BIOS_DEBUG, dev_find_slot(0, PCI_DEVFN(0x18,1)));
#if 0
printk_debug("done.\n");
#endif
@@ -1075,6 +1076,7 @@
}
assign_resources(&dev->link[0]);
+ showallroutes(BIOS_DEBUG, dev_find_slot(0, PCI_DEVFN(0x18,1)));
}
static unsigned int amdk8_domain_scan_bus(device_t dev, unsigned int max)
Index: src/northbridge/amd/amdk8/amdk8.h
===================================================================
--- src/northbridge/amd/amdk8/amdk8.h (revision 4887)
+++ src/northbridge/amd/amdk8/amdk8.h (working copy)
@@ -8,4 +8,6 @@
#include "amdk8_pre_f.h"
#endif
+void showallroutes(int level, device_t dev);
+
#endif /* AMDK8_H */
Index: src/arch/i386/lib/pci_ops_auto.c
===================================================================
--- src/arch/i386/lib/pci_ops_auto.c (revision 4887)
+++ src/arch/i386/lib/pci_ops_auto.c (working copy)
@@ -47,6 +47,9 @@
{
unsigned int tmp;
+ printk_debug("%s\n", __func__);
+ printk_debug("PCI: Forcing configuration type 1\n");
+ return &pci_cf8_conf1;
/*
* Check if configuration type 1 works.
*/
--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot