summaryrefslogtreecommitdiff
path: root/src/northbridge/amd/amdk8/setup_resource_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/northbridge/amd/amdk8/setup_resource_map.c')
-rw-r--r--src/northbridge/amd/amdk8/setup_resource_map.c149
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)
{