diff options
Diffstat (limited to 'src/northbridge/amd/amdk8')
-rw-r--r-- | src/northbridge/amd/amdk8/debug.c | 2 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/incoherent_ht.c | 3 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/northbridge.c | 2 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/raminit.c | 11 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/raminit.h | 6 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/setup_resource_map.c | 86 |
6 files changed, 37 insertions, 73 deletions
diff --git a/src/northbridge/amd/amdk8/debug.c b/src/northbridge/amd/amdk8/debug.c index 97ca25577c..5cb996aa89 100644 --- a/src/northbridge/amd/amdk8/debug.c +++ b/src/northbridge/amd/amdk8/debug.c @@ -84,7 +84,7 @@ static inline void dump_pci_device_index_wait(unsigned dev, uint32_t index_reg) } #endif -static void dump_pci_devices(void) +static inline void dump_pci_devices(void) { device_t dev; for(dev = PCI_DEV(0, 0, 0); diff --git a/src/northbridge/amd/amdk8/incoherent_ht.c b/src/northbridge/amd/amdk8/incoherent_ht.c index 4e295d3323..ddf613ea54 100644 --- a/src/northbridge/amd/amdk8/incoherent_ht.c +++ b/src/northbridge/amd/amdk8/incoherent_ht.c @@ -476,6 +476,7 @@ end_of_chain: ; } +#if 0 #if RAMINIT_SYSINFO == 1 static void ht_setup_chain(device_t udev, unsigned upos, struct sys_info *sysinfo) #else @@ -506,6 +507,8 @@ static int ht_setup_chain(device_t udev, unsigned upos) return ht_setup_chainx(udev, upos, 0, offset_unitid); #endif } +#endif + static int optimize_link_read_pointer(uint8_t node, uint8_t linkn, uint8_t linkt, uint8_t val) { uint32_t dword, dword_old; diff --git a/src/northbridge/amd/amdk8/northbridge.c b/src/northbridge/amd/amdk8/northbridge.c index 373501c9ad..b6cc32426a 100644 --- a/src/northbridge/amd/amdk8/northbridge.c +++ b/src/northbridge/amd/amdk8/northbridge.c @@ -925,7 +925,7 @@ static void amdk8_domain_set_resources(device_t dev) #if 1 #warning "FIXME improve mtrr.c so we don't use up all of the mtrrs with a 64M MMIO hole" - /* Round the mmio hold to 64M */ + /* Round the mmio hole to 64M */ mmio_basek &= ~((64*1024) - 1); #endif diff --git a/src/northbridge/amd/amdk8/raminit.c b/src/northbridge/amd/amdk8/raminit.c index 577e7fd4bb..ad257d0ed6 100644 --- a/src/northbridge/amd/amdk8/raminit.c +++ b/src/northbridge/amd/amdk8/raminit.c @@ -7,6 +7,7 @@ #include <cpu/x86/cache.h> #include <cpu/x86/mtrr.h> #include <stdlib.h> +#include <reset.h> #include "raminit.h" #include "amdk8.h" @@ -564,11 +565,13 @@ static int is_dual_channel(const struct mem_controller *ctrl) static int is_opteron(const struct mem_controller *ctrl) { - /* Test to see if I am an Opteron. - * FIXME Socket 939 based Athlon64 have dual channel capability, - * too, so we need a better test for Opterons + /* Test to see if I am an Opteron. Socket 939 based Athlon64 + * have dual channel capability, too, so we need a better test + * for Opterons. + * However, all code uses is_opteron() to find out whether to + * use dual channel, so if we really check for opteron here, we + * need to fix up all code using this function, too. */ -#warning "FIXME: Implement a better test for Opterons" uint32_t nbcap; nbcap = pci_read_config32(ctrl->f3, NORTHBRIDGE_CAP); return !!(nbcap & NBCAP_128Bit); diff --git a/src/northbridge/amd/amdk8/raminit.h b/src/northbridge/amd/amdk8/raminit.h index f46e58defe..a5935612b8 100644 --- a/src/northbridge/amd/amdk8/raminit.h +++ b/src/northbridge/amd/amdk8/raminit.h @@ -11,4 +11,10 @@ struct mem_controller { uint16_t channel1[DIMM_SOCKETS]; }; +#if defined(__PRE_RAM__) && defined(RAMINIT_SYSINFO) && RAMINIT_SYSINFO == 1 +void sdram_initialize(int controllers, const struct mem_controller *ctrl, void *sysinfo); +#else +void sdram_initialize(int controllers, const struct mem_controller *ctrl); +#endif + #endif /* RAMINIT_H */ diff --git a/src/northbridge/amd/amdk8/setup_resource_map.c b/src/northbridge/amd/amdk8/setup_resource_map.c index 96f1c5dca6..81beed2631 100644 --- a/src/northbridge/amd/amdk8/setup_resource_map.c +++ b/src/northbridge/amd/amdk8/setup_resource_map.c @@ -3,15 +3,14 @@ static void setup_resource_map_offset(const unsigned int *register_values, int max, unsigned offset_pci_dev, unsigned offset_io_base) { int i; -// print_debug("setting up resource map offset...."); -#if 0 - print_debug("\n"); +#if RES_DEBUG + printk(BIOS_DEBUG, "setting up resource map offset....\n"); #endif for(i = 0; i < max; i += 3) { device_t dev; unsigned where; unsigned long reg; -#if 0 +#if RES_DEBUG prink_debug("%08x <- %08x\n", register_values[i] + offset_pci_dev, register_values[i+2]); #endif dev = (register_values[i] & ~0xfff) + offset_pci_dev; @@ -27,7 +26,9 @@ static void setup_resource_map_offset(const unsigned int *register_values, int m pci_write_config32(register_values[i], reg); #endif } -// print_debug("done.\n"); +#if RES_DEBUG + printk(BIOS_DEBUG, "done.\n"); +#endif } #define RES_PCI_IO 0x10 @@ -40,12 +41,7 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int int i; #if RES_DEBUG - print_debug("setting up resource map ex offset...."); - -#endif - -#if RES_DEBUG - print_debug("\n"); + printk(BIOS_DEBUG, "setting up resource map ex offset....\n"); #endif for(i = 0; i < max; i += 4) { #if RES_DEBUG @@ -112,21 +108,19 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int } #if RES_DEBUG - print_debug("done.\n"); + printk(BIOS_DEBUG, "done.\n"); #endif } + +#if defined(SOUTHBRIDGE_NVIDIA_MCP55) || defined(SOUTHBRIDGE_NVIDIA_CK804) static void setup_resource_map_x(const unsigned int *register_values, int max) { int i; #if RES_DEBUG - print_debug("setting up resource map ex offset...."); - + printk(BIOS_DEBUG, "setting up resource map ex....\n"); #endif -#if RES_DEBUG - print_debug("\n"); -#endif for(i = 0; i < max; i += 4) { #if RES_DEBUG printk(BIOS_DEBUG, "%04x: %02x %08x <- & %08x | %08x\n", @@ -188,47 +182,12 @@ static void setup_resource_map_x(const unsigned int *register_values, int max) } #if RES_DEBUG - print_debug("done.\n"); + printk(BIOS_DEBUG, "done.\n"); #endif } - -#if 0 -static void setup_iob_resource_map(const unsigned int *register_values, int max) -{ - int i; - - for(i = 0; i < max; i += 3) { - unsigned where; - unsigned reg; - - where = register_values[i]; -#if 0 - udelay(2000); - print_debug_hex16(where); -#endif - reg = inb(where); -#if 0 - print_debug("="); - print_debug_hex8(reg); #endif - reg &= register_values[i+1]; - reg |= register_values[i+2]; #if 0 - print_debug(" <- "); - print_debug_hex8(reg); -#endif - outb(reg, where); -#if 0 - - print_debug(" -> "); - reg = inb(where); - print_debug_hex8(reg); - print_debug("\n"); -#endif - } -} - static void setup_io_resource_map(const unsigned int *register_values, int max) { int i; @@ -240,30 +199,26 @@ static void setup_io_resource_map(const unsigned int *register_values, int max) where = register_values[i]; #if 0 udelay(2000); - print_debug_hex16(where); + printk(BIOS_DEBUG, "%04x", where); #endif reg = inl(where); #if 0 udelay(2000); - print_debug("="); - print_debug_hex32(reg); + printk(BIOS_DEBUG, "=%08x", reg); #endif reg &= register_values[i+1]; reg |= register_values[i+2]; #if 0 udelay(2000); - print_debug(" <- "); - print_debug_hex32(reg); + printk(BIOS_DEBUG, " <- %08x", reg); #endif outl(reg, where); #if 0 udelay(2000); - print_debug(" -> "); reg = inl(where); - print_debug_hex32(reg); - print_debug("\n"); + printk(BIOS_DEBUG, " -> %08x\n", reg); #endif } } @@ -276,9 +231,8 @@ static void setup_mem_resource_map(const unsigned int *register_values, int max) unsigned where; unsigned long reg; #if 0 - print_debug_hex32(register_values[i]); - print_debug(" <-"); - print_debug_hex32(register_values[i+2]); + prink(BIOS_DEBUG, "%08x <- %08x\n", + register_values[i], register_values[i+2]); #endif where = register_values[i]; reg = read32(where); @@ -286,10 +240,8 @@ static void setup_mem_resource_map(const unsigned int *register_values, int max) reg |= register_values[i+2]; write32( where, reg); #if 0 - print_debug(" RB "); reg = read32(where); - print_debug_hex32(reg); - print_debug("\n"); + prink(BIOS_DEBUG, " RB %08x\n", reg); #endif } } |