diff options
Diffstat (limited to 'src/northbridge/amd/amdk8/setup_resource_map.c')
-rw-r--r-- | src/northbridge/amd/amdk8/setup_resource_map.c | 149 |
1 files changed, 9 insertions, 140 deletions
diff --git a/src/northbridge/amd/amdk8/setup_resource_map.c b/src/northbridge/amd/amdk8/setup_resource_map.c index 27da719409..ebd1978a7c 100644 --- a/src/northbridge/amd/amdk8/setup_resource_map.c +++ b/src/northbridge/amd/amdk8/setup_resource_map.c @@ -1,53 +1,16 @@ #define RES_DEBUG 0 -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("\r\n"); -#endif - for(i = 0; i < max; i += 3) { - device_t dev; - unsigned where; - unsigned long reg; -#if 0 - #if CONFIG_USE_INIT - prink_debug("%08x <- %08x\r\n", register_values[i] + offset_pci_dev, register_values[i+2]); - #else - print_debug_hex32(register_values[i] + offset_pci_dev); - print_debug(" <-"); - print_debug_hex32(register_values[i+2]); - print_debug("\r\n"); - #endif -#endif - dev = (register_values[i] & ~0xff) + offset_pci_dev; - where = register_values[i] & 0xff; - reg = pci_read_config32(dev, where); - reg &= register_values[i+1]; - reg |= register_values[i+2] + offset_io_base; - pci_write_config32(dev, where, reg); -#if 0 - reg = pci_read_config32(register_values[i]); - reg &= register_values[i+1]; - reg |= register_values[i+2] & ~register_values[i+1]; - pci_write_config32(register_values[i], reg); -#endif - } -// print_debug("done.\r\n"); -} - #define RES_PCI_IO 0x10 #define RES_PORT_IO_8 0x22 #define RES_PORT_IO_32 0x20 -#define RES_MEM_IO 0x40 +#define RES_MEM_IO 0x30 -static void setup_resource_map_x_offset(const unsigned int *register_values, int max, unsigned offset_pci_dev, unsigned offset_io_base) +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...."); + print_debug("setting up resource map ex...."); #endif @@ -58,23 +21,17 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int #if RES_DEBUG #if CONFIG_USE_INIT printk_debug("%04x: %02x %08x <- & %08x | %08x\r\n", - i/4, register_values[i], - register_values[i+1] + ( (register_values[i]==RES_PCI_IO) ? offset_pci_dev : 0), - register_values[i+2], - register_values[i+3] + ( ( (register_values[i] & RES_PORT_IO_32) == RES_PORT_IO_32) ? offset_io_base : 0) - ); + i/4, register_values[i],register_values[i+1], register_values[i+2], register_values[i+3]); #else print_debug_hex16(i/4); print_debug(": "); print_debug_hex8(register_values[i]); print_debug(" "); - print_debug_hex32(register_values[i+1] + ( (register_values[i]==RES_PCI_IO) ? offset_pci_dev : 0) ); + print_debug_hex32(register_values[i+1]); print_debug(" <- & "); print_debug_hex32(register_values[i+2]); print_debug(" | "); - print_debug_hex32(register_values[i+3] + - (((register_values[i] & RES_PORT_IO_32) == RES_PORT_IO_32) ? offset_io_base : 0) - ); + print_debug_hex32(register_values[i+3]); print_debug("\r\n"); #endif #endif @@ -84,7 +41,7 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int device_t dev; unsigned where; unsigned long reg; - dev = (register_values[i+1] & ~0xff) + offset_pci_dev; + dev = register_values[i+1] & ~0xff; where = register_values[i+1] & 0xff; reg = pci_read_config32(dev, where); reg &= register_values[i+2]; @@ -96,7 +53,7 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int { unsigned where; unsigned reg; - where = register_values[i+1] + offset_io_base; + where = register_values[i+1]; reg = inb(where); reg &= register_values[i+2]; reg |= register_values[i+3]; @@ -107,7 +64,7 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int { unsigned where; unsigned long reg; - where = register_values[i+1] + offset_io_base; + where = register_values[i+1]; reg = inl(where); reg &= register_values[i+2]; reg |= register_values[i+3]; @@ -137,95 +94,7 @@ static void setup_resource_map_x_offset(const unsigned int *register_values, int print_debug("done.\r\n"); #endif } -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...."); - -#endif - -#if RES_DEBUG - print_debug("\r\n"); -#endif - for(i = 0; i < max; i += 4) { -#if RES_DEBUG - #if CONFIG_USE_INIT - printk_debug("%04x: %02x %08x <- & %08x | %08x\r\n", - i/4, register_values[i],register_values[i+1], register_values[i+2], register_values[i+3]); - #else - print_debug_hex16(i/4); - print_debug(": "); - print_debug_hex8(register_values[i]); - print_debug(" "); - print_debug_hex32(register_values[i+1]); - print_debug(" <- & "); - print_debug_hex32(register_values[i+2]); - print_debug(" | "); - print_debug_hex32(register_values[i+3]); - print_debug("\r\n"); - #endif -#endif - switch (register_values[i]) { - case RES_PCI_IO: //PCI - { - device_t dev; - unsigned where; - unsigned long reg; - dev = register_values[i+1] & ~0xff; - where = register_values[i+1] & 0xff; - reg = pci_read_config32(dev, where); - reg &= register_values[i+2]; - reg |= register_values[i+3]; - pci_write_config32(dev, where, reg); - } - break; - case RES_PORT_IO_8: // io 8 - { - unsigned where; - unsigned reg; - where = register_values[i+1]; - reg = inb(where); - reg &= register_values[i+2]; - reg |= register_values[i+3]; - outb(reg, where); - } - break; - case RES_PORT_IO_32: //io32 - { - unsigned where; - unsigned long reg; - where = register_values[i+1]; - reg = inl(where); - reg &= register_values[i+2]; - reg |= register_values[i+3]; - outl(reg, where); - } - break; -#if 0 - case RES_MEM_IO: //mem - { - unsigned where; - unsigned long reg; - where = register_values[i+1]; - reg = read32(where); - reg &= register_values[i+2]; - reg |= register_values[i+3]; - write32( where, reg); - } - break; -#endif - - } // switch - - - } - -#if RES_DEBUG - print_debug("done.\r\n"); -#endif -} static void setup_iob_resource_map(const unsigned int *register_values, int max) { |