===================================================================
@@ -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
}
===================================================================
@@ -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
===================================================================
@@ -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;
===================================================================
@@ -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();
}
===================================================================
@@ -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.
===================================================================
@@ -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)
===================================================================
@@ -8,4 +8,6 @@
#include "amdk8_pre_f.h"
#endif
+void showallroutes(int level, device_t dev);
+
#endif /* AMDK8_H */
===================================================================
@@ -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.
*/